gobject-introspection r374 - in trunk: . gir giscanner



Author: johan
Date: Thu Aug 14 16:30:01 2008
New Revision: 374
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=374&view=rev

Log:
2008-08-14  Johan Dahlin  <johan gnome org>

    * gir/Makefile.am:
    Define an internal _H_ variable so we skip parsing both
    i18n headers, only one is needed.
    * gir/glib-2.0.gir:
    Add the glib-2.0.gir too.
    * giscanner/glibast.py:
    Add gconstpointer as an alias for ANY
    * giscanner/transformer.py:
    Do not lower case enumeration names per se.
    Skip functions which has parameters called 'va_list'



Added:
   trunk/gir/glib-2.0.gir
Modified:
   trunk/ChangeLog
   trunk/gir/Makefile.am
   trunk/giscanner/glibast.py
   trunk/giscanner/transformer.py

Modified: trunk/gir/Makefile.am
==============================================================================
--- trunk/gir/Makefile.am	(original)
+++ trunk/gir/Makefile.am	Thu Aug 14 16:30:01 2008
@@ -12,6 +12,7 @@
 	    -I$(GLIB_INCLUDEDIR) \
 	    -I$(GLIB_LIBDIR)/glib-2.0/include \
 	    -DGETTEXT_PACKAGE=Dummy \
+	    -D__G_I18N_LIB_H__ \
 	    $(GLIB_INCLUDEDIR)/glib/*.h
 BUILT_SOURCES += glib-2.0.gir
 
@@ -30,4 +31,4 @@
 BUILT_SOURCES += gobject-2.0.gir
 
 girdir=$(datadir)/gir
-dist_gir_DATA = $(BUILT_SOURCES)
\ No newline at end of file
+dist_gir_DATA = $(BUILT_SOURCES)

Added: trunk/gir/glib-2.0.gir
==============================================================================
--- (empty file)
+++ trunk/gir/glib-2.0.gir	Thu Aug 14 16:30:01 2008
@@ -0,0 +1,16884 @@
+<repository version="1.0"
+            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";>
+  <namespace name="GLib">
+    <alias name="gchar" target="char"/>
+    <alias name="gshort" target="short"/>
+    <alias name="glong" target="long"/>
+    <alias name="gint" target="int"/>
+    <alias name="gboolean" target="gint"/>
+    <alias name="guchar" target="unsigned"/>
+    <alias name="gushort" target="unsigned"/>
+    <alias name="gulong" target="unsigned"/>
+    <alias name="guint" target="unsigned"/>
+    <alias name="gfloat" target="float"/>
+    <alias name="gdouble" target="double"/>
+    <alias name="GDoubleIEEE754" target="_GDoubleIEEE754"/>
+    <alias name="GFloatIEEE754" target="_GFloatIEEE754"/>
+    <alias name="GQuark" target="guint32"/>
+    <alias name="GTime" target="gint32"/>
+    <alias name="GDateYear" target="guint16"/>
+    <alias name="GDateDay" target="guint8"/>
+    <alias name="gunichar" target="guint32"/>
+    <alias name="gunichar2" target="guint16"/>
+    <alias name="GTokenValue" target="_GTokenValue"/>
+    <callback name="GCompareFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="b">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GCompareDataFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="b">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GEqualFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="b">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GDestroyNotify">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHashFunc">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GFreeFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GTranslateFunc">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="TimeVal" c:type="GTimeVal"/>
+    <record name="GTimeVal" c:type="_GTimeVal">
+      <field name="tv_sec">
+        <type name="long" c:type="glong"/>
+      </field>
+      <field name="tv_usec">
+        <type name="long" c:type="glong"/>
+      </field>
+    </record>
+    <record name="Array" c:type="GArray"/>
+    <record name="ByteArray" c:type="GByteArray"/>
+    <record name="PtrArray" c:type="GPtrArray"/>
+    <record name="GArray" c:type="_GArray">
+      <field name="data">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="len">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <record name="GByteArray" c:type="_GByteArray">
+      <field name="data">
+        <type name="guint8" c:type="guint8*"/>
+      </field>
+      <field name="len">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <record name="GPtrArray" c:type="_GPtrArray">
+      <field name="pdata">
+        <type name="gpointer" c:type="gpointer*"/>
+      </field>
+      <field name="len">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="array_new" c:identifier="g_array_new">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="zero_terminated">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="clear_">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="element_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_sized_new" c:identifier="g_array_sized_new">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="zero_terminated">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="clear_">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="element_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="reserved_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_free" c:identifier="g_array_free">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="free_segment">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_append_vals" c:identifier="g_array_append_vals">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_prepend_vals" c:identifier="g_array_prepend_vals">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_insert_vals" c:identifier="g_array_insert_vals">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_set_size" c:identifier="g_array_set_size">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_remove_index" c:identifier="g_array_remove_index">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_remove_index_fast"
+              c:identifier="g_array_remove_index_fast">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_remove_range" c:identifier="g_array_remove_range">
+      <return-value>
+        <type name="GArray" c:type="GArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_sort" c:identifier="g_array_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="array_sort_with_data"
+              c:identifier="g_array_sort_with_data">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GArray" c:type="GArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_new" c:identifier="g_ptr_array_new">
+      <return-value>
+        <type name="GPtrArray" c:type="GPtrArray*"/>
+      </return-value>
+    </function>
+    <function name="ptr_array_sized_new" c:identifier="g_ptr_array_sized_new">
+      <return-value>
+        <type name="GPtrArray" c:type="GPtrArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="reserved_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_free" c:identifier="g_ptr_array_free">
+      <return-value>
+        <type name="gpointer" c:type="gpointer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="free_seg">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_set_size" c:identifier="g_ptr_array_set_size">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_remove_index"
+              c:identifier="g_ptr_array_remove_index">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_remove_index_fast"
+              c:identifier="g_ptr_array_remove_index_fast">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_remove" c:identifier="g_ptr_array_remove">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_remove_fast"
+              c:identifier="g_ptr_array_remove_fast">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_remove_range"
+              c:identifier="g_ptr_array_remove_range">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_add" c:identifier="g_ptr_array_add">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_sort" c:identifier="g_ptr_array_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_sort_with_data"
+              c:identifier="g_ptr_array_sort_with_data">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ptr_array_foreach" c:identifier="g_ptr_array_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GPtrArray" c:type="GPtrArray*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_new" c:identifier="g_byte_array_new">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+    </function>
+    <function name="byte_array_sized_new"
+              c:identifier="g_byte_array_sized_new">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="reserved_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_free" c:identifier="g_byte_array_free">
+      <return-value>
+        <type name="guint8" c:type="guint8*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="free_segment">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_append" c:identifier="g_byte_array_append">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_prepend" c:identifier="g_byte_array_prepend">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_set_size" c:identifier="g_byte_array_set_size">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_remove_index"
+              c:identifier="g_byte_array_remove_index">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_remove_index_fast"
+              c:identifier="g_byte_array_remove_index_fast">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_remove_range"
+              c:identifier="g_byte_array_remove_range">
+      <return-value>
+        <type name="GByteArray" c:type="GByteArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_sort" c:identifier="g_byte_array_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="byte_array_sort_with_data"
+              c:identifier="g_byte_array_sort_with_data">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array">
+          <type name="GByteArray" c:type="GByteArray*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="quark_try_string" c:identifier="g_quark_try_string">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="quark_from_static_string"
+              c:identifier="g_quark_from_static_string">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="quark_from_string" c:identifier="g_quark_from_string">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="quark_to_string" c:identifier="g_quark_to_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="quark">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="intern_string" c:identifier="g_intern_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="intern_static_string"
+              c:identifier="g_intern_static_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Error" c:type="GError"/>
+    <record name="GError" c:type="_GError">
+      <field name="domain">
+        <type name="GQuark" c:type="GQuark"/>
+      </field>
+      <field name="code">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="message">
+        <type name="string" c:type="gchar*"/>
+      </field>
+    </record>
+    <function name="error_new" c:identifier="g_error_new">
+      <return-value>
+        <type name="GError" c:type="GError*"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="code">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="error_new_literal" c:identifier="g_error_new_literal">
+      <return-value>
+        <type name="GError" c:type="GError*"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="code">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="error_free" c:identifier="g_error_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="error">
+          <type name="GError" c:type="GError*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="error_copy" c:identifier="g_error_copy">
+      <return-value>
+        <type name="GError" c:type="GError*"/>
+      </return-value>
+      <parameters>
+        <parameter name="error">
+          <type name="GError" c:type="GError*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="error_matches" c:identifier="g_error_matches">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="error">
+          <type name="GError" c:type="GError*"/>
+        </parameter>
+        <parameter name="domain">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="code">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_error" c:identifier="g_set_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="err">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+        <parameter name="domain">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="code">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="propagate_error" c:identifier="g_propagate_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+        <parameter name="src">
+          <type name="GError" c:type="GError*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clear_error" c:identifier="g_clear_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="err">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="prefix_error" c:identifier="g_prefix_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="err">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="propagate_prefixed_error"
+              c:identifier="g_propagate_prefixed_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+        <parameter name="src">
+          <type name="GError" c:type="GError*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_user_name" c:identifier="g_get_user_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_real_name" c:identifier="g_get_real_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_home_dir" c:identifier="g_get_home_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_tmp_dir" c:identifier="g_get_tmp_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_host_name" c:identifier="g_get_host_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_prgname" c:identifier="g_get_prgname">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="set_prgname" c:identifier="g_set_prgname">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="prgname">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_application_name"
+              c:identifier="g_get_application_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="set_application_name"
+              c:identifier="g_set_application_name">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="application_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_user_data_dir" c:identifier="g_get_user_data_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_user_config_dir" c:identifier="g_get_user_config_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_user_cache_dir" c:identifier="g_get_user_cache_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_system_data_dirs"
+              c:identifier="g_get_system_data_dirs">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+    </function>
+    <function name="get_system_config_dirs"
+              c:identifier="g_get_system_config_dirs">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+    </function>
+    <function name="get_language_names" c:identifier="g_get_language_names">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+    </function>
+    <enumeration name="" c:type="GUserDirectory">
+      <member name="y_desktop"
+              value="0"
+              c:identifier="G_USER_DIRECTORY_DESKTOP"/>
+      <member name="y_documents"
+              value="1"
+              c:identifier="G_USER_DIRECTORY_DOCUMENTS"/>
+      <member name="y_download"
+              value="2"
+              c:identifier="G_USER_DIRECTORY_DOWNLOAD"/>
+      <member name="y_music" value="3" c:identifier="G_USER_DIRECTORY_MUSIC"/>
+      <member name="y_pictures"
+              value="4"
+              c:identifier="G_USER_DIRECTORY_PICTURES"/>
+      <member name="y_public_share"
+              value="5"
+              c:identifier="G_USER_DIRECTORY_PUBLIC_SHARE"/>
+      <member name="y_templates"
+              value="6"
+              c:identifier="G_USER_DIRECTORY_TEMPLATES"/>
+      <member name="y_videos"
+              value="7"
+              c:identifier="G_USER_DIRECTORY_VIDEOS"/>
+      <member name="n_directories"
+              value="8"
+              c:identifier="G_USER_N_DIRECTORIES"/>
+    </enumeration>
+    <function name="get_user_special_dir"
+              c:identifier="g_get_user_special_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="directory">
+          <type name="GUserDirectory" c:type="GUserDirectory"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="DebugKey" c:type="GDebugKey"/>
+    <record name="GDebugKey" c:type="_GDebugKey">
+      <field name="key">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="value">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="parse_debug_string" c:identifier="g_parse_debug_string">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="keys">
+          <type name="GDebugKey" c:type="GDebugKey*"/>
+        </parameter>
+        <parameter name="nkeys">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="snprintf" c:identifier="g_snprintf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_is_absolute" c:identifier="g_path_is_absolute">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="file_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_skip_root" c:identifier="g_path_skip_root">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="file_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="basename" c:identifier="g_basename">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="file_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_current_dir" c:identifier="g_get_current_dir">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+    </function>
+    <function name="path_get_basename" c:identifier="g_path_get_basename">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="file_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_get_dirname" c:identifier="g_path_get_dirname">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="file_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="nullify_pointer" c:identifier="g_nullify_pointer">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="nullify_location">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="getenv" c:identifier="g_getenv">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="variable">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="setenv" c:identifier="g_setenv">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="variable">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="overwrite">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unsetenv" c:identifier="g_unsetenv">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="variable">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="listenv" c:identifier="g_listenv">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+    </function>
+    <function name="g_getenv_nomalloc" c:identifier="_g_getenv_nomalloc">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="variable">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="buffer">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <callback name="GVoidFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </callback>
+    <function name="atexit" c:identifier="g_atexit">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GVoidFunc" c:type="GVoidFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="find_program_in_path"
+              c:identifier="g_find_program_in_path">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="program">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bit_nth_lsf" c:identifier="g_bit_nth_lsf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="mask">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="nth_bit">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bit_nth_msf" c:identifier="g_bit_nth_msf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="mask">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="nth_bit">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bit_storage" c:identifier="g_bit_storage">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="number">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="TrashStack" c:type="GTrashStack"/>
+    <record name="GTrashStack" c:type="_GTrashStack">
+      <field name="next">
+        <type name="GTrashStack" c:type="GTrashStack*"/>
+      </field>
+    </record>
+    <function name="trash_stack_push" c:identifier="g_trash_stack_push">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="stack_p">
+          <type name="GTrashStack" c:type="GTrashStack**"/>
+        </parameter>
+        <parameter name="data_p">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trash_stack_pop" c:identifier="g_trash_stack_pop">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="stack_p">
+          <type name="GTrashStack" c:type="GTrashStack**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trash_stack_peek" c:identifier="g_trash_stack_peek">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="stack_p">
+          <type name="GTrashStack" c:type="GTrashStack**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trash_stack_height" c:identifier="g_trash_stack_height">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="stack_p">
+          <type name="GTrashStack" c:type="GTrashStack**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="lib_check_version" c:identifier="glib_check_version">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="required_major">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="required_minor">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="required_micro">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_exchange_and_add"
+              c:identifier="g_atomic_int_exchange_and_add">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_add" c:identifier="g_atomic_int_add">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_compare_and_exchange"
+              c:identifier="g_atomic_int_compare_and_exchange">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="oldval">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="newval">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_pointer_compare_and_exchange"
+              c:identifier="g_atomic_pointer_compare_and_exchange">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="oldval">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="newval">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_get" c:identifier="g_atomic_int_get">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_set" c:identifier="g_atomic_int_set">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="newval">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_pointer_get" c:identifier="g_atomic_pointer_get">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_pointer_set" c:identifier="g_atomic_pointer_set">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="newval">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_error_quark" c:identifier="g_thread_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <callback name="GThreadFunc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="Thread" c:type="GThread"/>
+    <record name="GThread" c:type="_GThread">
+      <field name="func">
+        <type name="GThreadFunc" c:type="GThreadFunc"/>
+      </field>
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="joinable">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="priority">
+        <type name="GThreadPriority" c:type="GThreadPriority"/>
+      </field>
+    </record>
+    <record name="Mutex" c:type="GMutex"/>
+    <record name="Cond" c:type="GCond"/>
+    <record name="Private" c:type="GPrivate"/>
+    <record name="StaticPrivate" c:type="GStaticPrivate"/>
+    <record name="ThreadFunctions" c:type="GThreadFunctions"/>
+    <record name="GThreadFunctions" c:type="_GThreadFunctions">
+      <callback name="mutex_new">
+        <return-value>
+          <type name="GMutex" c:type="GMutex*"/>
+        </return-value>
+      </callback>
+      <callback name="mutex_lock">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="mutex_trylock">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="mutex_unlock">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="mutex_free">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="cond_new">
+        <return-value>
+          <type name="GCond" c:type="GCond*"/>
+        </return-value>
+      </callback>
+      <callback name="cond_signal">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cond">
+            <type name="GCond" c:type="GCond*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="cond_broadcast">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cond">
+            <type name="GCond" c:type="GCond*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="cond_wait">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cond">
+            <type name="GCond" c:type="GCond*"/>
+          </parameter>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="cond_timed_wait">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="cond">
+            <type name="GCond" c:type="GCond*"/>
+          </parameter>
+          <parameter name="mutex">
+            <type name="GMutex" c:type="GMutex*"/>
+          </parameter>
+          <parameter name="end_time">
+            <type name="GTimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="cond_free">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cond">
+            <type name="GCond" c:type="GCond*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="private_new">
+        <return-value>
+          <type name="GPrivate" c:type="GPrivate*"/>
+        </return-value>
+        <parameters>
+          <parameter name="destructor">
+            <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="private_get">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="private_key">
+            <type name="GPrivate" c:type="GPrivate*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="private_set">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="private_key">
+            <type name="GPrivate" c:type="GPrivate*"/>
+          </parameter>
+          <parameter name="data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="thread_create">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func">
+            <type name="GThreadFunc" c:type="GThreadFunc"/>
+          </parameter>
+          <parameter name="data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="stack_size">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="joinable">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="bound">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="priority">
+            <type name="GThreadPriority" c:type="GThreadPriority"/>
+          </parameter>
+          <parameter name="thread">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="thread_yield">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+      </callback>
+      <callback name="thread_join">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="thread">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="thread_exit">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+      </callback>
+      <callback name="thread_set_priority">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="thread">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="priority">
+            <type name="GThreadPriority" c:type="GThreadPriority"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="thread_self">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="thread">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="thread_equal">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="thread1">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="thread2">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+    </record>
+    <function name="thread_init" c:identifier="g_thread_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="vtable">
+          <type name="GThreadFunctions" c:type="GThreadFunctions*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_init_with_errorcheck_mutexes"
+              c:identifier="g_thread_init_with_errorcheck_mutexes">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="vtable">
+          <type name="GThreadFunctions" c:type="GThreadFunctions*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_mutex_get_mutex_impl"
+              c:identifier="g_static_mutex_get_mutex_impl">
+      <return-value>
+        <type name="GMutex" c:type="GMutex*"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GMutex" c:type="GMutex**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_create_full" c:identifier="g_thread_create_full">
+      <return-value>
+        <type name="GThread" c:type="GThread*"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GThreadFunc" c:type="GThreadFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="stack_size">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+        <parameter name="joinable">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="bound">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="GThreadPriority" c:type="GThreadPriority"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_self" c:identifier="g_thread_self">
+      <return-value>
+        <type name="GThread" c:type="GThread*"/>
+      </return-value>
+    </function>
+    <function name="thread_exit" c:identifier="g_thread_exit">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="retval">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_join" c:identifier="g_thread_join">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="thread">
+          <type name="GThread" c:type="GThread*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_set_priority" c:identifier="g_thread_set_priority">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="thread">
+          <type name="GThread" c:type="GThread*"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="GThreadPriority" c:type="GThreadPriority"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_mutex_init" c:identifier="g_static_mutex_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticMutex" c:type="GStaticMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_mutex_free" c:identifier="g_static_mutex_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticMutex" c:type="GStaticMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="GStaticPrivate" c:type="_GStaticPrivate">
+      <field name="index">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="static_private_init" c:identifier="g_static_private_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="private_key">
+          <type name="GStaticPrivate" c:type="GStaticPrivate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_private_get" c:identifier="g_static_private_get">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="private_key">
+          <type name="GStaticPrivate" c:type="GStaticPrivate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_private_set" c:identifier="g_static_private_set">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="private_key">
+          <type name="GStaticPrivate" c:type="GStaticPrivate*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_private_free" c:identifier="g_static_private_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="private_key">
+          <type name="GStaticPrivate" c:type="GStaticPrivate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="StaticRecMutex" c:type="GStaticRecMutex"/>
+    <record name="GStaticRecMutex" c:type="_GStaticRecMutex">
+      <field name="mutex">
+        <type name="GStaticMutex" c:type="GStaticMutex"/>
+      </field>
+      <field name="depth">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="owner">
+        <type name="GSystemThread" c:type="GSystemThread"/>
+      </field>
+    </record>
+    <function name="static_rec_mutex_init"
+              c:identifier="g_static_rec_mutex_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_lock"
+              c:identifier="g_static_rec_mutex_lock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_trylock"
+              c:identifier="g_static_rec_mutex_trylock">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_unlock"
+              c:identifier="g_static_rec_mutex_unlock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_lock_full"
+              c:identifier="g_static_rec_mutex_lock_full">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+        <parameter name="depth">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_unlock_full"
+              c:identifier="g_static_rec_mutex_unlock_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rec_mutex_free"
+              c:identifier="g_static_rec_mutex_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mutex">
+          <type name="GStaticRecMutex" c:type="GStaticRecMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="StaticRWLock" c:type="GStaticRWLock"/>
+    <record name="GStaticRWLock" c:type="_GStaticRWLock">
+      <field name="mutex">
+        <type name="GStaticMutex" c:type="GStaticMutex"/>
+      </field>
+      <field name="read_cond">
+        <type name="GCond" c:type="GCond*"/>
+      </field>
+      <field name="write_cond">
+        <type name="GCond" c:type="GCond*"/>
+      </field>
+      <field name="read_counter">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="have_writer">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="want_to_read">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="want_to_write">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="static_rw_lock_init" c:identifier="g_static_rw_lock_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_reader_lock"
+              c:identifier="g_static_rw_lock_reader_lock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_reader_trylock"
+              c:identifier="g_static_rw_lock_reader_trylock">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_reader_unlock"
+              c:identifier="g_static_rw_lock_reader_unlock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_writer_lock"
+              c:identifier="g_static_rw_lock_writer_lock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_writer_trylock"
+              c:identifier="g_static_rw_lock_writer_trylock">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_writer_unlock"
+              c:identifier="g_static_rw_lock_writer_unlock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="static_rw_lock_free" c:identifier="g_static_rw_lock_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="lock">
+          <type name="GStaticRWLock" c:type="GStaticRWLock*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_foreach" c:identifier="g_thread_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="thread_func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Once" c:type="GOnce"/>
+    <record name="GOnce" c:type="_GOnce">
+      <field name="status">
+        <type name="GOnceStatus" c:type="GOnceStatus"/>
+      </field>
+      <field name="retval">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <function name="once_impl" c:identifier="g_once_impl">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="once">
+          <type name="GOnce" c:type="GOnce*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GThreadFunc" c:type="GThreadFunc"/>
+        </parameter>
+        <parameter name="arg">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="once_init_enter" c:identifier="g_once_init_enter">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_location">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="once_init_enter_impl"
+              c:identifier="g_once_init_enter_impl">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_location">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="once_init_leave" c:identifier="g_once_init_leave">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_location">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="initialization_value">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="lib_dummy_decl" c:identifier="glib_dummy_decl">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <record name="AsyncQueue" c:type="GAsyncQueue"/>
+    <function name="async_queue_new" c:identifier="g_async_queue_new">
+      <return-value>
+        <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+      </return-value>
+    </function>
+    <function name="async_queue_new_full"
+              c:identifier="g_async_queue_new_full">
+      <return-value>
+        <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="item_free_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_lock" c:identifier="g_async_queue_lock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_unlock" c:identifier="g_async_queue_unlock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_ref" c:identifier="g_async_queue_ref">
+      <return-value>
+        <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_unref" c:identifier="g_async_queue_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_ref_unlocked"
+              c:identifier="g_async_queue_ref_unlocked">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_unref_and_unlock"
+              c:identifier="g_async_queue_unref_and_unlock">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_push" c:identifier="g_async_queue_push">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_push_unlocked"
+              c:identifier="g_async_queue_push_unlocked">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_push_sorted"
+              c:identifier="g_async_queue_push_sorted">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_push_sorted_unlocked"
+              c:identifier="g_async_queue_push_sorted_unlocked">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_pop" c:identifier="g_async_queue_pop">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_pop_unlocked"
+              c:identifier="g_async_queue_pop_unlocked">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_try_pop" c:identifier="g_async_queue_try_pop">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_try_pop_unlocked"
+              c:identifier="g_async_queue_try_pop_unlocked">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_timed_pop"
+              c:identifier="g_async_queue_timed_pop">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="end_time">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_timed_pop_unlocked"
+              c:identifier="g_async_queue_timed_pop_unlocked">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="end_time">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_length" c:identifier="g_async_queue_length">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_length_unlocked"
+              c:identifier="g_async_queue_length_unlocked">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_sort" c:identifier="g_async_queue_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="async_queue_sort_unlocked"
+              c:identifier="g_async_queue_sort_unlocked">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="g_async_queue_get_mutex"
+              c:identifier="_g_async_queue_get_mutex">
+      <return-value>
+        <type name="GMutex" c:type="GMutex*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GAsyncQueue" c:type="GAsyncQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="on_error_query" c:identifier="g_on_error_query">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="prg_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="on_error_stack_trace"
+              c:identifier="g_on_error_stack_trace">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="prg_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_encode_step" c:identifier="g_base64_encode_step">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="in">
+          <type name="guchar" c:type="guchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="break_lines">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="out">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="state">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="save">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_encode_close" c:identifier="g_base64_encode_close">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="break_lines">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="out">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="state">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="save">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_encode" c:identifier="g_base64_encode">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="guchar" c:type="guchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_decode_step" c:identifier="g_base64_decode_step">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="in">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="out">
+          <type name="guchar" c:type="guchar*"/>
+        </parameter>
+        <parameter name="state">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="save">
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_decode" c:identifier="g_base64_decode">
+      <return-value>
+        <type name="guchar" c:type="guchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="text">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="out_len">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_error_quark"
+              c:identifier="g_bookmark_file_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <record name="BookmarkFile" c:type="GBookmarkFile"/>
+    <function name="bookmark_file_new" c:identifier="g_bookmark_file_new">
+      <return-value>
+        <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+      </return-value>
+    </function>
+    <function name="bookmark_file_free" c:identifier="g_bookmark_file_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_load_from_file"
+              c:identifier="g_bookmark_file_load_from_file">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_load_from_data"
+              c:identifier="g_bookmark_file_load_from_data">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_load_from_data_dirs"
+              c:identifier="g_bookmark_file_load_from_data_dirs">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="full_path">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_to_data"
+              c:identifier="g_bookmark_file_to_data">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_to_file"
+              c:identifier="g_bookmark_file_to_file">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_title"
+              c:identifier="g_bookmark_file_set_title">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="title">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_title"
+              c:identifier="g_bookmark_file_get_title">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_description"
+              c:identifier="g_bookmark_file_set_description">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="description">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_description"
+              c:identifier="g_bookmark_file_get_description">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_mime_type"
+              c:identifier="g_bookmark_file_set_mime_type">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="mime_type">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_mime_type"
+              c:identifier="g_bookmark_file_get_mime_type">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_groups"
+              c:identifier="g_bookmark_file_set_groups">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="groups">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_add_group"
+              c:identifier="g_bookmark_file_add_group">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_has_group"
+              c:identifier="g_bookmark_file_has_group">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_groups"
+              c:identifier="g_bookmark_file_get_groups">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_add_application"
+              c:identifier="g_bookmark_file_add_application">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="exec">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_has_application"
+              c:identifier="g_bookmark_file_has_application">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_applications"
+              c:identifier="g_bookmark_file_get_applications">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_app_info"
+              c:identifier="g_bookmark_file_set_app_info">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="exec">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="count">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="stamp">
+          <type name="time_t" c:type="time_t"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_app_info"
+              c:identifier="g_bookmark_file_get_app_info">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="exec">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="count">
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+        <parameter name="stamp">
+          <type name="time_t" c:type="time_t*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_is_private"
+              c:identifier="g_bookmark_file_set_is_private">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="is_private">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_is_private"
+              c:identifier="g_bookmark_file_get_is_private">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_icon"
+              c:identifier="g_bookmark_file_set_icon">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="href">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="mime_type">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_icon"
+              c:identifier="g_bookmark_file_get_icon">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="href">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="mime_type">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_added"
+              c:identifier="g_bookmark_file_set_added">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="added">
+          <type name="time_t" c:type="time_t"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_added"
+              c:identifier="g_bookmark_file_get_added">
+      <return-value>
+        <type name="time_t" c:type="time_t"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_modified"
+              c:identifier="g_bookmark_file_set_modified">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="modified">
+          <type name="time_t" c:type="time_t"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_modified"
+              c:identifier="g_bookmark_file_get_modified">
+      <return-value>
+        <type name="time_t" c:type="time_t"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_set_visited"
+              c:identifier="g_bookmark_file_set_visited">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="visited">
+          <type name="time_t" c:type="time_t"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_visited"
+              c:identifier="g_bookmark_file_get_visited">
+      <return-value>
+        <type name="time_t" c:type="time_t"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_has_item"
+              c:identifier="g_bookmark_file_has_item">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_size"
+              c:identifier="g_bookmark_file_get_size">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_get_uris"
+              c:identifier="g_bookmark_file_get_uris">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_remove_group"
+              c:identifier="g_bookmark_file_remove_group">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_remove_application"
+              c:identifier="g_bookmark_file_remove_application">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_remove_item"
+              c:identifier="g_bookmark_file_remove_item">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bookmark_file_move_item"
+              c:identifier="g_bookmark_file_move_item">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bookmark">
+          <type name="GBookmarkFile" c:type="GBookmarkFile*"/>
+        </parameter>
+        <parameter name="old_uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="new_uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_alloc" c:identifier="g_slice_alloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="block_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_alloc0" c:identifier="g_slice_alloc0">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="block_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_copy" c:identifier="g_slice_copy">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="block_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="mem_block">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_free1" c:identifier="g_slice_free1">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="block_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="mem_block">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_free_chain_with_offset"
+              c:identifier="g_slice_free_chain_with_offset">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="block_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="mem_chain">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="next_offset">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_set_config" c:identifier="g_slice_set_config">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="ckey">
+          <type name="GSliceConfig" c:type="GSliceConfig"/>
+        </parameter>
+        <parameter name="value">
+          <type name="gint64" c:type="gint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_get_config" c:identifier="g_slice_get_config">
+      <return-value>
+        <type name="gint64" c:type="gint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="ckey">
+          <type name="GSliceConfig" c:type="GSliceConfig"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slice_get_config_state"
+              c:identifier="g_slice_get_config_state">
+      <return-value>
+        <type name="gint64" c:type="gint64*"/>
+      </return-value>
+      <parameters>
+        <parameter name="ckey">
+          <type name="GSliceConfig" c:type="GSliceConfig"/>
+        </parameter>
+        <parameter name="address">
+          <type name="gint64" c:type="gint64"/>
+        </parameter>
+        <parameter name="n_values">
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="MemVTable" c:type="GMemVTable"/>
+    <function name="malloc" c:identifier="g_malloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="malloc0" c:identifier="g_malloc0">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="realloc" c:identifier="g_realloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="free" c:identifier="g_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="try_malloc" c:identifier="g_try_malloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="try_malloc0" c:identifier="g_try_malloc0">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="try_realloc" c:identifier="g_try_realloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="n_bytes">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="GMemVTable" c:type="_GMemVTable">
+      <callback name="malloc">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_bytes">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="realloc">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="mem">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="n_bytes">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="free">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mem">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="calloc">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_blocks">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+          <parameter name="n_block_bytes">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="try_malloc">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_bytes">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="try_realloc">
+        <return-value>
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="mem">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="n_bytes">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </callback>
+    </record>
+    <function name="mem_set_vtable" c:identifier="g_mem_set_vtable">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="vtable">
+          <type name="GMemVTable" c:type="GMemVTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_is_system_malloc"
+              c:identifier="g_mem_is_system_malloc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="mem_profile" c:identifier="g_mem_profile">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <record name="Allocator" c:type="GAllocator"/>
+    <record name="MemChunk" c:type="GMemChunk"/>
+    <function name="mem_chunk_new" c:identifier="g_mem_chunk_new">
+      <return-value>
+        <type name="GMemChunk" c:type="GMemChunk*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="atom_size">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="area_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="type">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_destroy" c:identifier="g_mem_chunk_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_alloc" c:identifier="g_mem_chunk_alloc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_alloc0" c:identifier="g_mem_chunk_alloc0">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_free" c:identifier="g_mem_chunk_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+        <parameter name="mem">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_clean" c:identifier="g_mem_chunk_clean">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_reset" c:identifier="g_mem_chunk_reset">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_print" c:identifier="g_mem_chunk_print">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem_chunk">
+          <type name="GMemChunk" c:type="GMemChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mem_chunk_info" c:identifier="g_mem_chunk_info">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="blow_chunks" c:identifier="g_blow_chunks">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="allocator_new" c:identifier="g_allocator_new">
+      <return-value>
+        <type name="GAllocator" c:type="GAllocator*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n_preallocs">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="allocator_free" c:identifier="g_allocator_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="allocator">
+          <type name="GAllocator" c:type="GAllocator*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="List" c:type="GList"/>
+    <record name="GList" c:type="_GList">
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="next">
+        <type name="GList" c:type="GList*"/>
+      </field>
+      <field name="prev">
+        <type name="GList" c:type="GList*"/>
+      </field>
+    </record>
+    <function name="list_alloc" c:identifier="g_list_alloc">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+    </function>
+    <function name="list_free" c:identifier="g_list_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_free_1" c:identifier="g_list_free_1">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_append" c:identifier="g_list_append">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_prepend" c:identifier="g_list_prepend">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_insert" c:identifier="g_list_insert">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_insert_sorted" c:identifier="g_list_insert_sorted">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_insert_sorted_with_data"
+              c:identifier="g_list_insert_sorted_with_data">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_insert_before" c:identifier="g_list_insert_before">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_concat" c:identifier="g_list_concat">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list1">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="list2">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_remove" c:identifier="g_list_remove">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_remove_all" c:identifier="g_list_remove_all">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_remove_link" c:identifier="g_list_remove_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="llink">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_delete_link" c:identifier="g_list_delete_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_reverse" c:identifier="g_list_reverse">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_copy" c:identifier="g_list_copy">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_nth" c:identifier="g_list_nth">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_nth_prev" c:identifier="g_list_nth_prev">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_find" c:identifier="g_list_find">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_find_custom" c:identifier="g_list_find_custom">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_position" c:identifier="g_list_position">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="llink">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_index" c:identifier="g_list_index">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_last" c:identifier="g_list_last">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_first" c:identifier="g_list_first">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_length" c:identifier="g_list_length">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_foreach" c:identifier="g_list_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_sort" c:identifier="g_list_sort">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_sort_with_data" c:identifier="g_list_sort_with_data">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_nth_data" c:identifier="g_list_nth_data">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_push_allocator" c:identifier="g_list_push_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="allocator">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_pop_allocator" c:identifier="g_list_pop_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <record name="Cache" c:type="GCache"/>
+    <callback name="GCacheNewFunc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GCacheDupFunc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GCacheDestroyFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="cache_new" c:identifier="g_cache_new">
+      <return-value>
+        <type name="GCache" c:type="GCache*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value_new_func">
+          <type name="GCacheNewFunc" c:type="GCacheNewFunc"/>
+        </parameter>
+        <parameter name="value_destroy_func">
+          <type name="GCacheDestroyFunc" c:type="GCacheDestroyFunc"/>
+        </parameter>
+        <parameter name="key_dup_func">
+          <type name="GCacheDupFunc" c:type="GCacheDupFunc"/>
+        </parameter>
+        <parameter name="key_destroy_func">
+          <type name="GCacheDestroyFunc" c:type="GCacheDestroyFunc"/>
+        </parameter>
+        <parameter name="hash_key_func">
+          <type name="GHashFunc" c:type="GHashFunc"/>
+        </parameter>
+        <parameter name="hash_value_func">
+          <type name="GHashFunc" c:type="GHashFunc"/>
+        </parameter>
+        <parameter name="key_equal_func">
+          <type name="GEqualFunc" c:type="GEqualFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cache_destroy" c:identifier="g_cache_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache">
+          <type name="GCache" c:type="GCache*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cache_insert" c:identifier="g_cache_insert">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache">
+          <type name="GCache" c:type="GCache*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cache_remove" c:identifier="g_cache_remove">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache">
+          <type name="GCache" c:type="GCache*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cache_key_foreach" c:identifier="g_cache_key_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache">
+          <type name="GCache" c:type="GCache*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHFunc" c:type="GHFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="cache_value_foreach" c:identifier="g_cache_value_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cache">
+          <type name="GCache" c:type="GCache*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHFunc" c:type="GHFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Checksum" c:type="GChecksum"/>
+    <function name="checksum_type_get_length"
+              c:identifier="g_checksum_type_get_length">
+      <return-value>
+        <type name="ssize" c:type="gssize"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum_type">
+          <type name="GChecksumType" c:type="GChecksumType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_new" c:identifier="g_checksum_new">
+      <return-value>
+        <type name="GChecksum" c:type="GChecksum*"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum_type">
+          <type name="GChecksumType" c:type="GChecksumType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_copy" c:identifier="g_checksum_copy">
+      <return-value>
+        <type name="GChecksum" c:type="GChecksum*"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum">
+          <type name="GChecksum" c:type="GChecksum*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_free" c:identifier="g_checksum_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum">
+          <type name="GChecksum" c:type="GChecksum*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_update" c:identifier="g_checksum_update">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum">
+          <type name="GChecksum" c:type="GChecksum*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="guchar" c:type="guchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_get_string" c:identifier="g_checksum_get_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum">
+          <type name="GChecksum" c:type="GChecksum*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="checksum_get_digest" c:identifier="g_checksum_get_digest">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum">
+          <type name="GChecksum" c:type="GChecksum*"/>
+        </parameter>
+        <parameter name="buffer">
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+        <parameter name="digest_len">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="compute_checksum_for_data"
+              c:identifier="g_compute_checksum_for_data">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum_type">
+          <type name="GChecksumType" c:type="GChecksumType"/>
+        </parameter>
+        <parameter name="data">
+          <type name="guchar" c:type="guchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="compute_checksum_for_string"
+              c:identifier="g_compute_checksum_for_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="checksum_type">
+          <type name="GChecksumType" c:type="GChecksumType"/>
+        </parameter>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Completion" c:type="GCompletion"/>
+    <callback name="GCompletionFunc">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter>
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GCompletionStrncmpFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="s2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GCompletion" c:type="_GCompletion">
+      <field name="items">
+        <type name="GList" c:type="GList*"/>
+      </field>
+      <field name="func">
+        <type name="GCompletionFunc" c:type="GCompletionFunc"/>
+      </field>
+      <field name="prefix">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="cache">
+        <type name="GList" c:type="GList*"/>
+      </field>
+      <field name="strncmp_func">
+        <type name="GCompletionStrncmpFunc" c:type="GCompletionStrncmpFunc"/>
+      </field>
+    </record>
+    <function name="completion_new" c:identifier="g_completion_new">
+      <return-value>
+        <type name="GCompletion" c:type="GCompletion*"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GCompletionFunc" c:type="GCompletionFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_add_items"
+              c:identifier="g_completion_add_items">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+        <parameter name="items">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_remove_items"
+              c:identifier="g_completion_remove_items">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+        <parameter name="items">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_clear_items"
+              c:identifier="g_completion_clear_items">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_complete" c:identifier="g_completion_complete">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+        <parameter name="prefix">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="new_prefix">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_complete_utf8"
+              c:identifier="g_completion_complete_utf8">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+        <parameter name="prefix">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="new_prefix">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_set_compare"
+              c:identifier="g_completion_set_compare">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+        <parameter name="strncmp_func">
+          <type name="GCompletionStrncmpFunc" c:type="GCompletionStrncmpFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="completion_free" c:identifier="g_completion_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cmp">
+          <type name="GCompletion" c:type="GCompletion*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="convert_error_quark" c:identifier="g_convert_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="iconv_open" c:identifier="g_iconv_open">
+      <return-value>
+        <type name="GIConv" c:type="GIConv"/>
+      </return-value>
+      <parameters>
+        <parameter name="to_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="from_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="iconv" c:identifier="g_iconv">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="converter">
+          <type name="GIConv" c:type="GIConv"/>
+        </parameter>
+        <parameter name="inbuf">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="inbytes_left">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="outbuf">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="outbytes_left">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="iconv_close" c:identifier="g_iconv_close">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="converter">
+          <type name="GIConv" c:type="GIConv"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="convert" c:identifier="g_convert">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="to_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="from_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="convert_with_iconv" c:identifier="g_convert_with_iconv">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="converter">
+          <type name="GIConv" c:type="GIConv"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="convert_with_fallback"
+              c:identifier="g_convert_with_fallback">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="to_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="from_codeset">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="fallback">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="locale_to_utf8" c:identifier="g_locale_to_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="opsysstring">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="locale_from_utf8" c:identifier="g_locale_from_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="utf8string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_to_utf8" c:identifier="g_filename_to_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="opsysstring">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_from_utf8" c:identifier="g_filename_from_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="utf8string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_from_uri" c:identifier="g_filename_from_uri">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="hostname">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_to_uri" c:identifier="g_filename_to_uri">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="hostname">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_display_name"
+              c:identifier="g_filename_display_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_filename_charsets"
+              c:identifier="g_get_filename_charsets">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="charsets">
+          <type name="gchar" c:type="gchar***"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filename_display_basename"
+              c:identifier="g_filename_display_basename">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_list_extract_uris"
+              c:identifier="g_uri_list_extract_uris">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri_list">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Data" c:type="GData"/>
+    <callback name="GDataForeachFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="datalist_init" c:identifier="g_datalist_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_clear" c:identifier="g_datalist_clear">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_id_get_data"
+              c:identifier="g_datalist_id_get_data">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_id_set_data_full"
+              c:identifier="g_datalist_id_set_data_full">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_id_remove_no_notify"
+              c:identifier="g_datalist_id_remove_no_notify">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_foreach" c:identifier="g_datalist_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GDataForeachFunc" c:type="GDataForeachFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_set_flags" c:identifier="g_datalist_set_flags">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_unset_flags"
+              c:identifier="g_datalist_unset_flags">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="datalist_get_flags" c:identifier="g_datalist_get_flags">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="datalist">
+          <type name="GData" c:type="GData**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dataset_destroy" c:identifier="g_dataset_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dataset_location">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dataset_id_get_data" c:identifier="g_dataset_id_get_data">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="dataset_location">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dataset_id_set_data_full"
+              c:identifier="g_dataset_id_set_data_full">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dataset_location">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dataset_id_remove_no_notify"
+              c:identifier="g_dataset_id_remove_no_notify">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="dataset_location">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="key_id">
+          <type name="GQuark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dataset_foreach" c:identifier="g_dataset_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dataset_location">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GDataForeachFunc" c:type="GDataForeachFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Date" c:type="GDate"/>
+    <record name="GDate" c:type="_GDate">
+      <field name="julian_days">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="julian">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="dmy">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="day">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="month">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="year">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="date_new" c:identifier="g_date_new">
+      <return-value>
+        <type name="GDate" c:type="GDate*"/>
+      </return-value>
+    </function>
+    <function name="date_new_dmy" c:identifier="g_date_new_dmy">
+      <return-value>
+        <type name="GDate" c:type="GDate*"/>
+      </return-value>
+      <parameters>
+        <parameter name="day">
+          <type name="GDateDay" c:type="GDateDay"/>
+        </parameter>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_new_julian" c:identifier="g_date_new_julian">
+      <return-value>
+        <type name="GDate" c:type="GDate*"/>
+      </return-value>
+      <parameters>
+        <parameter name="julian_day">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_free" c:identifier="g_date_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid" c:identifier="g_date_valid">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_day" c:identifier="g_date_valid_day">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="day">
+          <type name="GDateDay" c:type="GDateDay"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_month" c:identifier="g_date_valid_month">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_year" c:identifier="g_date_valid_year">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_weekday" c:identifier="g_date_valid_weekday">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="weekday">
+          <type name="GDateWeekday" c:type="GDateWeekday"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_julian" c:identifier="g_date_valid_julian">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="julian_date">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_valid_dmy" c:identifier="g_date_valid_dmy">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="day">
+          <type name="GDateDay" c:type="GDateDay"/>
+        </parameter>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_weekday" c:identifier="g_date_get_weekday">
+      <return-value>
+        <type name="GDateWeekday" c:type="GDateWeekday"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_month" c:identifier="g_date_get_month">
+      <return-value>
+        <type name="GDateMonth" c:type="GDateMonth"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_year" c:identifier="g_date_get_year">
+      <return-value>
+        <type name="GDateYear" c:type="GDateYear"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_day" c:identifier="g_date_get_day">
+      <return-value>
+        <type name="GDateDay" c:type="GDateDay"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_julian" c:identifier="g_date_get_julian">
+      <return-value>
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_day_of_year"
+              c:identifier="g_date_get_day_of_year">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_monday_week_of_year"
+              c:identifier="g_date_get_monday_week_of_year">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_sunday_week_of_year"
+              c:identifier="g_date_get_sunday_week_of_year">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_iso8601_week_of_year"
+              c:identifier="g_date_get_iso8601_week_of_year">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_clear" c:identifier="g_date_clear">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_dates">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_parse" c:identifier="g_date_set_parse">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_time_t" c:identifier="g_date_set_time_t">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="timet">
+          <type name="time_t" c:type="time_t"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_time_val" c:identifier="g_date_set_time_val">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="timeval">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_time" c:identifier="g_date_set_time">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="time_">
+          <type name="GTime" c:type="GTime"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_month" c:identifier="g_date_set_month">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_day" c:identifier="g_date_set_day">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="day">
+          <type name="GDateDay" c:type="GDateDay"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_year" c:identifier="g_date_set_year">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_dmy" c:identifier="g_date_set_dmy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="day">
+          <type name="GDateDay" c:type="GDateDay"/>
+        </parameter>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+        <parameter name="y">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_set_julian" c:identifier="g_date_set_julian">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="julian_date">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_is_first_of_month"
+              c:identifier="g_date_is_first_of_month">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_is_last_of_month"
+              c:identifier="g_date_is_last_of_month">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_add_days" c:identifier="g_date_add_days">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_days">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_subtract_days" c:identifier="g_date_subtract_days">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_days">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_add_months" c:identifier="g_date_add_months">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_months">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_subtract_months"
+              c:identifier="g_date_subtract_months">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_months">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_add_years" c:identifier="g_date_add_years">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_years">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_subtract_years" c:identifier="g_date_subtract_years">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="n_years">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_is_leap_year" c:identifier="g_date_is_leap_year">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_days_in_month"
+              c:identifier="g_date_get_days_in_month">
+      <return-value>
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="month">
+          <type name="GDateMonth" c:type="GDateMonth"/>
+        </parameter>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_monday_weeks_in_year"
+              c:identifier="g_date_get_monday_weeks_in_year">
+      <return-value>
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_get_sunday_weeks_in_year"
+              c:identifier="g_date_get_sunday_weeks_in_year">
+      <return-value>
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="year">
+          <type name="GDateYear" c:type="GDateYear"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_days_between" c:identifier="g_date_days_between">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="date1">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="date2">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_compare" c:identifier="g_date_compare">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="lhs">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="rhs">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_to_struct_tm" c:identifier="g_date_to_struct_tm">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="tm">
+          <type name="???" c:type="???*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_clamp" c:identifier="g_date_clamp">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="min_date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="max_date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_order" c:identifier="g_date_order">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="date1">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+        <parameter name="date2">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="date_strftime" c:identifier="g_date_strftime">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="s">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="slen">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="date">
+          <type name="GDate" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Dir" c:type="GDir"/>
+    <function name="dir_open" c:identifier="g_dir_open">
+      <return-value>
+        <type name="GDir" c:type="GDir*"/>
+      </return-value>
+      <parameters>
+        <parameter name="path">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dir_read_name" c:identifier="g_dir_read_name">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="dir">
+          <type name="GDir" c:type="GDir*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dir_rewind" c:identifier="g_dir_rewind">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dir">
+          <type name="GDir" c:type="GDir*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dir_close" c:identifier="g_dir_close">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dir">
+          <type name="GDir" c:type="GDir*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_error_quark" c:identifier="g_file_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="file_error_from_errno"
+              c:identifier="g_file_error_from_errno">
+      <return-value>
+        <type name="GFileError" c:type="GFileError"/>
+      </return-value>
+      <parameters>
+        <parameter name="err_no">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_test" c:identifier="g_file_test">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="test">
+          <type name="GFileTest" c:type="GFileTest"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_get_contents" c:identifier="g_file_get_contents">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="contents">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_set_contents" c:identifier="g_file_set_contents">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="contents">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_read_link" c:identifier="g_file_read_link">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mkstemp" c:identifier="g_mkstemp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="tmpl">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="file_open_tmp" c:identifier="g_file_open_tmp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="tmpl">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="name_used">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_size_for_display"
+              c:identifier="g_format_size_for_display">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="size">
+          <type name="goffset" c:type="goffset"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="build_path" c:identifier="g_build_path">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="separator">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="first_element">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="build_pathv" c:identifier="g_build_pathv">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="separator">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="args">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="build_filename" c:identifier="g_build_filename">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="first_element">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="build_filenamev" c:identifier="g_build_filenamev">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="args">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mkdir_with_parents" c:identifier="g_mkdir_with_parents">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="pathname">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="mode">
+          <type name="int32" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="HashTable" c:type="GHashTable"/>
+    <callback name="GHRFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="HashTableIter" c:type="GHashTableIter"/>
+    <record name="GHashTableIter" c:type="_GHashTableIter">
+      <field name="dummy1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="dummy2">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="dummy3">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="dummy4">
+        <type name="int32" c:type="int"/>
+      </field>
+      <field name="dummy5">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="dummy6">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <function name="hash_table_new" c:identifier="g_hash_table_new">
+      <return-value>
+        <type name="GHashTable" c:type="GHashTable*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_func">
+          <type name="GHashFunc" c:type="GHashFunc"/>
+        </parameter>
+        <parameter name="key_equal_func">
+          <type name="GEqualFunc" c:type="GEqualFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_new_full" c:identifier="g_hash_table_new_full">
+      <return-value>
+        <type name="GHashTable" c:type="GHashTable*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_func">
+          <type name="GHashFunc" c:type="GHashFunc"/>
+        </parameter>
+        <parameter name="key_equal_func">
+          <type name="GEqualFunc" c:type="GEqualFunc"/>
+        </parameter>
+        <parameter name="key_destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+        <parameter name="value_destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_destroy" c:identifier="g_hash_table_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_insert" c:identifier="g_hash_table_insert">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_replace" c:identifier="g_hash_table_replace">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_remove" c:identifier="g_hash_table_remove">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_remove_all"
+              c:identifier="g_hash_table_remove_all">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_steal" c:identifier="g_hash_table_steal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_steal_all"
+              c:identifier="g_hash_table_steal_all">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_lookup" c:identifier="g_hash_table_lookup">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_lookup_extended"
+              c:identifier="g_hash_table_lookup_extended">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="lookup_key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="orig_key">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_foreach" c:identifier="g_hash_table_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHFunc" c:type="GHFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_find" c:identifier="g_hash_table_find">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="predicate">
+          <type name="GHRFunc" c:type="GHRFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_foreach_remove"
+              c:identifier="g_hash_table_foreach_remove">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHRFunc" c:type="GHRFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_foreach_steal"
+              c:identifier="g_hash_table_foreach_steal">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHRFunc" c:type="GHRFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_size" c:identifier="g_hash_table_size">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_get_keys" c:identifier="g_hash_table_get_keys">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_get_values"
+              c:identifier="g_hash_table_get_values">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_iter_init"
+              c:identifier="g_hash_table_iter_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GHashTableIter" c:type="GHashTableIter*"/>
+        </parameter>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_iter_next"
+              c:identifier="g_hash_table_iter_next">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GHashTableIter" c:type="GHashTableIter*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_iter_get_hash_table"
+              c:identifier="g_hash_table_iter_get_hash_table">
+      <return-value>
+        <type name="GHashTable" c:type="GHashTable*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GHashTableIter" c:type="GHashTableIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_iter_remove"
+              c:identifier="g_hash_table_iter_remove">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GHashTableIter" c:type="GHashTableIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_iter_steal"
+              c:identifier="g_hash_table_iter_steal">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GHashTableIter" c:type="GHashTableIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_ref" c:identifier="g_hash_table_ref">
+      <return-value>
+        <type name="GHashTable" c:type="GHashTable*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hash_table_unref" c:identifier="g_hash_table_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hash_table">
+          <type name="GHashTable" c:type="GHashTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="str_equal" c:identifier="g_str_equal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="str_hash" c:identifier="g_str_hash">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="int_equal" c:identifier="g_int_equal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="int_hash" c:identifier="g_int_hash">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="direct_hash" c:identifier="g_direct_hash">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="direct_equal" c:identifier="g_direct_equal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Hook" c:type="GHook"/>
+    <record name="HookList" c:type="GHookList"/>
+    <callback name="GHookCompareFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="new_hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookFindFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookMarshaller">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="marshal_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookCheckMarshaller">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="marshal_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookCheckFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GHookFinalizeFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GHookList" c:type="_GHookList">
+      <field name="seq_id">
+        <type name="ulong" c:type="gulong"/>
+      </field>
+      <field name="hook_size">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="is_setup">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="hooks">
+        <type name="GHook" c:type="GHook*"/>
+      </field>
+      <field name="dummy3">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="finalize_hook">
+        <type name="GHookFinalizeFunc" c:type="GHookFinalizeFunc"/>
+      </field>
+      <field name="dummy">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <record name="GHook" c:type="_GHook">
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="next">
+        <type name="GHook" c:type="GHook*"/>
+      </field>
+      <field name="prev">
+        <type name="GHook" c:type="GHook*"/>
+      </field>
+      <field name="ref_count">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="hook_id">
+        <type name="ulong" c:type="gulong"/>
+      </field>
+      <field name="flags">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="func">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="destroy">
+        <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+    </record>
+    <function name="hook_list_init" c:identifier="g_hook_list_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_list_clear" c:identifier="g_hook_list_clear">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_alloc" c:identifier="g_hook_alloc">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_free" c:identifier="g_hook_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_ref" c:identifier="g_hook_ref">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_unref" c:identifier="g_hook_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_destroy" c:identifier="g_hook_destroy">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook_id">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_destroy_link" c:identifier="g_hook_destroy_link">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_prepend" c:identifier="g_hook_prepend">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_insert_before" c:identifier="g_hook_insert_before">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_insert_sorted" c:identifier="g_hook_insert_sorted">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHookCompareFunc" c:type="GHookCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_get" c:identifier="g_hook_get">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook_id">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_find" c:identifier="g_hook_find">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="need_valids">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHookFindFunc" c:type="GHookFindFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_find_data" c:identifier="g_hook_find_data">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="need_valids">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_find_func" c:identifier="g_hook_find_func">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="need_valids">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="func">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_find_func_data" c:identifier="g_hook_find_func_data">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="need_valids">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="func">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_first_valid" c:identifier="g_hook_first_valid">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="may_be_in_call">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_next_valid" c:identifier="g_hook_next_valid">
+      <return-value>
+        <type name="GHook" c:type="GHook*"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="may_be_in_call">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_compare_ids" c:identifier="g_hook_compare_ids">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="new_hook">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GHook" c:type="GHook*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_list_invoke" c:identifier="g_hook_list_invoke">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="may_recurse">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_list_invoke_check"
+              c:identifier="g_hook_list_invoke_check">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="may_recurse">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_list_marshal" c:identifier="g_hook_list_marshal">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="may_recurse">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="marshaller">
+          <type name="GHookMarshaller" c:type="GHookMarshaller"/>
+        </parameter>
+        <parameter name="marshal_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="hook_list_marshal_check"
+              c:identifier="g_hook_list_marshal_check">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="hook_list">
+          <type name="GHookList" c:type="GHookList*"/>
+        </parameter>
+        <parameter name="may_recurse">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="marshaller">
+          <type name="GHookCheckMarshaller" c:type="GHookCheckMarshaller"/>
+        </parameter>
+        <parameter name="marshal_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_tolower" c:identifier="g_ascii_tolower">
+      <return-value>
+        <type name="gchar" c:type="gchar"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_toupper" c:identifier="g_ascii_toupper">
+      <return-value>
+        <type name="gchar" c:type="gchar"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_digit_value" c:identifier="g_ascii_digit_value">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_xdigit_value" c:identifier="g_ascii_xdigit_value">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strdelimit" c:identifier="g_strdelimit">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="delimiters">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="new_delimiter">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strcanon" c:identifier="g_strcanon">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="valid_chars">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="substitutor">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strerror" c:identifier="g_strerror">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="errnum">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strsignal" c:identifier="g_strsignal">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="signum">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strreverse" c:identifier="g_strreverse">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strlcpy" c:identifier="g_strlcpy">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="src">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="dest_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strlcat" c:identifier="g_strlcat">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="src">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="dest_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strstr_len" c:identifier="g_strstr_len">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="haystack">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="haystack_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="needle">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strrstr" c:identifier="g_strrstr">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="haystack">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="needle">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strrstr_len" c:identifier="g_strrstr_len">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="haystack">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="haystack_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="needle">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="str_has_suffix" c:identifier="g_str_has_suffix">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="suffix">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="str_has_prefix" c:identifier="g_str_has_prefix">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="prefix">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strtod" c:identifier="g_strtod">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="nptr">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="endptr">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strtod" c:identifier="g_ascii_strtod">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="nptr">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="endptr">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strtoull" c:identifier="g_ascii_strtoull">
+      <return-value>
+        <type name="guint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="nptr">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="endptr">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="base">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strtoll" c:identifier="g_ascii_strtoll">
+      <return-value>
+        <type name="gint64" c:type="gint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="nptr">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="endptr">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="base">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_dtostr" c:identifier="g_ascii_dtostr">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="buf_len">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="d">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_formatd" c:identifier="g_ascii_formatd">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="buf_len">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="d">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strchug" c:identifier="g_strchug">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strchomp" c:identifier="g_strchomp">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strcasecmp" c:identifier="g_ascii_strcasecmp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="s2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strncasecmp" c:identifier="g_ascii_strncasecmp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="s2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strdown" c:identifier="g_ascii_strdown">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ascii_strup" c:identifier="g_ascii_strup">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strcasecmp" c:identifier="g_strcasecmp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="s2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strncasecmp" c:identifier="g_strncasecmp">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="s2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strdown" c:identifier="g_strdown">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strup" c:identifier="g_strup">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strdup" c:identifier="g_strdup">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strdup_printf" c:identifier="g_strdup_printf">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strndup" c:identifier="g_strndup">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strnfill" c:identifier="g_strnfill">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="fill_char">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strconcat" c:identifier="g_strconcat">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strjoin" c:identifier="g_strjoin">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="separator">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strcompress" c:identifier="g_strcompress">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strescape" c:identifier="g_strescape">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="exceptions">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="memdup" c:identifier="g_memdup">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="byte_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strsplit" c:identifier="g_strsplit">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="delimiter">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="max_tokens">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strsplit_set" c:identifier="g_strsplit_set">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="delimiters">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="max_tokens">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strjoinv" c:identifier="g_strjoinv">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="separator">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="str_array">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strfreev" c:identifier="g_strfreev">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="str_array">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strdupv" c:identifier="g_strdupv">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="str_array">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strv_length" c:identifier="g_strv_length">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="str_array">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="stpcpy" c:identifier="g_stpcpy">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="src">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strip_context" c:identifier="g_strip_context">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="msgid">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="msgval">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="dpgettext" c:identifier="g_dpgettext">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="msgctxtid">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="msgidoffset">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="SList" c:type="GSList"/>
+    <record name="GSList" c:type="_GSList">
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="next">
+        <type name="GSList" c:type="GSList*"/>
+      </field>
+    </record>
+    <function name="slist_alloc" c:identifier="g_slist_alloc">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+    </function>
+    <function name="slist_free" c:identifier="g_slist_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_free_1" c:identifier="g_slist_free_1">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_append" c:identifier="g_slist_append">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_prepend" c:identifier="g_slist_prepend">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_insert" c:identifier="g_slist_insert">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_insert_sorted" c:identifier="g_slist_insert_sorted">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_insert_sorted_with_data"
+              c:identifier="g_slist_insert_sorted_with_data">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_insert_before" c:identifier="g_slist_insert_before">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="slist">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_concat" c:identifier="g_slist_concat">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list1">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="list2">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_remove" c:identifier="g_slist_remove">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_remove_all" c:identifier="g_slist_remove_all">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_remove_link" c:identifier="g_slist_remove_link">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_delete_link" c:identifier="g_slist_delete_link">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_reverse" c:identifier="g_slist_reverse">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_copy" c:identifier="g_slist_copy">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_nth" c:identifier="g_slist_nth">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_find" c:identifier="g_slist_find">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_find_custom" c:identifier="g_slist_find_custom">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_position" c:identifier="g_slist_position">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="llink">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_index" c:identifier="g_slist_index">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_last" c:identifier="g_slist_last">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_length" c:identifier="g_slist_length">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_foreach" c:identifier="g_slist_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_sort" c:identifier="g_slist_sort">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_sort_with_data"
+              c:identifier="g_slist_sort_with_data">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_nth_data" c:identifier="g_slist_nth_data">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="list">
+          <type name="GSList" c:type="GSList*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_push_allocator"
+              c:identifier="g_slist_push_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dummy">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="slist_pop_allocator" c:identifier="g_slist_pop_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <record name="MainContext" c:type="GMainContext"/>
+    <record name="MainLoop" c:type="GMainLoop"/>
+    <record name="Source" c:type="GSource"/>
+    <record name="SourceCallbackFuncs" c:type="GSourceCallbackFuncs"/>
+    <record name="SourceFuncs" c:type="GSourceFuncs"/>
+    <callback name="GSourceFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GChildWatchFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pid">
+          <type name="GPid" c:type="GPid"/>
+        </parameter>
+        <parameter name="status">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GSource" c:type="_GSource">
+      <field name="callback_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="callback_funcs">
+        <type name="GSourceCallbackFuncs" c:type="GSourceCallbackFuncs*"/>
+      </field>
+      <field name="source_funcs">
+        <type name="GSourceFuncs" c:type="GSourceFuncs*"/>
+      </field>
+      <field name="ref_count">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="context">
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </field>
+      <field name="priority">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="flags">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="source_id">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="poll_fds">
+        <type name="GSList" c:type="GSList*"/>
+      </field>
+      <field name="prev">
+        <type name="GSource" c:type="GSource*"/>
+      </field>
+      <field name="next">
+        <type name="GSource" c:type="GSource*"/>
+      </field>
+      <field name="reserved1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="reserved2">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <record name="GSourceCallbackFuncs" c:type="_GSourceCallbackFuncs">
+      <callback name="ref">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cb_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="unref">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cb_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="get">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cb_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="source">
+            <type name="GSource" c:type="GSource*"/>
+          </parameter>
+          <parameter name="func">
+            <type name="GSourceFunc" c:type="GSourceFunc*"/>
+          </parameter>
+          <parameter name="data">
+            <type name="gpointer" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </callback>
+    </record>
+    <callback name="GSourceDummyMarshal">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </callback>
+    <record name="GSourceFuncs" c:type="_GSourceFuncs">
+      <callback name="prepare">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="source">
+            <type name="GSource" c:type="GSource*"/>
+          </parameter>
+          <parameter name="timeout_">
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="check">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="source">
+            <type name="GSource" c:type="GSource*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="dispatch">
+        <return-value>
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="source">
+            <type name="GSource" c:type="GSource*"/>
+          </parameter>
+          <parameter name="callback">
+            <type name="GSourceFunc" c:type="GSourceFunc"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="finalize">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source">
+            <type name="GSource" c:type="GSource*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <field name="closure_callback">
+        <type name="GSourceFunc" c:type="GSourceFunc"/>
+      </field>
+      <field name="closure_marshal">
+        <type name="GSourceDummyMarshal" c:type="GSourceDummyMarshal"/>
+      </field>
+    </record>
+    <record name="PollFD" c:type="GPollFD"/>
+    <callback name="GPollFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="ufds">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+        <parameter name="nfsd">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="timeout_">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GPollFD" c:type="_GPollFD">
+      <field name="fd">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="events">
+        <type name="gushort" c:type="gushort"/>
+      </field>
+      <field name="revents">
+        <type name="gushort" c:type="gushort"/>
+      </field>
+    </record>
+    <function name="main_context_new" c:identifier="g_main_context_new">
+      <return-value>
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </return-value>
+    </function>
+    <function name="main_context_ref" c:identifier="g_main_context_ref">
+      <return-value>
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_unref" c:identifier="g_main_context_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_default"
+              c:identifier="g_main_context_default">
+      <return-value>
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </return-value>
+    </function>
+    <function name="main_context_iteration"
+              c:identifier="g_main_context_iteration">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="may_block">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_pending"
+              c:identifier="g_main_context_pending">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_find_source_by_id"
+              c:identifier="g_main_context_find_source_by_id">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="source_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_find_source_by_user_data"
+              c:identifier="g_main_context_find_source_by_user_data">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_find_source_by_funcs_user_data"
+              c:identifier="g_main_context_find_source_by_funcs_user_data">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="funcs">
+          <type name="GSourceFuncs" c:type="GSourceFuncs*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_wakeup" c:identifier="g_main_context_wakeup">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_acquire"
+              c:identifier="g_main_context_acquire">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_release"
+              c:identifier="g_main_context_release">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_is_owner"
+              c:identifier="g_main_context_is_owner">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_wait" c:identifier="g_main_context_wait">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="cond">
+          <type name="GCond" c:type="GCond*"/>
+        </parameter>
+        <parameter name="mutex">
+          <type name="GMutex" c:type="GMutex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_prepare"
+              c:identifier="g_main_context_prepare">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_query" c:identifier="g_main_context_query">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="max_priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="timeout_">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="fds">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+        <parameter name="n_fds">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_check" c:identifier="g_main_context_check">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="max_priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="fds">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+        <parameter name="n_fds">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_dispatch"
+              c:identifier="g_main_context_dispatch">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_set_poll_func"
+              c:identifier="g_main_context_set_poll_func">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GPollFunc" c:type="GPollFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_get_poll_func"
+              c:identifier="g_main_context_get_poll_func">
+      <return-value>
+        <type name="GPollFunc" c:type="GPollFunc"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_add_poll"
+              c:identifier="g_main_context_add_poll">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="fd">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_context_remove_poll"
+              c:identifier="g_main_context_remove_poll">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="fd">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_depth" c:identifier="g_main_depth">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="main_current_source" c:identifier="g_main_current_source">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+    </function>
+    <function name="main_loop_new" c:identifier="g_main_loop_new">
+      <return-value>
+        <type name="GMainLoop" c:type="GMainLoop*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+        <parameter name="is_running">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_run" c:identifier="g_main_loop_run">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_quit" c:identifier="g_main_loop_quit">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_ref" c:identifier="g_main_loop_ref">
+      <return-value>
+        <type name="GMainLoop" c:type="GMainLoop*"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_unref" c:identifier="g_main_loop_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_is_running"
+              c:identifier="g_main_loop_is_running">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="main_loop_get_context"
+              c:identifier="g_main_loop_get_context">
+      <return-value>
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="loop">
+          <type name="GMainLoop" c:type="GMainLoop*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_new" c:identifier="g_source_new">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="source_funcs">
+          <type name="GSourceFuncs" c:type="GSourceFuncs*"/>
+        </parameter>
+        <parameter name="struct_size">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_ref" c:identifier="g_source_ref">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_unref" c:identifier="g_source_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_attach" c:identifier="g_source_attach">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="context">
+          <type name="GMainContext" c:type="GMainContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_destroy" c:identifier="g_source_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_set_priority" c:identifier="g_source_set_priority">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_get_priority" c:identifier="g_source_get_priority">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_set_can_recurse"
+              c:identifier="g_source_set_can_recurse">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="can_recurse">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_get_can_recurse"
+              c:identifier="g_source_get_can_recurse">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_get_id" c:identifier="g_source_get_id">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_get_context" c:identifier="g_source_get_context">
+      <return-value>
+        <type name="GMainContext" c:type="GMainContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_set_callback" c:identifier="g_source_set_callback">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_set_funcs" c:identifier="g_source_set_funcs">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="funcs">
+          <type name="GSourceFuncs" c:type="GSourceFuncs*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_is_destroyed" c:identifier="g_source_is_destroyed">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_set_callback_indirect"
+              c:identifier="g_source_set_callback_indirect">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="callback_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="callback_funcs">
+          <type name="GSourceCallbackFuncs" c:type="GSourceCallbackFuncs*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_add_poll" c:identifier="g_source_add_poll">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="fd">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_remove_poll" c:identifier="g_source_remove_poll">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="fd">
+          <type name="GPollFD" c:type="GPollFD*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_get_current_time"
+              c:identifier="g_source_get_current_time">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GSource" c:type="GSource*"/>
+        </parameter>
+        <parameter name="timeval">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="idle_source_new" c:identifier="g_idle_source_new">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+    </function>
+    <function name="child_watch_source_new"
+              c:identifier="g_child_watch_source_new">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pid">
+          <type name="GPid" c:type="GPid"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_source_new" c:identifier="g_timeout_source_new">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_source_new_seconds"
+              c:identifier="g_timeout_source_new_seconds">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_current_time" c:identifier="g_get_current_time">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="result">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_remove" c:identifier="g_source_remove">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_remove_by_user_data"
+              c:identifier="g_source_remove_by_user_data">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="source_remove_by_funcs_user_data"
+              c:identifier="g_source_remove_by_funcs_user_data">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="funcs">
+          <type name="GSourceFuncs" c:type="GSourceFuncs*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_add_full" c:identifier="g_timeout_add_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_add" c:identifier="g_timeout_add">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_add_seconds_full"
+              c:identifier="g_timeout_add_seconds_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timeout_add_seconds" c:identifier="g_timeout_add_seconds">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_watch_add_full"
+              c:identifier="g_child_watch_add_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="pid">
+          <type name="GPid" c:type="GPid"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GChildWatchFunc" c:type="GChildWatchFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_watch_add" c:identifier="g_child_watch_add">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="pid">
+          <type name="GPid" c:type="GPid"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GChildWatchFunc" c:type="GChildWatchFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="idle_add" c:identifier="g_idle_add">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="idle_add_full" c:identifier="g_idle_add_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="function">
+          <type name="GSourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="idle_remove_by_data" c:identifier="g_idle_remove_by_data">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_charset" c:identifier="g_get_charset">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="charset">
+          <type name="char" c:type="char**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isalnum" c:identifier="g_unichar_isalnum">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isalpha" c:identifier="g_unichar_isalpha">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_iscntrl" c:identifier="g_unichar_iscntrl">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isdigit" c:identifier="g_unichar_isdigit">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isgraph" c:identifier="g_unichar_isgraph">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_islower" c:identifier="g_unichar_islower">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isprint" c:identifier="g_unichar_isprint">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_ispunct" c:identifier="g_unichar_ispunct">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isspace" c:identifier="g_unichar_isspace">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isupper" c:identifier="g_unichar_isupper">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isxdigit" c:identifier="g_unichar_isxdigit">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_istitle" c:identifier="g_unichar_istitle">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_isdefined" c:identifier="g_unichar_isdefined">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_iswide" c:identifier="g_unichar_iswide">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_iswide_cjk" c:identifier="g_unichar_iswide_cjk">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_iszerowidth" c:identifier="g_unichar_iszerowidth">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_ismark" c:identifier="g_unichar_ismark">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_toupper" c:identifier="g_unichar_toupper">
+      <return-value>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_tolower" c:identifier="g_unichar_tolower">
+      <return-value>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_totitle" c:identifier="g_unichar_totitle">
+      <return-value>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_digit_value" c:identifier="g_unichar_digit_value">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_xdigit_value"
+              c:identifier="g_unichar_xdigit_value">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_type" c:identifier="g_unichar_type">
+      <return-value>
+        <type name="GUnicodeType" c:type="GUnicodeType"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_break_type" c:identifier="g_unichar_break_type">
+      <return-value>
+        <type name="GUnicodeBreakType" c:type="GUnicodeBreakType"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_combining_class"
+              c:identifier="g_unichar_combining_class">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="uc">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unicode_canonical_ordering"
+              c:identifier="g_unicode_canonical_ordering">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="gunichar" c:type="gunichar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unicode_canonical_decomposition"
+              c:identifier="g_unicode_canonical_decomposition">
+      <return-value>
+        <type name="gunichar" c:type="gunichar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="ch">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+        <parameter name="result_len">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_get_char" c:identifier="g_utf8_get_char">
+      <return-value>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_get_char_validated"
+              c:identifier="g_utf8_get_char_validated">
+      <return-value>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="max_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_offset_to_pointer"
+              c:identifier="g_utf8_offset_to_pointer">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="offset">
+          <type name="long" c:type="glong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_pointer_to_offset"
+              c:identifier="g_utf8_pointer_to_offset">
+      <return-value>
+        <type name="long" c:type="glong"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_prev_char" c:identifier="g_utf8_prev_char">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_find_next_char" c:identifier="g_utf8_find_next_char">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="end">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_find_prev_char" c:identifier="g_utf8_find_prev_char">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strlen" c:identifier="g_utf8_strlen">
+      <return-value>
+        <type name="long" c:type="glong"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="max">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strncpy" c:identifier="g_utf8_strncpy">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="src">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strchr" c:identifier="g_utf8_strchr">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strrchr" c:identifier="g_utf8_strrchr">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="p">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strreverse" c:identifier="g_utf8_strreverse">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_to_utf16" c:identifier="g_utf8_to_utf16">
+      <return-value>
+        <type name="gunichar2" c:type="gunichar2*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_to_ucs4" c:identifier="g_utf8_to_ucs4">
+      <return-value>
+        <type name="gunichar" c:type="gunichar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_to_ucs4_fast" c:identifier="g_utf8_to_ucs4_fast">
+      <return-value>
+        <type name="gunichar" c:type="gunichar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf16_to_ucs4" c:identifier="g_utf16_to_ucs4">
+      <return-value>
+        <type name="gunichar" c:type="gunichar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="gunichar2" c:type="gunichar2*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf16_to_utf8" c:identifier="g_utf16_to_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="gunichar2" c:type="gunichar2*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ucs4_to_utf16" c:identifier="g_ucs4_to_utf16">
+      <return-value>
+        <type name="gunichar2" c:type="gunichar2*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="gunichar" c:type="gunichar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ucs4_to_utf8" c:identifier="g_ucs4_to_utf8">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="gunichar" c:type="gunichar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="long" c:type="glong"/>
+        </parameter>
+        <parameter name="items_read">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="items_written">
+          <type name="glong" c:type="glong*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_to_utf8" c:identifier="g_unichar_to_utf8">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="c">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+        <parameter name="outbuf">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_validate" c:identifier="g_utf8_validate">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="max_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="end">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_validate" c:identifier="g_unichar_validate">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="ch">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strup" c:identifier="g_utf8_strup">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_strdown" c:identifier="g_utf8_strdown">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_casefold" c:identifier="g_utf8_casefold">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_normalize" c:identifier="g_utf8_normalize">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="mode">
+          <type name="GNormalizeMode" c:type="GNormalizeMode"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_collate" c:identifier="g_utf8_collate">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="str1">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="str2">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_collate_key" c:identifier="g_utf8_collate_key">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="utf8_collate_key_for_filename"
+              c:identifier="g_utf8_collate_key_for_filename">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_get_mirror_char"
+              c:identifier="g_unichar_get_mirror_char">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="ch">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+        <parameter name="mirrored_ch">
+          <type name="gunichar" c:type="gunichar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unichar_get_script" c:identifier="g_unichar_get_script">
+      <return-value>
+        <type name="GUnicodeScript" c:type="GUnicodeScript"/>
+      </return-value>
+      <parameters>
+        <parameter name="ch">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="g_utf8_make_valid" c:identifier="_g_utf8_make_valid">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="String" c:type="GString"/>
+    <record name="StringChunk" c:type="GStringChunk"/>
+    <record name="GString" c:type="_GString">
+      <field name="str">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="len">
+        <type name="size" c:type="gsize"/>
+      </field>
+      <field name="allocated_len">
+        <type name="size" c:type="gsize"/>
+      </field>
+    </record>
+    <function name="string_chunk_new" c:identifier="g_string_chunk_new">
+      <return-value>
+        <type name="GStringChunk" c:type="GStringChunk*"/>
+      </return-value>
+      <parameters>
+        <parameter name="size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_chunk_free" c:identifier="g_string_chunk_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="chunk">
+          <type name="GStringChunk" c:type="GStringChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_chunk_clear" c:identifier="g_string_chunk_clear">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="chunk">
+          <type name="GStringChunk" c:type="GStringChunk*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_chunk_insert" c:identifier="g_string_chunk_insert">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="chunk">
+          <type name="GStringChunk" c:type="GStringChunk*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_chunk_insert_len"
+              c:identifier="g_string_chunk_insert_len">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="chunk">
+          <type name="GStringChunk" c:type="GStringChunk*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_chunk_insert_const"
+              c:identifier="g_string_chunk_insert_const">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="chunk">
+          <type name="GStringChunk" c:type="GStringChunk*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_new" c:identifier="g_string_new">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="init">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_new_len" c:identifier="g_string_new_len">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="init">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_sized_new" c:identifier="g_string_sized_new">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="dfl_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_free" c:identifier="g_string_free">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="free_segment">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_equal" c:identifier="g_string_equal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="v2">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_hash" c:identifier="g_string_hash">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="str">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_assign" c:identifier="g_string_assign">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="rval">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_truncate" c:identifier="g_string_truncate">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_set_size" c:identifier="g_string_set_size">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_insert_len" c:identifier="g_string_insert_len">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append" c:identifier="g_string_append">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append_len" c:identifier="g_string_append_len">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append_c" c:identifier="g_string_append_c">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append_unichar"
+              c:identifier="g_string_append_unichar">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="wc">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_prepend" c:identifier="g_string_prepend">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_prepend_c" c:identifier="g_string_prepend_c">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_prepend_unichar"
+              c:identifier="g_string_prepend_unichar">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="wc">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_prepend_len" c:identifier="g_string_prepend_len">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_insert" c:identifier="g_string_insert">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_insert_c" c:identifier="g_string_insert_c">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="c">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_insert_unichar"
+              c:identifier="g_string_insert_unichar">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="wc">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_overwrite" c:identifier="g_string_overwrite">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_overwrite_len"
+              c:identifier="g_string_overwrite_len">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="val">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_erase" c:identifier="g_string_erase">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_ascii_down" c:identifier="g_string_ascii_down">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_ascii_up" c:identifier="g_string_ascii_up">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_printf" c:identifier="g_string_printf">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append_printf"
+              c:identifier="g_string_append_printf">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_append_uri_escaped"
+              c:identifier="g_string_append_uri_escaped">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="unescaped">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="reserved_chars_allowed">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="allow_utf8">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_down" c:identifier="g_string_down">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="string_up" c:identifier="g_string_up">
+      <return-value>
+        <type name="GString" c:type="GString*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="IOChannel" c:type="GIOChannel"/>
+    <record name="IOFuncs" c:type="GIOFuncs"/>
+    <record name="GIOChannel" c:type="_GIOChannel">
+      <field name="ref_count">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="funcs">
+        <type name="GIOFuncs" c:type="GIOFuncs*"/>
+      </field>
+      <field name="encoding">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="read_cd">
+        <type name="GIConv" c:type="GIConv"/>
+      </field>
+      <field name="write_cd">
+        <type name="GIConv" c:type="GIConv"/>
+      </field>
+      <field name="line_term">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="line_term_len">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="buf_size">
+        <type name="size" c:type="gsize"/>
+      </field>
+      <field name="read_buf">
+        <type name="GString" c:type="GString*"/>
+      </field>
+      <field name="encoded_read_buf">
+        <type name="GString" c:type="GString*"/>
+      </field>
+      <field name="write_buf">
+        <type name="GString" c:type="GString*"/>
+      </field>
+      <field name="partial_write_buf">
+        <type name="gchar" c:type="gchar"/>
+      </field>
+      <field name="use_buffer">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="do_encode">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="close_on_unref">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="is_readable">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="is_writeable">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="is_seekable">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="reserved1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="reserved2">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <callback name="GIOFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="source">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="condition">
+          <type name="GIOCondition" c:type="GIOCondition"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GIOFuncs" c:type="_GIOFuncs">
+      <callback name="io_read">
+        <return-value>
+          <type name="GIOStatus" c:type="GIOStatus"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="buf">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="count">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+          <parameter name="bytes_read">
+            <type name="gsize" c:type="gsize*"/>
+          </parameter>
+          <parameter name="err">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_write">
+        <return-value>
+          <type name="GIOStatus" c:type="GIOStatus"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="buf">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="count">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+          <parameter name="bytes_written">
+            <type name="gsize" c:type="gsize*"/>
+          </parameter>
+          <parameter name="err">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_seek">
+        <return-value>
+          <type name="GIOStatus" c:type="GIOStatus"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="offset">
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+          <parameter name="type">
+            <type name="GSeekType" c:type="GSeekType"/>
+          </parameter>
+          <parameter name="err">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_close">
+        <return-value>
+          <type name="GIOStatus" c:type="GIOStatus"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="err">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_create_watch">
+        <return-value>
+          <type name="GSource" c:type="GSource*"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="condition">
+            <type name="GIOCondition" c:type="GIOCondition"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_free">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_set_flags">
+        <return-value>
+          <type name="GIOStatus" c:type="GIOStatus"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+          <parameter name="flags">
+            <type name="GIOFlags" c:type="GIOFlags"/>
+          </parameter>
+          <parameter name="err">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="io_get_flags">
+        <return-value>
+          <type name="GIOFlags" c:type="GIOFlags"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel">
+            <type name="GIOChannel" c:type="GIOChannel*"/>
+          </parameter>
+        </parameters>
+      </callback>
+    </record>
+    <function name="io_channel_init" c:identifier="g_io_channel_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_ref" c:identifier="g_io_channel_ref">
+      <return-value>
+        <type name="GIOChannel" c:type="GIOChannel*"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_unref" c:identifier="g_io_channel_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read" c:identifier="g_io_channel_read">
+      <return-value>
+        <type name="GIOError" c:type="GIOError"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buf">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="count">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_write" c:identifier="g_io_channel_write">
+      <return-value>
+        <type name="GIOError" c:type="GIOError"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buf">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="count">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_seek" c:identifier="g_io_channel_seek">
+      <return-value>
+        <type name="GIOError" c:type="GIOError"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="offset">
+          <type name="gint64" c:type="gint64"/>
+        </parameter>
+        <parameter name="type">
+          <type name="GSeekType" c:type="GSeekType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_close" c:identifier="g_io_channel_close">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_shutdown" c:identifier="g_io_channel_shutdown">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="flush">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="err">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_add_watch_full" c:identifier="g_io_add_watch_full">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="priority">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="condition">
+          <type name="GIOCondition" c:type="GIOCondition"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GIOFunc" c:type="GIOFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_create_watch" c:identifier="g_io_create_watch">
+      <return-value>
+        <type name="GSource" c:type="GSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="condition">
+          <type name="GIOCondition" c:type="GIOCondition"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_add_watch" c:identifier="g_io_add_watch">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="condition">
+          <type name="GIOCondition" c:type="GIOCondition"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GIOFunc" c:type="GIOFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_buffer_size"
+              c:identifier="g_io_channel_set_buffer_size">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_buffer_size"
+              c:identifier="g_io_channel_get_buffer_size">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_buffer_condition"
+              c:identifier="g_io_channel_get_buffer_condition">
+      <return-value>
+        <type name="GIOCondition" c:type="GIOCondition"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_flags"
+              c:identifier="g_io_channel_set_flags">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GIOFlags" c:type="GIOFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_flags"
+              c:identifier="g_io_channel_get_flags">
+      <return-value>
+        <type name="GIOFlags" c:type="GIOFlags"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_line_term"
+              c:identifier="g_io_channel_set_line_term">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="line_term">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_line_term"
+              c:identifier="g_io_channel_get_line_term">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_buffered"
+              c:identifier="g_io_channel_set_buffered">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buffered">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_buffered"
+              c:identifier="g_io_channel_get_buffered">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_encoding"
+              c:identifier="g_io_channel_set_encoding">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="encoding">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_encoding"
+              c:identifier="g_io_channel_get_encoding">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_set_close_on_unref"
+              c:identifier="g_io_channel_set_close_on_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="do_close">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_get_close_on_unref"
+              c:identifier="g_io_channel_get_close_on_unref">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_flush" c:identifier="g_io_channel_flush">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read_line"
+              c:identifier="g_io_channel_read_line">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="str_return">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="terminator_pos">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read_line_string"
+              c:identifier="g_io_channel_read_line_string">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buffer">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="terminator_pos">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read_to_end"
+              c:identifier="g_io_channel_read_to_end">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="str_return">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read_chars"
+              c:identifier="g_io_channel_read_chars">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buf">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="count">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="bytes_read">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_read_unichar"
+              c:identifier="g_io_channel_read_unichar">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="thechar">
+          <type name="gunichar" c:type="gunichar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_write_chars"
+              c:identifier="g_io_channel_write_chars">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="buf">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="count">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="bytes_written">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_write_unichar"
+              c:identifier="g_io_channel_write_unichar">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="thechar">
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_seek_position"
+              c:identifier="g_io_channel_seek_position">
+      <return-value>
+        <type name="GIOStatus" c:type="GIOStatus"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+        <parameter name="offset">
+          <type name="gint64" c:type="gint64"/>
+        </parameter>
+        <parameter name="type">
+          <type name="GSeekType" c:type="GSeekType"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_new_file" c:identifier="g_io_channel_new_file">
+      <return-value>
+        <type name="GIOChannel" c:type="GIOChannel*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="mode">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_error_quark"
+              c:identifier="g_io_channel_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="io_channel_error_from_errno"
+              c:identifier="g_io_channel_error_from_errno">
+      <return-value>
+        <type name="GIOChannelError" c:type="GIOChannelError"/>
+      </return-value>
+      <parameters>
+        <parameter name="en">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_unix_new" c:identifier="g_io_channel_unix_new">
+      <return-value>
+        <type name="GIOChannel" c:type="GIOChannel*"/>
+      </return-value>
+      <parameters>
+        <parameter name="fd">
+          <type name="int32" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="io_channel_unix_get_fd"
+              c:identifier="g_io_channel_unix_get_fd">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="channel">
+          <type name="GIOChannel" c:type="GIOChannel*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_error_quark"
+              c:identifier="g_key_file_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <record name="KeyFile" c:type="GKeyFile"/>
+    <function name="key_file_new" c:identifier="g_key_file_new">
+      <return-value>
+        <type name="GKeyFile" c:type="GKeyFile*"/>
+      </return-value>
+    </function>
+    <function name="key_file_free" c:identifier="g_key_file_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_list_separator"
+              c:identifier="g_key_file_set_list_separator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="separator">
+          <type name="gchar" c:type="gchar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_load_from_file"
+              c:identifier="g_key_file_load_from_file">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GKeyFileFlags" c:type="GKeyFileFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_load_from_data"
+              c:identifier="g_key_file_load_from_data">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GKeyFileFlags" c:type="GKeyFileFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_load_from_dirs"
+              c:identifier="g_key_file_load_from_dirs">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="search_dirs">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="full_path">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GKeyFileFlags" c:type="GKeyFileFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_load_from_data_dirs"
+              c:identifier="g_key_file_load_from_data_dirs">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="full_path">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GKeyFileFlags" c:type="GKeyFileFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_to_data" c:identifier="g_key_file_to_data">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_start_group"
+              c:identifier="g_key_file_get_start_group">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_groups" c:identifier="g_key_file_get_groups">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_keys" c:identifier="g_key_file_get_keys">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_has_group" c:identifier="g_key_file_has_group">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_has_key" c:identifier="g_key_file_has_key">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_value" c:identifier="g_key_file_get_value">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_value" c:identifier="g_key_file_set_value">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_string" c:identifier="g_key_file_get_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_string" c:identifier="g_key_file_set_string">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_locale_string"
+              c:identifier="g_key_file_get_locale_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="locale">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_locale_string"
+              c:identifier="g_key_file_set_locale_string">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="locale">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_boolean"
+              c:identifier="g_key_file_get_boolean">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_boolean"
+              c:identifier="g_key_file_set_boolean">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_integer"
+              c:identifier="g_key_file_get_integer">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_integer"
+              c:identifier="g_key_file_set_integer">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_double" c:identifier="g_key_file_get_double">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_double" c:identifier="g_key_file_set_double">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_string_list"
+              c:identifier="g_key_file_get_string_list">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_string_list"
+              c:identifier="g_key_file_set_string_list">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="list">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_locale_string_list"
+              c:identifier="g_key_file_get_locale_string_list">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="locale">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_locale_string_list"
+              c:identifier="g_key_file_set_locale_string_list">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="locale">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="list">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_boolean_list"
+              c:identifier="g_key_file_get_boolean_list">
+      <return-value>
+        <type name="gboolean" c:type="gboolean*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_boolean_list"
+              c:identifier="g_key_file_set_boolean_list">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="list">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_integer_list"
+              c:identifier="g_key_file_get_integer_list">
+      <return-value>
+        <type name="gint" c:type="gint*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_double_list"
+              c:identifier="g_key_file_set_double_list">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="list">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_double_list"
+              c:identifier="g_key_file_get_double_list">
+      <return-value>
+        <type name="gdouble" c:type="gdouble*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="gsize" c:type="gsize*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_integer_list"
+              c:identifier="g_key_file_set_integer_list">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="list">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="length">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_set_comment"
+              c:identifier="g_key_file_set_comment">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="comment">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_get_comment"
+              c:identifier="g_key_file_get_comment">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_remove_comment"
+              c:identifier="g_key_file_remove_comment">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_remove_key" c:identifier="g_key_file_remove_key">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_file_remove_group"
+              c:identifier="g_key_file_remove_group">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_file">
+          <type name="GKeyFile" c:type="GKeyFile*"/>
+        </parameter>
+        <parameter name="group_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="MappedFile" c:type="GMappedFile"/>
+    <function name="mapped_file_new" c:identifier="g_mapped_file_new">
+      <return-value>
+        <type name="GMappedFile" c:type="GMappedFile*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="writable">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mapped_file_get_length"
+              c:identifier="g_mapped_file_get_length">
+      <return-value>
+        <type name="size" c:type="gsize"/>
+      </return-value>
+      <parameters>
+        <parameter name="file">
+          <type name="GMappedFile" c:type="GMappedFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mapped_file_get_contents"
+              c:identifier="g_mapped_file_get_contents">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="file">
+          <type name="GMappedFile" c:type="GMappedFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mapped_file_free" c:identifier="g_mapped_file_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="file">
+          <type name="GMappedFile" c:type="GMappedFile*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_error_quark" c:identifier="g_markup_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <record name="MarkupParseContext" c:type="GMarkupParseContext"/>
+    <record name="MarkupParser" c:type="GMarkupParser"/>
+    <record name="GMarkupParser" c:type="_GMarkupParser">
+      <callback name="start_element">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="context">
+            <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+          </parameter>
+          <parameter name="element_name">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="attribute_names">
+            <type name="gchar" c:type="gchar**"/>
+          </parameter>
+          <parameter name="attribute_values">
+            <type name="gchar" c:type="gchar**"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="end_element">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="context">
+            <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+          </parameter>
+          <parameter name="element_name">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="text">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="context">
+            <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+          </parameter>
+          <parameter name="text">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="text_len">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="passthrough">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="context">
+            <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+          </parameter>
+          <parameter name="passthrough_text">
+            <type name="string" c:type="gchar*"/>
+          </parameter>
+          <parameter name="text_len">
+            <type name="size" c:type="gsize"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError**"/>
+          </parameter>
+        </parameters>
+      </callback>
+      <callback name="error">
+        <return-value>
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="context">
+            <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+          </parameter>
+          <parameter name="error">
+            <type name="GError" c:type="GError*"/>
+          </parameter>
+          <parameter name="user_data">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </callback>
+    </record>
+    <function name="markup_parse_context_new"
+              c:identifier="g_markup_parse_context_new">
+      <return-value>
+        <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parser">
+          <type name="GMarkupParser" c:type="GMarkupParser*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GMarkupParseFlags" c:type="GMarkupParseFlags"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data_dnotify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_free"
+              c:identifier="g_markup_parse_context_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_parse"
+              c:identifier="g_markup_parse_context_parse">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+        <parameter name="text">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="text_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_end_parse"
+              c:identifier="g_markup_parse_context_end_parse">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_get_element"
+              c:identifier="g_markup_parse_context_get_element">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_get_element_stack"
+              c:identifier="g_markup_parse_context_get_element_stack">
+      <return-value>
+        <type name="GSList" c:type="GSList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_parse_context_get_position"
+              c:identifier="g_markup_parse_context_get_position">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GMarkupParseContext" c:type="GMarkupParseContext*"/>
+        </parameter>
+        <parameter name="line_number">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="char_number">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_escape_text" c:identifier="g_markup_escape_text">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="text">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_printf_escaped"
+              c:identifier="g_markup_printf_escaped">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="markup_collect_attributes"
+              c:identifier="g_markup_collect_attributes">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="attribute_names">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="attribute_values">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+        <parameter name="first_type">
+          <type name="GMarkupCollectType" c:type="GMarkupCollectType"/>
+        </parameter>
+        <parameter name="first_attr">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <callback name="GLogFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="log_level">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="log_set_handler" c:identifier="g_log_set_handler">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="log_levels">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+        <parameter name="log_func">
+          <type name="GLogFunc" c:type="GLogFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log_remove_handler" c:identifier="g_log_remove_handler">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="handler_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log_default_handler" c:identifier="g_log_default_handler">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="log_level">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="unused_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log_set_default_handler"
+              c:identifier="g_log_set_default_handler">
+      <return-value>
+        <type name="GLogFunc" c:type="GLogFunc"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_func">
+          <type name="GLogFunc" c:type="GLogFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log" c:identifier="g_log">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="log_level">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log_set_fatal_mask" c:identifier="g_log_set_fatal_mask">
+      <return-value>
+        <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="fatal_mask">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="log_set_always_fatal"
+              c:identifier="g_log_set_always_fatal">
+      <return-value>
+        <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+      </return-value>
+      <parameters>
+        <parameter name="fatal_mask">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="g_log_fallback_handler"
+              c:identifier="_g_log_fallback_handler">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="log_level">
+          <type name="GLogLevelFlags" c:type="GLogLevelFlags"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="unused_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="return_if_fail_warning"
+              c:identifier="g_return_if_fail_warning">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="pretty_function">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="expression">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="warn_message" c:identifier="g_warn_message">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="warnexpr">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="assert_warning" c:identifier="g_assert_warning">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="pretty_function">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="expression">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <callback name="GPrintFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="print" c:identifier="g_print">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_print_handler" c:identifier="g_set_print_handler">
+      <return-value>
+        <type name="GPrintFunc" c:type="GPrintFunc"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GPrintFunc" c:type="GPrintFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="printerr" c:identifier="g_printerr">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_printerr_handler"
+              c:identifier="g_set_printerr_handler">
+      <return-value>
+        <type name="GPrintFunc" c:type="GPrintFunc"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GPrintFunc" c:type="GPrintFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Node" c:type="GNode"/>
+    <callback name="GNodeTraverseFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GNodeForeachFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GCopyFunc">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="src">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GNode" c:type="_GNode">
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="next">
+        <type name="GNode" c:type="GNode*"/>
+      </field>
+      <field name="prev">
+        <type name="GNode" c:type="GNode*"/>
+      </field>
+      <field name="parent">
+        <type name="GNode" c:type="GNode*"/>
+      </field>
+      <field name="children">
+        <type name="GNode" c:type="GNode*"/>
+      </field>
+    </record>
+    <function name="node_new" c:identifier="g_node_new">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_destroy" c:identifier="g_node_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="root">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_unlink" c:identifier="g_node_unlink">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_copy_deep" c:identifier="g_node_copy_deep">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="copy_func">
+          <type name="GCopyFunc" c:type="GCopyFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_copy" c:identifier="g_node_copy">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_insert" c:identifier="g_node_insert">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_insert_before" c:identifier="g_node_insert_before">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_insert_after" c:identifier="g_node_insert_after">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_prepend" c:identifier="g_node_prepend">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_n_nodes" c:identifier="g_node_n_nodes">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="root">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GTraverseFlags" c:type="GTraverseFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_get_root" c:identifier="g_node_get_root">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_is_ancestor" c:identifier="g_node_is_ancestor">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="descendant">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_depth" c:identifier="g_node_depth">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_find" c:identifier="g_node_find">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="root">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="order">
+          <type name="GTraverseType" c:type="GTraverseType"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GTraverseFlags" c:type="GTraverseFlags"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_traverse" c:identifier="g_node_traverse">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="root">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="order">
+          <type name="GTraverseType" c:type="GTraverseType"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GTraverseFlags" c:type="GTraverseFlags"/>
+        </parameter>
+        <parameter name="max_depth">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GNodeTraverseFunc" c:type="GNodeTraverseFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_max_height" c:identifier="g_node_max_height">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="root">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_children_foreach"
+              c:identifier="g_node_children_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GTraverseFlags" c:type="GTraverseFlags"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GNodeForeachFunc" c:type="GNodeForeachFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_reverse_children"
+              c:identifier="g_node_reverse_children">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_n_children" c:identifier="g_node_n_children">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_nth_child" c:identifier="g_node_nth_child">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_last_child" c:identifier="g_node_last_child">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_find_child" c:identifier="g_node_find_child">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GTraverseFlags" c:type="GTraverseFlags"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_child_position" c:identifier="g_node_child_position">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="child">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_child_index" c:identifier="g_node_child_index">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_first_sibling" c:identifier="g_node_first_sibling">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_last_sibling" c:identifier="g_node_last_sibling">
+      <return-value>
+        <type name="GNode" c:type="GNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="node">
+          <type name="GNode" c:type="GNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_push_allocator" c:identifier="g_node_push_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dummy">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="node_pop_allocator" c:identifier="g_node_pop_allocator">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <record name="OptionContext" c:type="GOptionContext"/>
+    <record name="OptionGroup" c:type="GOptionGroup"/>
+    <record name="OptionEntry" c:type="GOptionEntry"/>
+    <callback name="GOptionArgFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="option_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GOptionParseFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="GOptionErrorFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="option_error_quark" c:identifier="g_option_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <record name="GOptionEntry" c:type="_GOptionEntry">
+      <field name="long_name">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="short_name">
+        <type name="gchar" c:type="gchar"/>
+      </field>
+      <field name="flags">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="arg">
+        <type name="GOptionArg" c:type="GOptionArg"/>
+      </field>
+      <field name="arg_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="description">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="arg_description">
+        <type name="string" c:type="gchar*"/>
+      </field>
+    </record>
+    <function name="option_context_new" c:identifier="g_option_context_new">
+      <return-value>
+        <type name="GOptionContext" c:type="GOptionContext*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parameter_string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_summary"
+              c:identifier="g_option_context_set_summary">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="summary">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_summary"
+              c:identifier="g_option_context_get_summary">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_description"
+              c:identifier="g_option_context_set_description">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="description">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_description"
+              c:identifier="g_option_context_get_description">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_free" c:identifier="g_option_context_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_help_enabled"
+              c:identifier="g_option_context_set_help_enabled">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="help_enabled">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_help_enabled"
+              c:identifier="g_option_context_get_help_enabled">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_ignore_unknown_options"
+              c:identifier="g_option_context_set_ignore_unknown_options">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="ignore_unknown">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_ignore_unknown_options"
+              c:identifier="g_option_context_get_ignore_unknown_options">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_add_main_entries"
+              c:identifier="g_option_context_add_main_entries">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="entries">
+          <type name="GOptionEntry" c:type="GOptionEntry*"/>
+        </parameter>
+        <parameter name="translation_domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_parse"
+              c:identifier="g_option_context_parse">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="argc">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="argv">
+          <type name="gchar" c:type="gchar***"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_translate_func"
+              c:identifier="g_option_context_set_translate_func">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GTranslateFunc" c:type="GTranslateFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy_notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_translation_domain"
+              c:identifier="g_option_context_set_translation_domain">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_add_group"
+              c:identifier="g_option_context_add_group">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_set_main_group"
+              c:identifier="g_option_context_set_main_group">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_main_group"
+              c:identifier="g_option_context_get_main_group">
+      <return-value>
+        <type name="GOptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_context_get_help"
+              c:identifier="g_option_context_get_help">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="context">
+          <type name="GOptionContext" c:type="GOptionContext*"/>
+        </parameter>
+        <parameter name="main_help">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_new" c:identifier="g_option_group_new">
+      <return-value>
+        <type name="GOptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="description">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="help_description">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_set_parse_hooks"
+              c:identifier="g_option_group_set_parse_hooks">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="pre_parse_func">
+          <type name="GOptionParseFunc" c:type="GOptionParseFunc"/>
+        </parameter>
+        <parameter name="post_parse_func">
+          <type name="GOptionParseFunc" c:type="GOptionParseFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_set_error_hook"
+              c:identifier="g_option_group_set_error_hook">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="error_func">
+          <type name="GOptionErrorFunc" c:type="GOptionErrorFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_free" c:identifier="g_option_group_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_add_entries"
+              c:identifier="g_option_group_add_entries">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="entries">
+          <type name="GOptionEntry" c:type="GOptionEntry*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_set_translate_func"
+              c:identifier="g_option_group_set_translate_func">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GTranslateFunc" c:type="GTranslateFunc"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy_notify">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="option_group_set_translation_domain"
+              c:identifier="g_option_group_set_translation_domain">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="group">
+          <type name="GOptionGroup" c:type="GOptionGroup*"/>
+        </parameter>
+        <parameter name="domain">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="PatternSpec" c:type="GPatternSpec"/>
+    <function name="pattern_spec_new" c:identifier="g_pattern_spec_new">
+      <return-value>
+        <type name="GPatternSpec" c:type="GPatternSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pattern">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pattern_spec_free" c:identifier="g_pattern_spec_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pspec">
+          <type name="GPatternSpec" c:type="GPatternSpec*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pattern_spec_equal" c:identifier="g_pattern_spec_equal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pspec1">
+          <type name="GPatternSpec" c:type="GPatternSpec*"/>
+        </parameter>
+        <parameter name="pspec2">
+          <type name="GPatternSpec" c:type="GPatternSpec*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pattern_match" c:identifier="g_pattern_match">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pspec">
+          <type name="GPatternSpec" c:type="GPatternSpec*"/>
+        </parameter>
+        <parameter name="string_length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_reversed">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pattern_match_string"
+              c:identifier="g_pattern_match_string">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pspec">
+          <type name="GPatternSpec" c:type="GPatternSpec*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pattern_match_simple"
+              c:identifier="g_pattern_match_simple">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pattern">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spaced_primes_closest"
+              c:identifier="g_spaced_primes_closest">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="num">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="printf" c:identifier="g_printf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fprintf" c:identifier="g_fprintf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="file">
+          <type name="FILE" c:type="FILE*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sprintf" c:identifier="g_sprintf">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="qsort_with_data" c:identifier="g_qsort_with_data">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pbase">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="total_elems">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Queue" c:type="GQueue"/>
+    <record name="GQueue" c:type="_GQueue">
+      <field name="head">
+        <type name="GList" c:type="GList*"/>
+      </field>
+      <field name="tail">
+        <type name="GList" c:type="GList*"/>
+      </field>
+      <field name="length">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="queue_new" c:identifier="g_queue_new">
+      <return-value>
+        <type name="GQueue" c:type="GQueue*"/>
+      </return-value>
+    </function>
+    <function name="queue_free" c:identifier="g_queue_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_init" c:identifier="g_queue_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_clear" c:identifier="g_queue_clear">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_is_empty" c:identifier="g_queue_is_empty">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_get_length" c:identifier="g_queue_get_length">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_reverse" c:identifier="g_queue_reverse">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_copy" c:identifier="g_queue_copy">
+      <return-value>
+        <type name="GQueue" c:type="GQueue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_foreach" c:identifier="g_queue_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_find" c:identifier="g_queue_find">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_find_custom" c:identifier="g_queue_find_custom">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_sort" c:identifier="g_queue_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_head" c:identifier="g_queue_push_head">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_tail" c:identifier="g_queue_push_tail">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_nth" c:identifier="g_queue_push_nth">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="n">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_head" c:identifier="g_queue_pop_head">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_tail" c:identifier="g_queue_pop_tail">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_nth" c:identifier="g_queue_pop_nth">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_head" c:identifier="g_queue_peek_head">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_tail" c:identifier="g_queue_peek_tail">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_nth" c:identifier="g_queue_peek_nth">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_index" c:identifier="g_queue_index">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_remove" c:identifier="g_queue_remove">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_remove_all" c:identifier="g_queue_remove_all">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_insert_before" c:identifier="g_queue_insert_before">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_insert_after" c:identifier="g_queue_insert_after">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="sibling">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_insert_sorted" c:identifier="g_queue_insert_sorted">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_head_link"
+              c:identifier="g_queue_push_head_link">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_tail_link"
+              c:identifier="g_queue_push_tail_link">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_push_nth_link" c:identifier="g_queue_push_nth_link">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_head_link" c:identifier="g_queue_pop_head_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_tail_link" c:identifier="g_queue_pop_tail_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_pop_nth_link" c:identifier="g_queue_pop_nth_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_head_link"
+              c:identifier="g_queue_peek_head_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_tail_link"
+              c:identifier="g_queue_peek_tail_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_peek_nth_link" c:identifier="g_queue_peek_nth_link">
+      <return-value>
+        <type name="GList" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="n">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_link_index" c:identifier="g_queue_link_index">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_unlink" c:identifier="g_queue_unlink">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="queue_delete_link" c:identifier="g_queue_delete_link">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue">
+          <type name="GQueue" c:type="GQueue*"/>
+        </parameter>
+        <parameter name="link_">
+          <type name="GList" c:type="GList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Rand" c:type="GRand"/>
+    <function name="rand_new_with_seed" c:identifier="g_rand_new_with_seed">
+      <return-value>
+        <type name="GRand" c:type="GRand*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seed">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_new_with_seed_array"
+              c:identifier="g_rand_new_with_seed_array">
+      <return-value>
+        <type name="GRand" c:type="GRand*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seed">
+          <type name="guint32" c:type="guint32*"/>
+        </parameter>
+        <parameter name="seed_length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_new" c:identifier="g_rand_new">
+      <return-value>
+        <type name="GRand" c:type="GRand*"/>
+      </return-value>
+    </function>
+    <function name="rand_free" c:identifier="g_rand_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_copy" c:identifier="g_rand_copy">
+      <return-value>
+        <type name="GRand" c:type="GRand*"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_set_seed" c:identifier="g_rand_set_seed">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+        <parameter name="seed">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_set_seed_array" c:identifier="g_rand_set_seed_array">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+        <parameter name="seed">
+          <type name="guint32" c:type="guint32*"/>
+        </parameter>
+        <parameter name="seed_length">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_int" c:identifier="g_rand_int">
+      <return-value>
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_int_range" c:identifier="g_rand_int_range">
+      <return-value>
+        <type name="int32" c:type="gint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+        <parameter name="begin">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+        <parameter name="end">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_double" c:identifier="g_rand_double">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rand_double_range" c:identifier="g_rand_double_range">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="rand_">
+          <type name="GRand" c:type="GRand*"/>
+        </parameter>
+        <parameter name="begin">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+        <parameter name="end">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="random_set_seed" c:identifier="g_random_set_seed">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="seed">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="random_int" c:identifier="g_random_int">
+      <return-value>
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+    </function>
+    <function name="random_int_range" c:identifier="g_random_int_range">
+      <return-value>
+        <type name="int32" c:type="gint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+        <parameter name="end">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="random_double" c:identifier="g_random_double">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+    </function>
+    <function name="random_double_range" c:identifier="g_random_double_range">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+        <parameter name="end">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_error_quark" c:identifier="g_regex_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <record name="Regex" c:type="GRegex"/>
+    <record name="MatchInfo" c:type="GMatchInfo"/>
+    <callback name="GRegexEvalCallback">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="result">
+          <type name="GString" c:type="GString*"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="regex_new" c:identifier="g_regex_new">
+      <return-value>
+        <type name="GRegex" c:type="GRegex*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pattern">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="compile_options">
+          <type name="GRegexCompileFlags" c:type="GRegexCompileFlags"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_ref" c:identifier="g_regex_ref">
+      <return-value>
+        <type name="GRegex" c:type="GRegex*"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_unref" c:identifier="g_regex_unref">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_get_pattern" c:identifier="g_regex_get_pattern">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_get_max_backref"
+              c:identifier="g_regex_get_max_backref">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_get_capture_count"
+              c:identifier="g_regex_get_capture_count">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_get_string_number"
+              c:identifier="g_regex_get_string_number">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_escape_string" c:identifier="g_regex_escape_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_match_simple" c:identifier="g_regex_match_simple">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pattern">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="compile_options">
+          <type name="GRegexCompileFlags" c:type="GRegexCompileFlags"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_match" c:identifier="g_regex_match">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_match_full" c:identifier="g_regex_match_full">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_match_all" c:identifier="g_regex_match_all">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_match_all_full"
+              c:identifier="g_regex_match_all_full">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo**"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_split_simple" c:identifier="g_regex_split_simple">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="pattern">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="compile_options">
+          <type name="GRegexCompileFlags" c:type="GRegexCompileFlags"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_split" c:identifier="g_regex_split">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_split_full" c:identifier="g_regex_split_full">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="max_tokens">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_replace" c:identifier="g_regex_replace">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="replacement">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_replace_literal"
+              c:identifier="g_regex_replace_literal">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="replacement">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_replace_eval" c:identifier="g_regex_replace_eval">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="regex">
+          <type name="GRegex" c:type="GRegex*"/>
+        </parameter>
+        <parameter name="string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="string_len">
+          <type name="ssize" c:type="gssize"/>
+        </parameter>
+        <parameter name="start_position">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="match_options">
+          <type name="GRegexMatchFlags" c:type="GRegexMatchFlags"/>
+        </parameter>
+        <parameter name="eval">
+          <type name="GRegexEvalCallback" c:type="GRegexEvalCallback"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="regex_check_replacement"
+              c:identifier="g_regex_check_replacement">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="replacement">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="has_references">
+          <type name="gboolean" c:type="gboolean*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_get_regex"
+              c:identifier="g_match_info_get_regex">
+      <return-value>
+        <type name="GRegex" c:type="GRegex*"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_get_string"
+              c:identifier="g_match_info_get_string">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_free" c:identifier="g_match_info_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_next" c:identifier="g_match_info_next">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_matches" c:identifier="g_match_info_matches">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_get_match_count"
+              c:identifier="g_match_info_get_match_count">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_is_partial_match"
+              c:identifier="g_match_info_is_partial_match">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_expand_references"
+              c:identifier="g_match_info_expand_references">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="string_to_expand">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_fetch" c:identifier="g_match_info_fetch">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="match_num">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_fetch_pos"
+              c:identifier="g_match_info_fetch_pos">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="match_num">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="start_pos">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="end_pos">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_fetch_named"
+              c:identifier="g_match_info_fetch_named">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_fetch_named_pos"
+              c:identifier="g_match_info_fetch_named_pos">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+        <parameter name="name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="start_pos">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="end_pos">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="match_info_fetch_all"
+              c:identifier="g_match_info_fetch_all">
+      <return-value>
+        <type name="gchar" c:type="gchar**"/>
+      </return-value>
+      <parameters>
+        <parameter name="match_info">
+          <type name="GMatchInfo" c:type="GMatchInfo*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Relation" c:type="GRelation"/>
+    <record name="Tuples" c:type="GTuples"/>
+    <record name="GTuples" c:type="_GTuples">
+      <field name="len">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <function name="relation_new" c:identifier="g_relation_new">
+      <return-value>
+        <type name="GRelation" c:type="GRelation*"/>
+      </return-value>
+      <parameters>
+        <parameter name="fields">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_destroy" c:identifier="g_relation_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_index" c:identifier="g_relation_index">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+        <parameter name="field">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="hash_func">
+          <type name="GHashFunc" c:type="GHashFunc"/>
+        </parameter>
+        <parameter name="key_equal_func">
+          <type name="GEqualFunc" c:type="GEqualFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_insert" c:identifier="g_relation_insert">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_delete" c:identifier="g_relation_delete">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="field">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_select" c:identifier="g_relation_select">
+      <return-value>
+        <type name="GTuples" c:type="GTuples*"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="field">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_count" c:identifier="g_relation_count">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="field">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_exists" c:identifier="g_relation_exists">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="relation_print" c:identifier="g_relation_print">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="relation">
+          <type name="GRelation" c:type="GRelation*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tuples_destroy" c:identifier="g_tuples_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tuples">
+          <type name="GTuples" c:type="GTuples*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tuples_index" c:identifier="g_tuples_index">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="tuples">
+          <type name="GTuples" c:type="GTuples*"/>
+        </parameter>
+        <parameter name="index_">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="field">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Scanner" c:type="GScanner"/>
+    <record name="ScannerConfig" c:type="GScannerConfig"/>
+    <callback name="GScannerMsgFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="GScannerConfig" c:type="_GScannerConfig">
+      <field name="cset_skip_characters">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="cset_identifier_first">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="cset_identifier_nth">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="cpair_comment_single">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="case_sensitive">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="skip_comment_multi">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="skip_comment_single">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_comment_multi">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_identifier">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_identifier_1char">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_identifier_NULL">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_symbols">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_binary">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_octal">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_float">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_hex">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_hex_dollar">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_string_sq">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scan_string_dq">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="numbers_2_int">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="int_2_float">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="identifier_2_string">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="char_2_token">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="symbol_2_token">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="scope_0_fallback">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="store_int64">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="padding_dummy">
+        <type name="uint32" c:type="guint"/>
+      </field>
+    </record>
+    <record name="GScanner" c:type="_GScanner">
+      <field name="user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="max_parse_errors">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="parse_errors">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="input_name">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="qdata">
+        <type name="GData" c:type="GData*"/>
+      </field>
+      <field name="config">
+        <type name="GScannerConfig" c:type="GScannerConfig*"/>
+      </field>
+      <field name="token">
+        <type name="GTokenType" c:type="GTokenType"/>
+      </field>
+      <field name="value">
+        <type name="GTokenValue" c:type="GTokenValue"/>
+      </field>
+      <field name="line">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="position">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="next_token">
+        <type name="GTokenType" c:type="GTokenType"/>
+      </field>
+      <field name="next_value">
+        <type name="GTokenValue" c:type="GTokenValue"/>
+      </field>
+      <field name="next_line">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="next_position">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="symbol_table">
+        <type name="GHashTable" c:type="GHashTable*"/>
+      </field>
+      <field name="input_fd">
+        <type name="int32" c:type="gint"/>
+      </field>
+      <field name="text">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="text_end">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="buffer">
+        <type name="string" c:type="gchar*"/>
+      </field>
+      <field name="scope_id">
+        <type name="uint32" c:type="guint"/>
+      </field>
+      <field name="msg_handler">
+        <type name="GScannerMsgFunc" c:type="GScannerMsgFunc"/>
+      </field>
+    </record>
+    <function name="scanner_new" c:identifier="g_scanner_new">
+      <return-value>
+        <type name="GScanner" c:type="GScanner*"/>
+      </return-value>
+      <parameters>
+        <parameter name="config_templ">
+          <type name="GScannerConfig" c:type="GScannerConfig*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_destroy" c:identifier="g_scanner_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_input_file" c:identifier="g_scanner_input_file">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="input_fd">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_sync_file_offset"
+              c:identifier="g_scanner_sync_file_offset">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_input_text" c:identifier="g_scanner_input_text">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="text">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="text_len">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_get_next_token"
+              c:identifier="g_scanner_get_next_token">
+      <return-value>
+        <type name="GTokenType" c:type="GTokenType"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_peek_next_token"
+              c:identifier="g_scanner_peek_next_token">
+      <return-value>
+        <type name="GTokenType" c:type="GTokenType"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_cur_token" c:identifier="g_scanner_cur_token">
+      <return-value>
+        <type name="GTokenType" c:type="GTokenType"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_cur_value" c:identifier="g_scanner_cur_value">
+      <return-value>
+        <type name="GTokenValue" c:type="GTokenValue"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_cur_line" c:identifier="g_scanner_cur_line">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_cur_position"
+              c:identifier="g_scanner_cur_position">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_eof" c:identifier="g_scanner_eof">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_set_scope" c:identifier="g_scanner_set_scope">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="scope_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_scope_add_symbol"
+              c:identifier="g_scanner_scope_add_symbol">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="scope_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="symbol">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_scope_remove_symbol"
+              c:identifier="g_scanner_scope_remove_symbol">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="scope_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="symbol">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_scope_lookup_symbol"
+              c:identifier="g_scanner_scope_lookup_symbol">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="scope_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="symbol">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_scope_foreach_symbol"
+              c:identifier="g_scanner_scope_foreach_symbol">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="scope_id">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GHFunc" c:type="GHFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_lookup_symbol"
+              c:identifier="g_scanner_lookup_symbol">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="symbol">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_unexp_token" c:identifier="g_scanner_unexp_token">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="expected_token">
+          <type name="GTokenType" c:type="GTokenType"/>
+        </parameter>
+        <parameter name="identifier_spec">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="symbol_spec">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="symbol_name">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="is_error">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_error" c:identifier="g_scanner_error">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scanner_warn" c:identifier="g_scanner_warn">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="scanner">
+          <type name="GScanner" c:type="GScanner*"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Sequence" c:type="GSequence"/>
+    <record name="SequenceIter" c:type="GSequenceIter"/>
+    <callback name="GSequenceIterCompareFunc">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="b">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="sequence_new" c:identifier="g_sequence_new">
+      <return-value>
+        <type name="GSequence" c:type="GSequence*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data_destroy">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_free" c:identifier="g_sequence_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_get_length" c:identifier="g_sequence_get_length">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_foreach" c:identifier="g_sequence_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_foreach_range"
+              c:identifier="g_sequence_foreach_range">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="end">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_sort" c:identifier="g_sequence_sort">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="cmp_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_sort_iter" c:identifier="g_sequence_sort_iter">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="cmp_func">
+          <type name="GSequenceIterCompareFunc"
+                c:type="GSequenceIterCompareFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_get_begin_iter"
+              c:identifier="g_sequence_get_begin_iter">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_get_end_iter"
+              c:identifier="g_sequence_get_end_iter">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_get_iter_at_pos"
+              c:identifier="g_sequence_get_iter_at_pos">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="pos">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_append" c:identifier="g_sequence_append">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_prepend" c:identifier="g_sequence_prepend">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_insert_before"
+              c:identifier="g_sequence_insert_before">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_move" c:identifier="g_sequence_move">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="src">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="dest">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_swap" c:identifier="g_sequence_swap">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="b">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_insert_sorted"
+              c:identifier="g_sequence_insert_sorted">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="cmp_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_insert_sorted_iter"
+              c:identifier="g_sequence_insert_sorted_iter">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="iter_cmp">
+          <type name="GSequenceIterCompareFunc"
+                c:type="GSequenceIterCompareFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_sort_changed"
+              c:identifier="g_sequence_sort_changed">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="cmp_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_sort_changed_iter"
+              c:identifier="g_sequence_sort_changed_iter">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="iter_cmp">
+          <type name="GSequenceIterCompareFunc"
+                c:type="GSequenceIterCompareFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_remove" c:identifier="g_sequence_remove">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_remove_range"
+              c:identifier="g_sequence_remove_range">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="end">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_move_range" c:identifier="g_sequence_move_range">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="begin">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="end">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_search" c:identifier="g_sequence_search">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="cmp_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_search_iter"
+              c:identifier="g_sequence_search_iter">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="seq">
+          <type name="GSequence" c:type="GSequence*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="iter_cmp">
+          <type name="GSequenceIterCompareFunc"
+                c:type="GSequenceIterCompareFunc"/>
+        </parameter>
+        <parameter name="cmp_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_get" c:identifier="g_sequence_get">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_set" c:identifier="g_sequence_set">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_is_begin"
+              c:identifier="g_sequence_iter_is_begin">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_is_end"
+              c:identifier="g_sequence_iter_is_end">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_next" c:identifier="g_sequence_iter_next">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_prev" c:identifier="g_sequence_iter_prev">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_get_position"
+              c:identifier="g_sequence_iter_get_position">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_move" c:identifier="g_sequence_iter_move">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="delta">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_get_sequence"
+              c:identifier="g_sequence_iter_get_sequence">
+      <return-value>
+        <type name="GSequence" c:type="GSequence*"/>
+      </return-value>
+      <parameters>
+        <parameter name="iter">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_iter_compare"
+              c:identifier="g_sequence_iter_compare">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="b">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sequence_range_get_midpoint"
+              c:identifier="g_sequence_range_get_midpoint">
+      <return-value>
+        <type name="GSequenceIter" c:type="GSequenceIter*"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+        <parameter name="end">
+          <type name="GSequenceIter" c:type="GSequenceIter*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shell_error_quark" c:identifier="g_shell_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="shell_quote" c:identifier="g_shell_quote">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="unquoted_string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shell_unquote" c:identifier="g_shell_unquote">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="quoted_string">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shell_parse_argv" c:identifier="g_shell_parse_argv">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="command_line">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="argcp">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="argvp">
+          <type name="gchar" c:type="gchar***"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <callback name="GSpawnChildSetupFunc">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="spawn_error_quark" c:identifier="g_spawn_error_quark">
+      <return-value>
+        <type name="GQuark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="spawn_async" c:identifier="g_spawn_async">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="working_directory">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="argv">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="envp">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GSpawnFlags" c:type="GSpawnFlags"/>
+        </parameter>
+        <parameter name="child_setup">
+          <type name="GSpawnChildSetupFunc" c:type="GSpawnChildSetupFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="child_pid">
+          <type name="GPid" c:type="GPid*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spawn_async_with_pipes"
+              c:identifier="g_spawn_async_with_pipes">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="working_directory">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="argv">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="envp">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GSpawnFlags" c:type="GSpawnFlags"/>
+        </parameter>
+        <parameter name="child_setup">
+          <type name="GSpawnChildSetupFunc" c:type="GSpawnChildSetupFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="child_pid">
+          <type name="GPid" c:type="GPid*"/>
+        </parameter>
+        <parameter name="standard_input">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="standard_output">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="standard_error">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spawn_sync" c:identifier="g_spawn_sync">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="working_directory">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="argv">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="envp">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="flags">
+          <type name="GSpawnFlags" c:type="GSpawnFlags"/>
+        </parameter>
+        <parameter name="child_setup">
+          <type name="GSpawnChildSetupFunc" c:type="GSpawnChildSetupFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="standard_output">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="standard_error">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="exit_status">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spawn_command_line_sync"
+              c:identifier="g_spawn_command_line_sync">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="command_line">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="standard_output">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="standard_error">
+          <type name="gchar" c:type="gchar**"/>
+        </parameter>
+        <parameter name="exit_status">
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spawn_command_line_async"
+              c:identifier="g_spawn_command_line_async">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="command_line">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="spawn_close_pid" c:identifier="g_spawn_close_pid">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pid">
+          <type name="GPid" c:type="GPid"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="access" c:identifier="g_access">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="mode">
+          <type name="int32" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="chdir" c:identifier="g_chdir">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="path">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="unlink" c:identifier="g_unlink">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rmdir" c:identifier="g_rmdir">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="ThreadPool" c:type="GThreadPool"/>
+    <record name="GThreadPool" c:type="_GThreadPool">
+      <field name="func">
+        <type name="GFunc" c:type="GFunc"/>
+      </field>
+      <field name="user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="exclusive">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+    </record>
+    <function name="thread_pool_new" c:identifier="g_thread_pool_new">
+      <return-value>
+        <type name="GThreadPool" c:type="GThreadPool*"/>
+      </return-value>
+      <parameters>
+        <parameter name="func">
+          <type name="GFunc" c:type="GFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="max_threads">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="exclusive">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_push" c:identifier="g_thread_pool_push">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_set_max_threads"
+              c:identifier="g_thread_pool_set_max_threads">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+        <parameter name="max_threads">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+        <parameter name="error">
+          <type name="GError" c:type="GError**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_get_max_threads"
+              c:identifier="g_thread_pool_get_max_threads">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_get_num_threads"
+              c:identifier="g_thread_pool_get_num_threads">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_unprocessed"
+              c:identifier="g_thread_pool_unprocessed">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_free" c:identifier="g_thread_pool_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+        <parameter name="immediate">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="wait_">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_set_max_unused_threads"
+              c:identifier="g_thread_pool_set_max_unused_threads">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="max_threads">
+          <type name="int32" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_get_max_unused_threads"
+              c:identifier="g_thread_pool_get_max_unused_threads">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="thread_pool_get_num_unused_threads"
+              c:identifier="g_thread_pool_get_num_unused_threads">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="thread_pool_stop_unused_threads"
+              c:identifier="g_thread_pool_stop_unused_threads">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="thread_pool_set_sort_function"
+              c:identifier="g_thread_pool_set_sort_function">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pool">
+          <type name="GThreadPool" c:type="GThreadPool*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_set_max_idle_time"
+              c:identifier="g_thread_pool_set_max_idle_time">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="thread_pool_get_max_idle_time"
+              c:identifier="g_thread_pool_get_max_idle_time">
+      <return-value>
+        <type name="uint32" c:type="guint"/>
+      </return-value>
+    </function>
+    <record name="Timer" c:type="GTimer"/>
+    <function name="timer_new" c:identifier="g_timer_new">
+      <return-value>
+        <type name="GTimer" c:type="GTimer*"/>
+      </return-value>
+    </function>
+    <function name="timer_destroy" c:identifier="g_timer_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timer_start" c:identifier="g_timer_start">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timer_stop" c:identifier="g_timer_stop">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timer_reset" c:identifier="g_timer_reset">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timer_continue" c:identifier="g_timer_continue">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="timer_elapsed" c:identifier="g_timer_elapsed">
+      <return-value>
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="timer">
+          <type name="GTimer" c:type="GTimer*"/>
+        </parameter>
+        <parameter name="microseconds">
+          <type name="gulong" c:type="gulong*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="usleep" c:identifier="g_usleep">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="microseconds">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="time_val_add" c:identifier="g_time_val_add">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="time_">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+        <parameter name="microseconds">
+          <type name="long" c:type="glong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="time_val_from_iso8601"
+              c:identifier="g_time_val_from_iso8601">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="iso_date">
+          <type name="string" c:type="gchar*"/>
+        </parameter>
+        <parameter name="time_">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="time_val_to_iso8601" c:identifier="g_time_val_to_iso8601">
+      <return-value>
+        <type name="string" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="time_">
+          <type name="GTimeVal" c:type="GTimeVal*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="Tree" c:type="GTree"/>
+    <callback name="GTraverseFunc">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="tree_new" c:identifier="g_tree_new">
+      <return-value>
+        <type name="GTree" c:type="GTree*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_compare_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_new_with_data" c:identifier="g_tree_new_with_data">
+      <return-value>
+        <type name="GTree" c:type="GTree*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="key_compare_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_new_full" c:identifier="g_tree_new_full">
+      <return-value>
+        <type name="GTree" c:type="GTree*"/>
+      </return-value>
+      <parameters>
+        <parameter name="key_compare_func">
+          <type name="GCompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="key_compare_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="key_destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+        <parameter name="value_destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_destroy" c:identifier="g_tree_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_insert" c:identifier="g_tree_insert">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_replace" c:identifier="g_tree_replace">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="value">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_remove" c:identifier="g_tree_remove">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_steal" c:identifier="g_tree_steal">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_lookup" c:identifier="g_tree_lookup">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_lookup_extended"
+              c:identifier="g_tree_lookup_extended">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="lookup_key">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="orig_key">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="value">
+          <type name="gpointer" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_foreach" c:identifier="g_tree_foreach">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="func">
+          <type name="GTraverseFunc" c:type="GTraverseFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_traverse" c:identifier="g_tree_traverse">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="traverse_func">
+          <type name="GTraverseFunc" c:type="GTraverseFunc"/>
+        </parameter>
+        <parameter name="traverse_type">
+          <type name="GTraverseType" c:type="GTraverseType"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_search" c:identifier="g_tree_search">
+      <return-value>
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+        <parameter name="search_func">
+          <type name="GCompareFunc" c:type="GCompareFunc"/>
+        </parameter>
+        <parameter name="user_data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_height" c:identifier="g_tree_height">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tree_nnodes" c:identifier="g_tree_nnodes">
+      <return-value>
+        <type name="int32" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="tree">
+          <type name="GTree" c:type="GTree*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_unescape_string" c:identifier="g_uri_unescape_string">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="escaped_string">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="illegal_characters">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_unescape_segment"
+              c:identifier="g_uri_unescape_segment">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="escaped_string">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="escaped_string_end">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="illegal_characters">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_parse_scheme" c:identifier="g_uri_parse_scheme">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_escape_string" c:identifier="g_uri_escape_string">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="unescaped">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="reserved_chars_allowed">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="allow_utf8">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="TestCase" c:type="GTestCase"/>
+    <record name="TestSuite" c:type="GTestSuite"/>
+    <function name="strcmp0" c:identifier="g_strcmp0">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="str1">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="str2">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_minimized_result"
+              c:identifier="g_test_minimized_result">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="minimized_quantity">
+          <type name="double" c:type="double"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_maximized_result"
+              c:identifier="g_test_maximized_result">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="maximized_quantity">
+          <type name="double" c:type="double"/>
+        </parameter>
+        <parameter name="format">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_init" c:identifier="g_test_init">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="argv">
+          <type name="char" c:type="char***"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_run" c:identifier="g_test_run">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="test_add_func" c:identifier="g_test_add_func">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="testpath">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="test_func">
+          <type name="???" c:type="???*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_add_data_func" c:identifier="g_test_add_data_func">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="testpath">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="test_data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="test_func">
+          <type name="???" c:type="???*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_message" c:identifier="g_test_message">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="format">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_bug_base" c:identifier="g_test_bug_base">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri_pattern">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_bug" c:identifier="g_test_bug">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="bug_uri_snippet">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_timer_start" c:identifier="g_test_timer_start">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="test_timer_elapsed" c:identifier="g_test_timer_elapsed">
+      <return-value>
+        <type name="double" c:type="double"/>
+      </return-value>
+    </function>
+    <function name="test_timer_last" c:identifier="g_test_timer_last">
+      <return-value>
+        <type name="double" c:type="double"/>
+      </return-value>
+    </function>
+    <function name="test_queue_free" c:identifier="g_test_queue_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="gfree_pointer">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_queue_destroy" c:identifier="g_test_queue_destroy">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="destroy_func">
+          <type name="GDestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+        <parameter name="destroy_data">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_trap_fork" c:identifier="g_test_trap_fork">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="usec_timeout">
+          <type name="guint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="test_trap_flags">
+          <type name="GTestTrapFlags" c:type="GTestTrapFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_trap_has_passed"
+              c:identifier="g_test_trap_has_passed">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="test_trap_reached_timeout"
+              c:identifier="g_test_trap_reached_timeout">
+      <return-value>
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="test_rand_int" c:identifier="g_test_rand_int">
+      <return-value>
+        <type name="int32" c:type="gint32"/>
+      </return-value>
+    </function>
+    <function name="test_rand_int_range" c:identifier="g_test_rand_int_range">
+      <return-value>
+        <type name="int32" c:type="gint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="begin">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+        <parameter name="end">
+          <type name="int32" c:type="gint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_rand_double" c:identifier="g_test_rand_double">
+      <return-value>
+        <type name="double" c:type="double"/>
+      </return-value>
+    </function>
+    <function name="test_rand_double_range"
+              c:identifier="g_test_rand_double_range">
+      <return-value>
+        <type name="double" c:type="double"/>
+      </return-value>
+      <parameters>
+        <parameter name="range_start">
+          <type name="double" c:type="double"/>
+        </parameter>
+        <parameter name="range_end">
+          <type name="double" c:type="double"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_create_case" c:identifier="g_test_create_case">
+      <return-value>
+        <type name="GTestCase" c:type="GTestCase*"/>
+      </return-value>
+      <parameters>
+        <parameter name="test_name">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="data_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="test_data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="data_setup">
+          <type name="???" c:type="???*"/>
+        </parameter>
+        <parameter name="data_test">
+          <type name="???" c:type="???*"/>
+        </parameter>
+        <parameter name="data_teardown">
+          <type name="???" c:type="???*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_create_suite" c:identifier="g_test_create_suite">
+      <return-value>
+        <type name="GTestSuite" c:type="GTestSuite*"/>
+      </return-value>
+      <parameters>
+        <parameter name="suite_name">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_get_root" c:identifier="g_test_get_root">
+      <return-value>
+        <type name="GTestSuite" c:type="GTestSuite*"/>
+      </return-value>
+    </function>
+    <function name="test_suite_add" c:identifier="g_test_suite_add">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="suite">
+          <type name="GTestSuite" c:type="GTestSuite*"/>
+        </parameter>
+        <parameter name="test_case">
+          <type name="GTestCase" c:type="GTestCase*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_suite_add_suite"
+              c:identifier="g_test_suite_add_suite">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="suite">
+          <type name="GTestSuite" c:type="GTestSuite*"/>
+        </parameter>
+        <parameter name="nestedsuite">
+          <type name="GTestSuite" c:type="GTestSuite*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_run_suite" c:identifier="g_test_run_suite">
+      <return-value>
+        <type name="int32" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="suite">
+          <type name="GTestSuite" c:type="GTestSuite*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_trap_assertions"
+              c:identifier="g_test_trap_assertions">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="assertion_flags">
+          <type name="guint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="pattern">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="assertion_message" c:identifier="g_assertion_message">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="message">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="assertion_message_expr"
+              c:identifier="g_assertion_message_expr">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="expr">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="assertion_message_cmpstr"
+              c:identifier="g_assertion_message_cmpstr">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="expr">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="arg1">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="cmp">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="arg2">
+          <type name="string" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="assertion_message_cmpnum"
+              c:identifier="g_assertion_message_cmpnum">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="file">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="line">
+          <type name="int32" c:type="int"/>
+        </parameter>
+        <parameter name="func">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="expr">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="arg1">
+          <type name="long" c:type="long"/>
+        </parameter>
+        <parameter name="cmp">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="arg2">
+          <type name="long" c:type="long"/>
+        </parameter>
+        <parameter name="numtype">
+          <type name="char" c:type="char"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_add_vtable" c:identifier="g_test_add_vtable">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="testpath">
+          <type name="string" c:type="char*"/>
+        </parameter>
+        <parameter name="data_size">
+          <type name="size" c:type="gsize"/>
+        </parameter>
+        <parameter name="test_data">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="data_setup">
+          <type name="???" c:type="???*"/>
+        </parameter>
+        <parameter name="data_test">
+          <type name="???" c:type="???*"/>
+        </parameter>
+        <parameter name="data_teardown">
+          <type name="???" c:type="???*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="TestConfig" c:type="GTestConfig"/>
+    <record name="TestLogMsg" c:type="GTestLogMsg"/>
+    <record name="TestLogBuffer" c:type="GTestLogBuffer"/>
+    <function name="test_log_type_name" c:identifier="g_test_log_type_name">
+      <return-value>
+        <type name="string" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="log_type">
+          <type name="GTestLogType" c:type="GTestLogType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_log_buffer_new" c:identifier="g_test_log_buffer_new">
+      <return-value>
+        <type name="GTestLogBuffer" c:type="GTestLogBuffer*"/>
+      </return-value>
+    </function>
+    <function name="test_log_buffer_free"
+              c:identifier="g_test_log_buffer_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tbuffer">
+          <type name="GTestLogBuffer" c:type="GTestLogBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_log_buffer_push"
+              c:identifier="g_test_log_buffer_push">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tbuffer">
+          <type name="GTestLogBuffer" c:type="GTestLogBuffer*"/>
+        </parameter>
+        <parameter name="n_bytes">
+          <type name="uint32" c:type="guint"/>
+        </parameter>
+        <parameter name="bytes">
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_log_buffer_pop" c:identifier="g_test_log_buffer_pop">
+      <return-value>
+        <type name="GTestLogMsg" c:type="GTestLogMsg*"/>
+      </return-value>
+      <parameters>
+        <parameter name="tbuffer">
+          <type name="GTestLogBuffer" c:type="GTestLogBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_log_msg_free" c:identifier="g_test_log_msg_free">
+      <return-value>
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="tmsg">
+          <type name="GTestLogMsg" c:type="GTestLogMsg*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>

Modified: trunk/giscanner/glibast.py
==============================================================================
--- trunk/giscanner/glibast.py	(original)
+++ trunk/giscanner/glibast.py	Thu Aug 14 16:30:01 2008
@@ -42,6 +42,7 @@
 type_names['gchar*'] = TYPE_STRING
 type_names['gboolean'] = TYPE_BOOLEAN
 type_names['gpointer'] = TYPE_ANY
+type_names['gconstpointer'] = TYPE_ANY
 type_names['gsize'] = TYPE_SIZE
 type_names['gssize'] = TYPE_SSIZE
 

Modified: trunk/giscanner/transformer.py
==============================================================================
--- trunk/giscanner/transformer.py	(original)
+++ trunk/giscanner/transformer.py	Thu Aug 14 16:30:01 2008
@@ -33,6 +33,10 @@
 from .utils import strip_common_prefix
 
 
+class SkipError(Exception):
+    pass
+
+
 class Transformer(object):
 
     def __init__(self, generator, namespace_name):
@@ -125,7 +129,10 @@
         if stype is None:
             stype = symbol.type
         if stype == CSYMBOL_TYPE_FUNCTION:
-            return self._create_function(symbol)
+            try:
+                return self._create_function(symbol)
+            except SkipError:
+                return
         elif stype == CSYMBOL_TYPE_TYPEDEF:
             return self._create_typedef(symbol)
         elif stype == CSYMBOL_TYPE_STRUCT:
@@ -152,6 +159,7 @@
                                   child.ident))
 
         enum_name = self.strip_namespace_object(symbol.ident)
+        enum_name = symbol.ident[-len(enum_name):]
         return Enum(enum_name, symbol.ident, members)
 
     def _create_object(self, symbol):
@@ -228,6 +236,8 @@
 
     def _create_type(self, source_type):
         ctype = self._create_source_type(source_type)
+        if ctype == 'va_list':
+            raise SkipError
         type_name = type_name_from_ctype(ctype)
         resolved_type_name = self.resolve_type_name(type_name)
         return Type(resolved_type_name, ctype)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]