/* wix.c generated by valac 0.34.8, the Vala compiler
 * generated from wix.vala, do not modify */


#include <glib.h>
#include <glib-object.h>
#include "wixl.h"
#include <stdlib.h>
#include <string.h>
#include <libcommon.h>
#include <libxml/tree.h>

#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
#define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL)))

#define WIXL_TYPE_WIX_ROOT (wixl_wix_root_get_type ())
#define WIXL_WIX_ROOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WIXL_TYPE_WIX_ROOT, WixlWixRoot))
#define WIXL_WIX_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WIXL_TYPE_WIX_ROOT, WixlWixRootClass))
#define WIXL_IS_WIX_ROOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WIXL_TYPE_WIX_ROOT))
#define WIXL_IS_WIX_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WIXL_TYPE_WIX_ROOT))
#define WIXL_WIX_ROOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WIXL_TYPE_WIX_ROOT, WixlWixRootClass))

typedef struct _WixlWixRoot WixlWixRoot;
typedef struct _WixlWixRootClass WixlWixRootClass;
typedef struct _WixlWixRootPrivate WixlWixRootPrivate;

struct _WixlWixElementPrivate {
	gchar* _Id;
};

struct _WixlWixComponentGroupPrivate {
	gchar* _Directory;
};

struct _WixlWixRegistrySearchPrivate {
	gchar* _Root;
	gchar* _Key;
	gchar* _Type;
	gchar* _Name;
	gchar* _Win64;
};

struct _WixlWixPropertyPrivate {
	gchar* _Value;
};

struct _WixlWixPackagePrivate {
	gchar* _Keywords;
	gchar* _InstallerDescription;
	gchar* _InstallerComments;
	gchar* _Manufacturer;
	gchar* _InstallerVersion;
	gchar* _Languages;
	gchar* _Compressed;
	gchar* _SummaryCodepage;
	gchar* _Comments;
	gchar* _Description;
	gchar* _InstallScope;
};

struct _WixlWixCreateFolderPrivate {
	gchar* _Directory;
};

struct _WixlWixIconPrivate {
	gchar* _SourceFile;
};

struct _WixlWixShortcutPrivate {
	gchar* _Directory;
	gchar* _Name;
	gchar* _IconIndex;
	gchar* _WorkingDirectory;
	gchar* _Icon;
	gchar* _Advertise;
	gchar* _Description;
	gchar* _Target;
};

struct _WixlWixKeyElementPrivate {
	gchar* _KeyPath;
};

struct _WixlWixFilePrivate {
	gchar* _DiskId;
	gchar* _Source;
	gchar* _Name;
};

struct _WixlWixRegistryValuePrivate {
	gchar* _Root;
	gchar* _Key;
	gchar* _Type;
	gchar* _Value;
	gchar* _Name;
};

struct _WixlWixRemoveFolderPrivate {
	gchar* _On;
};

struct _WixlWixFeaturePrivate {
	gchar* _Level;
	gchar* _Title;
	gchar* _Description;
	gchar* _Display;
	gchar* _ConfigurableDirectory;
	gchar* _AllowAdvertise;
	gchar* _Absent;
};

struct _WixlWixConditionPrivate {
	gchar* _Message;
};

struct _WixlWixMIMEPrivate {
	gchar* _Advertise;
	gchar* _ContentType;
	gchar* _Default;
};

struct _WixlWixServiceControlPrivate {
	gchar* _Name;
	gchar* _Start;
	gchar* _Stop;
	gchar* _Remove;
	gchar* _Wait;
};

struct _WixlWixServiceDependencyPrivate {
	gchar* _Group;
};

struct _WixlWixServiceInstallPrivate {
	gchar* _Name;
	gchar* _DisplayName;
	gchar* _Type;
	gchar* _Interactive;
	gchar* _Start;
	gchar* _ErrorControl;
	gchar* _Vital;
	gchar* _LoadOrderGroup;
	gchar* _Account;
	gchar* _Password;
	gchar* _Arguments;
	gchar* _Description;
	gchar* _EraseDescription;
};

struct _WixlWixVerbPrivate {
	gchar* _Command;
	gchar* _TargetFile;
	gchar* _Argument;
};

struct _WixlWixExtensionPrivate {
	gchar* _ContentType;
	gchar* _Advertise;
};

struct _WixlWixProgIdPrivate {
	gchar* _Description;
	gchar* _Advertise;
};

struct _WixlWixActionPrivate {
	gchar* _After;
	gchar* _Before;
	gchar* _Overridable;
	gchar* _Sequence;
	gchar* _Suppress;
	gchar* _Action;
};

struct _WixlWixUpgradeVersionPrivate {
	gchar* _Minimum;
	gchar* _Maximum;
	gchar* _IncludeMinimum;
	gchar* _IncludeMaximum;
	gchar* _OnlyDetect;
	gchar* _Property;
};

struct _WixlWixCustomActionPrivate {
	gchar* _Property;
	gchar* _Execute;
	gchar* _ExeCommand;
	gchar* _Impersonate;
	gchar* _Return;
	gchar* _BinaryKey;
	gchar* _DllEntry;
	gchar* _HideTarget;
	gchar* _JScriptCall;
};

struct _WixlWixBinaryPrivate {
	gchar* _SourceFile;
};

struct _WixlWixMajorUpgradePrivate {
	gchar* _DowngradeErrorMessage;
};

struct _WixlWixMediaTemplatePrivate {
	gchar* _EmbedCab;
};

struct _WixlWixProductPrivate {
	gchar* _Name;
	gchar* _UpgradeCode;
	gchar* _Language;
	gchar* _Codepage;
	gchar* _Version;
	gchar* _Manufacturer;
};

struct _WixlWixMediaPrivate {
	gchar* _Cabinet;
	gchar* _EmbedCab;
	gchar* _DiskPrompt;
};

struct _WixlWixRegistryKeyPrivate {
	gchar* _Key;
	gchar* _Root;
};

struct _WixlWixComponentPrivate {
	gchar* _Guid;
	gchar* _Win64;
};

struct _WixlWixDirectoryPrivate {
	gchar* _Name;
};

struct _WixlWixElementRefPrivate {
	GType g_type;
	GBoxedCopyFunc g_dup_func;
	GDestroyNotify g_destroy_func;
};

struct _WixlWixRoot {
	WixlWixElement parent_instance;
	WixlWixRootPrivate * priv;
};

struct _WixlWixRootClass {
	WixlWixElementClass parent_class;
};


static gpointer wixl_wix_node_visitor_parent_class = NULL;
static gpointer wixl_wix_node_parent_class = NULL;
static gpointer wixl_wix_text_parent_class = NULL;
static gpointer wixl_wix_element_parent_class = NULL;
static gpointer wixl_wix_component_group_parent_class = NULL;
static gpointer wixl_wix_fragment_parent_class = NULL;
static gpointer wixl_wix_registry_search_parent_class = NULL;
static gpointer wixl_wix_property_parent_class = NULL;
static gpointer wixl_wix_package_parent_class = NULL;
static gpointer wixl_wix_create_folder_parent_class = NULL;
static gpointer wixl_wix_icon_parent_class = NULL;
static gpointer wixl_wix_shortcut_parent_class = NULL;
static gpointer wixl_wix_key_element_parent_class = NULL;
static gpointer wixl_wix_file_parent_class = NULL;
static gpointer wixl_wix_registry_value_parent_class = NULL;
static gpointer wixl_wix_remove_folder_parent_class = NULL;
static gpointer wixl_wix_feature_parent_class = NULL;
static gpointer wixl_wix_component_ref_parent_class = NULL;
static gpointer wixl_wix_component_group_ref_parent_class = NULL;
static gpointer wixl_wix_condition_parent_class = NULL;
static gpointer wixl_wix_mime_parent_class = NULL;
static gpointer wixl_wix_service_argument_parent_class = NULL;
static gpointer wixl_wix_service_control_parent_class = NULL;
static gpointer wixl_wix_service_dependency_parent_class = NULL;
static gpointer wixl_wix_service_install_parent_class = NULL;
static gpointer wixl_wix_verb_parent_class = NULL;
static gpointer wixl_wix_extension_parent_class = NULL;
static gpointer wixl_wix_prog_id_parent_class = NULL;
static gpointer wixl_wix_action_parent_class = NULL;
static gpointer wixl_wix_sequence_parent_class = NULL;
static gpointer wixl_wix_install_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_install_ui_sequence_parent_class = NULL;
static gpointer wixl_wix_admin_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_admin_ui_sequence_parent_class = NULL;
static gpointer wixl_wix_advertise_execute_sequence_parent_class = NULL;
static gpointer wixl_wix_upgrade_parent_class = NULL;
static gpointer wixl_wix_upgrade_version_parent_class = NULL;
static gpointer wixl_wix_custom_action_parent_class = NULL;
static gpointer wixl_wix_binary_parent_class = NULL;
static gpointer wixl_wix_major_upgrade_parent_class = NULL;
static gpointer wixl_wix_media_template_parent_class = NULL;
static gpointer wixl_wix_product_parent_class = NULL;
static gpointer wixl_wix_media_parent_class = NULL;
static gpointer wixl_wix_registry_key_parent_class = NULL;
static gpointer wixl_wix_component_parent_class = NULL;
static gpointer wixl_wix_directory_parent_class = NULL;
static gpointer wixl_wix_element_ref_parent_class = NULL;
static gpointer wixl_wix_directory_ref_parent_class = NULL;
static gpointer wixl_wix_root_parent_class = NULL;

enum  {
	WIXL_WIX_NODE_VISITOR_DUMMY_PROPERTY
};
static void wixl_wix_node_visitor_real_visit_product (WixlWixNodeVisitor* self, WixlWixProduct* product, GError** error);
static void wixl_wix_node_visitor_real_visit_icon (WixlWixNodeVisitor* self, WixlWixIcon* icon, GError** error);
static void wixl_wix_node_visitor_real_visit_package (WixlWixNodeVisitor* self, WixlWixPackage* package, GError** error);
static void wixl_wix_node_visitor_real_visit_property (WixlWixNodeVisitor* self, WixlWixProperty* prop, GError** error);
static void wixl_wix_node_visitor_real_visit_media (WixlWixNodeVisitor* self, WixlWixMedia* media, GError** error);
static void wixl_wix_node_visitor_real_visit_directory (WixlWixNodeVisitor* self, WixlWixDirectory* dir, GError** error);
static void wixl_wix_node_visitor_real_visit_component (WixlWixNodeVisitor* self, WixlWixComponent* comp, WixlVisitState state, GError** error);
static void wixl_wix_node_visitor_real_visit_feature (WixlWixNodeVisitor* self, WixlWixFeature* feature, WixlVisitState state, GError** error);
static void wixl_wix_node_visitor_real_visit_component_ref (WixlWixNodeVisitor* self, WixlWixComponentRef* ref, GError** error);
static void wixl_wix_node_visitor_real_visit_remove_folder (WixlWixNodeVisitor* self, WixlWixRemoveFolder* rm, GError** error);
static void wixl_wix_node_visitor_real_visit_registry_value (WixlWixNodeVisitor* self, WixlWixRegistryValue* reg, GError** error);
static void wixl_wix_node_visitor_real_visit_file (WixlWixNodeVisitor* self, WixlWixFile* reg, GError** error);
static void wixl_wix_node_visitor_real_visit_shortcut (WixlWixNodeVisitor* self, WixlWixShortcut* shortcut, GError** error);
static void wixl_wix_node_visitor_real_visit_create_folder (WixlWixNodeVisitor* self, WixlWixCreateFolder* folder, GError** error);
static void wixl_wix_node_visitor_real_visit_fragment (WixlWixNodeVisitor* self, WixlWixFragment* fragment, GError** error);
static void wixl_wix_node_visitor_real_visit_sequence (WixlWixNodeVisitor* self, WixlWixSequence* sequence, GError** error);
static void wixl_wix_node_visitor_real_visit_condition (WixlWixNodeVisitor* self, WixlWixCondition* condition, GError** error);
static void wixl_wix_node_visitor_real_visit_upgrade (WixlWixNodeVisitor* self, WixlWixUpgrade* upgrade, GError** error);
static void wixl_wix_node_visitor_real_visit_upgrade_version (WixlWixNodeVisitor* self, WixlWixUpgradeVersion* version, GError** error);
static void wixl_wix_node_visitor_real_visit_action (WixlWixNodeVisitor* self, WixlWixAction* action, GError** error);
static void wixl_wix_node_visitor_real_visit_text (WixlWixNodeVisitor* self, WixlWixText* text, GError** error);
static void wixl_wix_node_visitor_real_visit_component_group_ref (WixlWixNodeVisitor* self, WixlWixComponentGroupRef* ref, GError** error);
static void wixl_wix_node_visitor_real_visit_progid (WixlWixNodeVisitor* self, WixlWixProgId* progid, GError** error);
static void wixl_wix_node_visitor_real_visit_extension (WixlWixNodeVisitor* self, WixlWixExtension* extension, GError** error);
static void wixl_wix_node_visitor_real_visit_verb (WixlWixNodeVisitor* self, WixlWixVerb* verb, GError** error);
static void wixl_wix_node_visitor_real_visit_mime (WixlWixNodeVisitor* self, WixlWixMIME* mime, GError** error);
static void wixl_wix_node_visitor_real_visit_service_argument (WixlWixNodeVisitor* self, WixlWixServiceArgument* service_argument, GError** error);
static void wixl_wix_node_visitor_real_visit_service_control (WixlWixNodeVisitor* self, WixlWixServiceControl* service_control, WixlVisitState state, GError** error);
static void wixl_wix_node_visitor_real_visit_service_dependency (WixlWixNodeVisitor* self, WixlWixServiceDependency* service_dependency, GError** error);
static void wixl_wix_node_visitor_real_visit_service_install (WixlWixNodeVisitor* self, WixlWixServiceInstall* service_install, WixlVisitState state, GError** error);
static void wixl_wix_node_visitor_real_visit_registry_search (WixlWixNodeVisitor* self, WixlWixRegistrySearch* search, GError** error);
static void wixl_wix_node_visitor_real_visit_custom_action (WixlWixNodeVisitor* self, WixlWixCustomAction* action, GError** error);
static void wixl_wix_node_visitor_real_visit_binary (WixlWixNodeVisitor* self, WixlWixBinary* binary, GError** error);
static void wixl_wix_node_visitor_real_visit_major_upgrade (WixlWixNodeVisitor* self, WixlWixMajorUpgrade* major, GError** error);
static void wixl_wix_node_visitor_real_visit_media_template (WixlWixNodeVisitor* self, WixlWixMediaTemplate* media, GError** error);
enum  {
	WIXL_WIX_NODE_DUMMY_PROPERTY
};
static gchar* wixl_wix_node_real_to_string (WixlWixNode* self);
static void wixl_wix_node_real_accept (WixlWixNode* self, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_node_finalize (GObject* obj);
enum  {
	WIXL_WIX_TEXT_DUMMY_PROPERTY
};
static gchar* wixl_wix_text_real_to_string (WixlWixNode* base);
static void wixl_wix_text_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_text_finalize (GObject* obj);
#define WIXL_WIX_ELEMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_ELEMENT, WixlWixElementPrivate))
enum  {
	WIXL_WIX_ELEMENT_DUMMY_PROPERTY,
	WIXL_WIX_ELEMENT_ID
};
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
static gpointer* _vala_array_dup3 (gpointer* self, int length, GBoxedCopyFunc g_dup_func);
static void _vala_array_add7 (gpointer** array, int* length, int* size, gpointer value);
static gpointer* _vala_array_dup4 (gpointer* self, int length, GBoxedCopyFunc g_dup_func);
static void _vala_array_add8 (gpointer** array, int* length, int* size, gpointer value);
static gchar* wixl_wix_element_real_full_path (WixlWixElement* self, WixlWixResolver* r, GError** error);
static gchar* wixl_wix_element_get_attribute_content (WixlWixElement* self, xmlAttr* attr);
static void wixl_wix_element_real_load (WixlWixElement* self, xmlNode* node, GError** error);
static gchar* wixl_wix_element_real_to_string (WixlWixNode* base);
static void wixl_wix_element_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void _g_free0_ (gpointer var);
static void wixl_wix_element_finalize (GObject* obj);
static void _vala_wixl_wix_element_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_element_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_COMPONENT_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroupPrivate))
enum  {
	WIXL_WIX_COMPONENT_GROUP_DUMMY_PROPERTY,
	WIXL_WIX_COMPONENT_GROUP_DIRECTORY
};
static void wixl_wix_component_group_finalize (GObject* obj);
static void _vala_wixl_wix_component_group_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_component_group_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
enum  {
	WIXL_WIX_FRAGMENT_DUMMY_PROPERTY
};
static void wixl_wix_fragment_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
#define WIXL_WIX_REGISTRY_SEARCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearchPrivate))
enum  {
	WIXL_WIX_REGISTRY_SEARCH_DUMMY_PROPERTY,
	WIXL_WIX_REGISTRY_SEARCH_ROOT,
	WIXL_WIX_REGISTRY_SEARCH_KEY,
	WIXL_WIX_REGISTRY_SEARCH_TYPE,
	WIXL_WIX_REGISTRY_SEARCH_NAME,
	WIXL_WIX_REGISTRY_SEARCH_WIN64
};
static void wixl_wix_registry_search_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_registry_search_finalize (GObject* obj);
static void _vala_wixl_wix_registry_search_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_registry_search_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_PROPERTY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_PROPERTY, WixlWixPropertyPrivate))
enum  {
	WIXL_WIX_PROPERTY_DUMMY_PROPERTY,
	WIXL_WIX_PROPERTY_VALUE
};
static void wixl_wix_property_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_property_finalize (GObject* obj);
static void _vala_wixl_wix_property_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_property_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_PACKAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_PACKAGE, WixlWixPackagePrivate))
enum  {
	WIXL_WIX_PACKAGE_DUMMY_PROPERTY,
	WIXL_WIX_PACKAGE_KEYWORDS,
	WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION,
	WIXL_WIX_PACKAGE_INSTALLER_COMMENTS,
	WIXL_WIX_PACKAGE_MANUFACTURER,
	WIXL_WIX_PACKAGE_INSTALLER_VERSION,
	WIXL_WIX_PACKAGE_LANGUAGES,
	WIXL_WIX_PACKAGE_COMPRESSED,
	WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE,
	WIXL_WIX_PACKAGE_COMMENTS,
	WIXL_WIX_PACKAGE_DESCRIPTION,
	WIXL_WIX_PACKAGE_INSTALL_SCOPE
};
static void wixl_wix_package_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_package_finalize (GObject* obj);
static void _vala_wixl_wix_package_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_package_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_CREATE_FOLDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolderPrivate))
enum  {
	WIXL_WIX_CREATE_FOLDER_DUMMY_PROPERTY,
	WIXL_WIX_CREATE_FOLDER_DIRECTORY
};
static void wixl_wix_create_folder_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_create_folder_finalize (GObject* obj);
static void _vala_wixl_wix_create_folder_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_create_folder_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_ICON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_ICON, WixlWixIconPrivate))
enum  {
	WIXL_WIX_ICON_DUMMY_PROPERTY,
	WIXL_WIX_ICON_SOURCE_FILE
};
static void wixl_wix_icon_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_icon_finalize (GObject* obj);
static void _vala_wixl_wix_icon_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_icon_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_SHORTCUT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcutPrivate))
enum  {
	WIXL_WIX_SHORTCUT_DUMMY_PROPERTY,
	WIXL_WIX_SHORTCUT_DIRECTORY,
	WIXL_WIX_SHORTCUT_NAME,
	WIXL_WIX_SHORTCUT_ICON_INDEX,
	WIXL_WIX_SHORTCUT_WORKING_DIRECTORY,
	WIXL_WIX_SHORTCUT_ICON,
	WIXL_WIX_SHORTCUT_ADVERTISE,
	WIXL_WIX_SHORTCUT_DESCRIPTION,
	WIXL_WIX_SHORTCUT_TARGET
};
static void wixl_wix_shortcut_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_shortcut_finalize (GObject* obj);
static void _vala_wixl_wix_shortcut_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_shortcut_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_KEY_ELEMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElementPrivate))
enum  {
	WIXL_WIX_KEY_ELEMENT_DUMMY_PROPERTY,
	WIXL_WIX_KEY_ELEMENT_KEY_PATH
};
static gchar* wixl_wix_key_element_real_path_name (WixlWixKeyElement* self, GError** error);
static void wixl_wix_key_element_finalize (GObject* obj);
static void _vala_wixl_wix_key_element_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_key_element_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_FILE, WixlWixFilePrivate))
enum  {
	WIXL_WIX_FILE_DUMMY_PROPERTY,
	WIXL_WIX_FILE_DISK_ID,
	WIXL_WIX_FILE_SOURCE,
	WIXL_WIX_FILE_NAME
};
static gchar* wixl_wix_file_real_path_name (WixlWixKeyElement* base, GError** error);
static void wixl_wix_file_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_file_finalize (GObject* obj);
static void _vala_wixl_wix_file_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_file_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_REGISTRY_VALUE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValuePrivate))
enum  {
	WIXL_WIX_REGISTRY_VALUE_DUMMY_PROPERTY,
	WIXL_WIX_REGISTRY_VALUE_ROOT,
	WIXL_WIX_REGISTRY_VALUE_KEY,
	WIXL_WIX_REGISTRY_VALUE_TYPE,
	WIXL_WIX_REGISTRY_VALUE_VALUE,
	WIXL_WIX_REGISTRY_VALUE_NAME
};
static gchar* wixl_wix_registry_value_real_path_name (WixlWixKeyElement* base, GError** error);
static void wixl_wix_registry_value_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_registry_value_finalize (GObject* obj);
static void _vala_wixl_wix_registry_value_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_registry_value_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_REMOVE_FOLDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolderPrivate))
enum  {
	WIXL_WIX_REMOVE_FOLDER_DUMMY_PROPERTY,
	WIXL_WIX_REMOVE_FOLDER_ON
};
static void wixl_wix_remove_folder_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_remove_folder_finalize (GObject* obj);
static void _vala_wixl_wix_remove_folder_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_remove_folder_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_FEATURE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_FEATURE, WixlWixFeaturePrivate))
enum  {
	WIXL_WIX_FEATURE_DUMMY_PROPERTY,
	WIXL_WIX_FEATURE_LEVEL,
	WIXL_WIX_FEATURE_TITLE,
	WIXL_WIX_FEATURE_DESCRIPTION,
	WIXL_WIX_FEATURE_DISPLAY,
	WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY,
	WIXL_WIX_FEATURE_ALLOW_ADVERTISE,
	WIXL_WIX_FEATURE_ABSENT
};
static void wixl_wix_feature_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_feature_finalize (GObject* obj);
static void _vala_wixl_wix_feature_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_feature_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
enum  {
	WIXL_WIX_COMPONENT_REF_DUMMY_PROPERTY
};
static gchar* wixl_wix_component_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
static void wixl_wix_component_ref_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
enum  {
	WIXL_WIX_COMPONENT_GROUP_REF_DUMMY_PROPERTY
};
static gchar* wixl_wix_component_group_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
static void wixl_wix_component_group_ref_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
#define WIXL_WIX_CONDITION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_CONDITION, WixlWixConditionPrivate))
enum  {
	WIXL_WIX_CONDITION_DUMMY_PROPERTY,
	WIXL_WIX_CONDITION_MESSAGE
};
static void wixl_wix_condition_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_condition_finalize (GObject* obj);
static void _vala_wixl_wix_condition_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_condition_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_MIME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_MIME, WixlWixMIMEPrivate))
enum  {
	WIXL_WIX_MIME_DUMMY_PROPERTY,
	WIXL_WIX_MIME_ADVERTISE,
	WIXL_WIX_MIME_CONTENT_TYPE,
	WIXL_WIX_MIME_DEFAULT
};
static void wixl_wix_mime_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_mime_finalize (GObject* obj);
static void _vala_wixl_wix_mime_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_mime_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
enum  {
	WIXL_WIX_SERVICE_ARGUMENT_DUMMY_PROPERTY
};
static void wixl_wix_service_argument_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
#define WIXL_WIX_SERVICE_CONTROL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControlPrivate))
enum  {
	WIXL_WIX_SERVICE_CONTROL_DUMMY_PROPERTY,
	WIXL_WIX_SERVICE_CONTROL_NAME,
	WIXL_WIX_SERVICE_CONTROL_START,
	WIXL_WIX_SERVICE_CONTROL_STOP,
	WIXL_WIX_SERVICE_CONTROL_REMOVE,
	WIXL_WIX_SERVICE_CONTROL_WAIT
};
static void wixl_wix_service_control_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_service_control_finalize (GObject* obj);
static void _vala_wixl_wix_service_control_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_service_control_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_SERVICE_DEPENDENCY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependencyPrivate))
enum  {
	WIXL_WIX_SERVICE_DEPENDENCY_DUMMY_PROPERTY,
	WIXL_WIX_SERVICE_DEPENDENCY_GROUP
};
static void wixl_wix_service_dependency_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_service_dependency_finalize (GObject* obj);
static void _vala_wixl_wix_service_dependency_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_service_dependency_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_SERVICE_INSTALL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstallPrivate))
enum  {
	WIXL_WIX_SERVICE_INSTALL_DUMMY_PROPERTY,
	WIXL_WIX_SERVICE_INSTALL_NAME,
	WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME,
	WIXL_WIX_SERVICE_INSTALL_TYPE,
	WIXL_WIX_SERVICE_INSTALL_INTERACTIVE,
	WIXL_WIX_SERVICE_INSTALL_START,
	WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL,
	WIXL_WIX_SERVICE_INSTALL_VITAL,
	WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP,
	WIXL_WIX_SERVICE_INSTALL_ACCOUNT,
	WIXL_WIX_SERVICE_INSTALL_PASSWORD,
	WIXL_WIX_SERVICE_INSTALL_ARGUMENTS,
	WIXL_WIX_SERVICE_INSTALL_DESCRIPTION,
	WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION
};
static void wixl_wix_service_install_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_service_install_finalize (GObject* obj);
static void _vala_wixl_wix_service_install_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_service_install_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_VERB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_VERB, WixlWixVerbPrivate))
enum  {
	WIXL_WIX_VERB_DUMMY_PROPERTY,
	WIXL_WIX_VERB_COMMAND,
	WIXL_WIX_VERB_TARGET_FILE,
	WIXL_WIX_VERB_ARGUMENT
};
static void wixl_wix_verb_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_verb_finalize (GObject* obj);
static void _vala_wixl_wix_verb_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_verb_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_EXTENSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_EXTENSION, WixlWixExtensionPrivate))
enum  {
	WIXL_WIX_EXTENSION_DUMMY_PROPERTY,
	WIXL_WIX_EXTENSION_CONTENT_TYPE,
	WIXL_WIX_EXTENSION_ADVERTISE
};
static void wixl_wix_extension_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_extension_finalize (GObject* obj);
static void _vala_wixl_wix_extension_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_extension_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_PROG_ID_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_PROG_ID, WixlWixProgIdPrivate))
enum  {
	WIXL_WIX_PROG_ID_DUMMY_PROPERTY,
	WIXL_WIX_PROG_ID_DESCRIPTION,
	WIXL_WIX_PROG_ID_ADVERTISE
};
static void wixl_wix_prog_id_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_prog_id_finalize (GObject* obj);
static void _vala_wixl_wix_prog_id_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_prog_id_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_ACTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_ACTION, WixlWixActionPrivate))
enum  {
	WIXL_WIX_ACTION_DUMMY_PROPERTY,
	WIXL_WIX_ACTION_AFTER,
	WIXL_WIX_ACTION_BEFORE,
	WIXL_WIX_ACTION_OVERRIDABLE,
	WIXL_WIX_ACTION_SEQUENCE,
	WIXL_WIX_ACTION_SUPPRESS,
	WIXL_WIX_ACTION_ACTION
};
static void wixl_wix_action_real_load (WixlWixElement* base, xmlNode* node, GError** error);
static void wixl_wix_action_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_action_finalize (GObject* obj);
static void _vala_wixl_wix_action_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_action_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
enum  {
	WIXL_WIX_SEQUENCE_DUMMY_PROPERTY
};
static void wixl_wix_sequence_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
enum  {
	WIXL_WIX_INSTALL_EXECUTE_SEQUENCE_DUMMY_PROPERTY
};
enum  {
	WIXL_WIX_INSTALL_UI_SEQUENCE_DUMMY_PROPERTY
};
enum  {
	WIXL_WIX_ADMIN_EXECUTE_SEQUENCE_DUMMY_PROPERTY
};
enum  {
	WIXL_WIX_ADMIN_UI_SEQUENCE_DUMMY_PROPERTY
};
enum  {
	WIXL_WIX_ADVERTISE_EXECUTE_SEQUENCE_DUMMY_PROPERTY
};
enum  {
	WIXL_WIX_UPGRADE_DUMMY_PROPERTY
};
static void wixl_wix_upgrade_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
#define WIXL_WIX_UPGRADE_VERSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersionPrivate))
enum  {
	WIXL_WIX_UPGRADE_VERSION_DUMMY_PROPERTY,
	WIXL_WIX_UPGRADE_VERSION_MINIMUM,
	WIXL_WIX_UPGRADE_VERSION_MAXIMUM,
	WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM,
	WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM,
	WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT,
	WIXL_WIX_UPGRADE_VERSION_PROPERTY
};
static void wixl_wix_upgrade_version_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_upgrade_version_finalize (GObject* obj);
static void _vala_wixl_wix_upgrade_version_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_upgrade_version_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_CUSTOM_ACTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomActionPrivate))
enum  {
	WIXL_WIX_CUSTOM_ACTION_DUMMY_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_PROPERTY,
	WIXL_WIX_CUSTOM_ACTION_EXECUTE,
	WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND,
	WIXL_WIX_CUSTOM_ACTION_IMPERSONATE,
	WIXL_WIX_CUSTOM_ACTION_RETURN,
	WIXL_WIX_CUSTOM_ACTION_BINARY_KEY,
	WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY,
	WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET,
	WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL
};
static void wixl_wix_custom_action_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_custom_action_finalize (GObject* obj);
static void _vala_wixl_wix_custom_action_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_custom_action_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_BINARY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_BINARY, WixlWixBinaryPrivate))
enum  {
	WIXL_WIX_BINARY_DUMMY_PROPERTY,
	WIXL_WIX_BINARY_SOURCE_FILE
};
static void wixl_wix_binary_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_binary_finalize (GObject* obj);
static void _vala_wixl_wix_binary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_binary_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_MAJOR_UPGRADE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgradePrivate))
enum  {
	WIXL_WIX_MAJOR_UPGRADE_DUMMY_PROPERTY,
	WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE
};
static void wixl_wix_major_upgrade_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_major_upgrade_finalize (GObject* obj);
static void _vala_wixl_wix_major_upgrade_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_major_upgrade_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_MEDIA_TEMPLATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplatePrivate))
enum  {
	WIXL_WIX_MEDIA_TEMPLATE_DUMMY_PROPERTY,
	WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB
};
static void wixl_wix_media_template_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_media_template_finalize (GObject* obj);
static void _vala_wixl_wix_media_template_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_media_template_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_PRODUCT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_PRODUCT, WixlWixProductPrivate))
enum  {
	WIXL_WIX_PRODUCT_DUMMY_PROPERTY,
	WIXL_WIX_PRODUCT_NAME,
	WIXL_WIX_PRODUCT_UPGRADE_CODE,
	WIXL_WIX_PRODUCT_LANGUAGE,
	WIXL_WIX_PRODUCT_CODEPAGE,
	WIXL_WIX_PRODUCT_VERSION,
	WIXL_WIX_PRODUCT_MANUFACTURER
};
static void wixl_wix_product_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_product_finalize (GObject* obj);
static void _vala_wixl_wix_product_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_product_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_MEDIA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_MEDIA, WixlWixMediaPrivate))
enum  {
	WIXL_WIX_MEDIA_DUMMY_PROPERTY,
	WIXL_WIX_MEDIA_CABINET,
	WIXL_WIX_MEDIA_EMBED_CAB,
	WIXL_WIX_MEDIA_DISK_PROMPT
};
static void wixl_wix_media_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static void wixl_wix_media_finalize (GObject* obj);
static void _vala_wixl_wix_media_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_media_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_REGISTRY_KEY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKeyPrivate))
enum  {
	WIXL_WIX_REGISTRY_KEY_DUMMY_PROPERTY,
	WIXL_WIX_REGISTRY_KEY_KEY,
	WIXL_WIX_REGISTRY_KEY_ROOT
};
static void wixl_wix_registry_key_finalize (GObject* obj);
static void _vala_wixl_wix_registry_key_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_registry_key_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_COMPONENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_COMPONENT, WixlWixComponentPrivate))
enum  {
	WIXL_WIX_COMPONENT_DUMMY_PROPERTY,
	WIXL_WIX_COMPONENT_GUID,
	WIXL_WIX_COMPONENT_WIN64
};
static void wixl_wix_component_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static gchar* wixl_wix_component_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
static void wixl_wix_component_finalize (GObject* obj);
static void _vala_wixl_wix_component_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_component_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_DIRECTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectoryPrivate))
enum  {
	WIXL_WIX_DIRECTORY_DUMMY_PROPERTY,
	WIXL_WIX_DIRECTORY_NAME
};
static void wixl_wix_directory_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error);
static gchar* wixl_wix_directory_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
static void wixl_wix_directory_finalize (GObject* obj);
static void _vala_wixl_wix_directory_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_directory_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
#define WIXL_WIX_ELEMENT_REF_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRefPrivate))
enum  {
	WIXL_WIX_ELEMENT_REF_DUMMY_PROPERTY,
	WIXL_WIX_ELEMENT_REF_G_TYPE,
	WIXL_WIX_ELEMENT_REF_G_DUP_FUNC,
	WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC
};
static gchar* wixl_wix_element_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
static void wixl_wix_element_ref_finalize (GObject* obj);
static void _vala_wixl_wix_element_ref_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_wixl_wix_element_ref_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
enum  {
	WIXL_WIX_DIRECTORY_REF_DUMMY_PROPERTY
};
static gchar* wixl_wix_directory_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error);
GType wixl_wix_root_get_type (void) G_GNUC_CONST;
enum  {
	WIXL_WIX_ROOT_DUMMY_PROPERTY
};
WixlWixRoot* wixl_wix_root_new (void);
WixlWixRoot* wixl_wix_root_construct (GType object_type);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


gpointer wixl_wix_resolver_find_element (WixlWixResolver* self, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, const gchar* Id) {
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_RESOLVER_GET_INTERFACE (self)->find_element (self, g_type, g_dup_func, g_destroy_func, Id);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


gpointer wixl_wix_resolver_resolve (WixlWixResolver* self, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, WixlWixElement* element, GError** error) {
	gpointer result = NULL;
	gpointer resolved = NULL;
	WixlWixElement* _tmp0_ = NULL;
	GType _tmp1_ = 0UL;
	gboolean _tmp2_ = FALSE;
	gconstpointer _tmp21_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (element != NULL, NULL);
	resolved = NULL;
	_tmp0_ = element;
	_tmp1_ = G_TYPE_FROM_INSTANCE ((GObject*) _tmp0_);
	_tmp2_ = g_type_is_a (_tmp1_, g_type);
	if (_tmp2_) {
		WixlWixElement* _tmp3_ = NULL;
		gpointer _tmp4_ = NULL;
		_tmp3_ = element;
		_tmp4_ = ((_tmp3_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp3_) : ((gpointer) _tmp3_);
		_g_destroy_func0 (resolved);
		resolved = _tmp4_;
	} else {
		WixlWixElement* _tmp5_ = NULL;
		_tmp5_ = element;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, WIXL_TYPE_WIX_ELEMENT_REF)) {
			WixlWixElementRef* ref = NULL;
			WixlWixElement* _tmp6_ = NULL;
			WixlWixElementRef* _tmp7_ = NULL;
			WixlWixElementRef* _tmp8_ = NULL;
			GType _tmp9_ = 0UL;
			gboolean _tmp10_ = FALSE;
			WixlWixElementRef* _tmp18_ = NULL;
			gconstpointer _tmp19_ = NULL;
			gpointer _tmp20_ = NULL;
			_tmp6_ = element;
			_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, WIXL_TYPE_WIX_ELEMENT_REF) ? ((WixlWixElementRef*) _tmp6_) : NULL);
			ref = _tmp7_;
			_tmp8_ = ref;
			_tmp9_ = WIXL_WIX_ELEMENT_REF_CLASS (G_OBJECT_GET_CLASS (_tmp8_))->ref_type;
			_tmp10_ = g_type_is_a (_tmp9_, g_type);
			if (!_tmp10_) {
				_g_destroy_func0 (resolved);
				resolved = NULL;
			} else {
				WixlWixElementRef* _tmp11_ = NULL;
				gconstpointer _tmp12_ = NULL;
				_tmp11_ = ref;
				_tmp12_ = _tmp11_->resolved;
				if (_tmp12_ == NULL) {
					WixlWixElementRef* _tmp13_ = NULL;
					WixlWixElement* _tmp14_ = NULL;
					const gchar* _tmp15_ = NULL;
					const gchar* _tmp16_ = NULL;
					gpointer _tmp17_ = NULL;
					_tmp13_ = ref;
					_tmp14_ = element;
					_tmp15_ = wixl_wix_element_get_Id (_tmp14_);
					_tmp16_ = _tmp15_;
					_tmp17_ = wixl_wix_resolver_find_element (self, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp16_);
					_g_destroy_func0 (_tmp13_->resolved);
					_tmp13_->resolved = _tmp17_;
				}
			}
			_tmp18_ = ref;
			_tmp19_ = _tmp18_->resolved;
			_tmp20_ = ((_tmp19_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp19_) : ((gpointer) _tmp19_);
			_g_destroy_func0 (resolved);
			resolved = _tmp20_;
			_g_object_unref0 (ref);
		}
	}
	_tmp21_ = resolved;
	if (_tmp21_ == NULL) {
		WixlWixElement* _tmp22_ = NULL;
		const gchar* _tmp23_ = NULL;
		const gchar* _tmp24_ = NULL;
		GError* _tmp25_ = NULL;
		_tmp22_ = element;
		_tmp23_ = wixl_wix_element_get_Id (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = g_error_new (WIXL_ERROR, WIXL_ERROR_FAILED, "couldn't resolve %s", _tmp24_);
		_inner_error_ = _tmp25_;
		g_propagate_error (error, _inner_error_);
		_g_destroy_func0 (resolved);
		return NULL;
	}
	result = resolved;
	return result;
}


static void wixl_wix_resolver_base_init (WixlWixResolverIface * iface) {
	static gboolean initialized = FALSE;
	if (!initialized) {
		initialized = TRUE;
	}
}


GType wixl_wix_resolver_get_type (void) {
	static volatile gsize wixl_wix_resolver_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_resolver_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixResolverIface), (GBaseInitFunc) wixl_wix_resolver_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
		GType wixl_wix_resolver_type_id;
		wixl_wix_resolver_type_id = g_type_register_static (G_TYPE_INTERFACE, "WixlWixResolver", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_resolver_type_id__volatile, wixl_wix_resolver_type_id);
	}
	return wixl_wix_resolver_type_id__volatile;
}


GType wixl_visit_state_get_type (void) {
	static volatile gsize wixl_visit_state_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_visit_state_type_id__volatile)) {
		static const GEnumValue values[] = {{WIXL_VISIT_STATE_ENTER, "WIXL_VISIT_STATE_ENTER", "enter"}, {WIXL_VISIT_STATE_INFIX, "WIXL_VISIT_STATE_INFIX", "infix"}, {WIXL_VISIT_STATE_LEAVE, "WIXL_VISIT_STATE_LEAVE", "leave"}, {0, NULL, NULL}};
		GType wixl_visit_state_type_id;
		wixl_visit_state_type_id = g_enum_register_static ("WixlVisitState", values);
		g_once_init_leave (&wixl_visit_state_type_id__volatile, wixl_visit_state_type_id);
	}
	return wixl_visit_state_type_id__volatile;
}


static void wixl_wix_node_visitor_real_visit_product (WixlWixNodeVisitor* self, WixlWixProduct* product, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_product'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_product (WixlWixNodeVisitor* self, WixlWixProduct* product, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_product (self, product, error);
}


static void wixl_wix_node_visitor_real_visit_icon (WixlWixNodeVisitor* self, WixlWixIcon* icon, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_icon'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_icon (WixlWixNodeVisitor* self, WixlWixIcon* icon, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_icon (self, icon, error);
}


static void wixl_wix_node_visitor_real_visit_package (WixlWixNodeVisitor* self, WixlWixPackage* package, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_package'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_package (WixlWixNodeVisitor* self, WixlWixPackage* package, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_package (self, package, error);
}


static void wixl_wix_node_visitor_real_visit_property (WixlWixNodeVisitor* self, WixlWixProperty* prop, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_property'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_property (WixlWixNodeVisitor* self, WixlWixProperty* prop, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_property (self, prop, error);
}


static void wixl_wix_node_visitor_real_visit_media (WixlWixNodeVisitor* self, WixlWixMedia* media, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_media'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_media (WixlWixNodeVisitor* self, WixlWixMedia* media, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_media (self, media, error);
}


static void wixl_wix_node_visitor_real_visit_directory (WixlWixNodeVisitor* self, WixlWixDirectory* dir, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_directory'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_directory (WixlWixNodeVisitor* self, WixlWixDirectory* dir, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_directory (self, dir, error);
}


static void wixl_wix_node_visitor_real_visit_component (WixlWixNodeVisitor* self, WixlWixComponent* comp, WixlVisitState state, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_component (WixlWixNodeVisitor* self, WixlWixComponent* comp, WixlVisitState state, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component (self, comp, state, error);
}


static void wixl_wix_node_visitor_real_visit_feature (WixlWixNodeVisitor* self, WixlWixFeature* feature, WixlVisitState state, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_feature'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_feature (WixlWixNodeVisitor* self, WixlWixFeature* feature, WixlVisitState state, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_feature (self, feature, state, error);
}


static void wixl_wix_node_visitor_real_visit_component_ref (WixlWixNodeVisitor* self, WixlWixComponentRef* ref, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component_ref'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_component_ref (WixlWixNodeVisitor* self, WixlWixComponentRef* ref, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component_ref (self, ref, error);
}


static void wixl_wix_node_visitor_real_visit_remove_folder (WixlWixNodeVisitor* self, WixlWixRemoveFolder* rm, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_remove_folder'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_remove_folder (WixlWixNodeVisitor* self, WixlWixRemoveFolder* rm, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_remove_folder (self, rm, error);
}


static void wixl_wix_node_visitor_real_visit_registry_value (WixlWixNodeVisitor* self, WixlWixRegistryValue* reg, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_registry_value'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_registry_value (WixlWixNodeVisitor* self, WixlWixRegistryValue* reg, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_registry_value (self, reg, error);
}


static void wixl_wix_node_visitor_real_visit_file (WixlWixNodeVisitor* self, WixlWixFile* reg, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_file (WixlWixNodeVisitor* self, WixlWixFile* reg, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_file (self, reg, error);
}


static void wixl_wix_node_visitor_real_visit_shortcut (WixlWixNodeVisitor* self, WixlWixShortcut* shortcut, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_shortcut'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_shortcut (WixlWixNodeVisitor* self, WixlWixShortcut* shortcut, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_shortcut (self, shortcut, error);
}


static void wixl_wix_node_visitor_real_visit_create_folder (WixlWixNodeVisitor* self, WixlWixCreateFolder* folder, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_create_folder'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_create_folder (WixlWixNodeVisitor* self, WixlWixCreateFolder* folder, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_create_folder (self, folder, error);
}


static void wixl_wix_node_visitor_real_visit_fragment (WixlWixNodeVisitor* self, WixlWixFragment* fragment, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_fragment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_fragment (WixlWixNodeVisitor* self, WixlWixFragment* fragment, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_fragment (self, fragment, error);
}


static void wixl_wix_node_visitor_real_visit_sequence (WixlWixNodeVisitor* self, WixlWixSequence* sequence, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_sequence'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_sequence (WixlWixNodeVisitor* self, WixlWixSequence* sequence, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_sequence (self, sequence, error);
}


static void wixl_wix_node_visitor_real_visit_condition (WixlWixNodeVisitor* self, WixlWixCondition* condition, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_condition'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_condition (WixlWixNodeVisitor* self, WixlWixCondition* condition, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_condition (self, condition, error);
}


static void wixl_wix_node_visitor_real_visit_upgrade (WixlWixNodeVisitor* self, WixlWixUpgrade* upgrade, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_upgrade'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_upgrade (WixlWixNodeVisitor* self, WixlWixUpgrade* upgrade, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_upgrade (self, upgrade, error);
}


static void wixl_wix_node_visitor_real_visit_upgrade_version (WixlWixNodeVisitor* self, WixlWixUpgradeVersion* version, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_upgrade_version'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_upgrade_version (WixlWixNodeVisitor* self, WixlWixUpgradeVersion* version, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_upgrade_version (self, version, error);
}


static void wixl_wix_node_visitor_real_visit_action (WixlWixNodeVisitor* self, WixlWixAction* action, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_action'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_action (WixlWixNodeVisitor* self, WixlWixAction* action, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_action (self, action, error);
}


static void wixl_wix_node_visitor_real_visit_text (WixlWixNodeVisitor* self, WixlWixText* text, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_text'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_text (WixlWixNodeVisitor* self, WixlWixText* text, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_text (self, text, error);
}


static void wixl_wix_node_visitor_real_visit_component_group_ref (WixlWixNodeVisitor* self, WixlWixComponentGroupRef* ref, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_component_group_ref'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_component_group_ref (WixlWixNodeVisitor* self, WixlWixComponentGroupRef* ref, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_component_group_ref (self, ref, error);
}


static void wixl_wix_node_visitor_real_visit_progid (WixlWixNodeVisitor* self, WixlWixProgId* progid, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_progid'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_progid (WixlWixNodeVisitor* self, WixlWixProgId* progid, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_progid (self, progid, error);
}


static void wixl_wix_node_visitor_real_visit_extension (WixlWixNodeVisitor* self, WixlWixExtension* extension, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_extension'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_extension (WixlWixNodeVisitor* self, WixlWixExtension* extension, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_extension (self, extension, error);
}


static void wixl_wix_node_visitor_real_visit_verb (WixlWixNodeVisitor* self, WixlWixVerb* verb, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_verb'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_verb (WixlWixNodeVisitor* self, WixlWixVerb* verb, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_verb (self, verb, error);
}


static void wixl_wix_node_visitor_real_visit_mime (WixlWixNodeVisitor* self, WixlWixMIME* mime, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_mime'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_mime (WixlWixNodeVisitor* self, WixlWixMIME* mime, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_mime (self, mime, error);
}


static void wixl_wix_node_visitor_real_visit_service_argument (WixlWixNodeVisitor* self, WixlWixServiceArgument* service_argument, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_argument'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_service_argument (WixlWixNodeVisitor* self, WixlWixServiceArgument* service_argument, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_argument (self, service_argument, error);
}


static void wixl_wix_node_visitor_real_visit_service_control (WixlWixNodeVisitor* self, WixlWixServiceControl* service_control, WixlVisitState state, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_control'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_service_control (WixlWixNodeVisitor* self, WixlWixServiceControl* service_control, WixlVisitState state, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_control (self, service_control, state, error);
}


static void wixl_wix_node_visitor_real_visit_service_dependency (WixlWixNodeVisitor* self, WixlWixServiceDependency* service_dependency, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_dependency'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_service_dependency (WixlWixNodeVisitor* self, WixlWixServiceDependency* service_dependency, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_dependency (self, service_dependency, error);
}


static void wixl_wix_node_visitor_real_visit_service_install (WixlWixNodeVisitor* self, WixlWixServiceInstall* service_install, WixlVisitState state, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_service_install'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_service_install (WixlWixNodeVisitor* self, WixlWixServiceInstall* service_install, WixlVisitState state, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_service_install (self, service_install, state, error);
}


static void wixl_wix_node_visitor_real_visit_registry_search (WixlWixNodeVisitor* self, WixlWixRegistrySearch* search, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_registry_search'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_registry_search (WixlWixNodeVisitor* self, WixlWixRegistrySearch* search, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_registry_search (self, search, error);
}


static void wixl_wix_node_visitor_real_visit_custom_action (WixlWixNodeVisitor* self, WixlWixCustomAction* action, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_custom_action'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_custom_action (WixlWixNodeVisitor* self, WixlWixCustomAction* action, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_custom_action (self, action, error);
}


static void wixl_wix_node_visitor_real_visit_binary (WixlWixNodeVisitor* self, WixlWixBinary* binary, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_binary'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_binary (WixlWixNodeVisitor* self, WixlWixBinary* binary, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_binary (self, binary, error);
}


static void wixl_wix_node_visitor_real_visit_major_upgrade (WixlWixNodeVisitor* self, WixlWixMajorUpgrade* major, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_major_upgrade'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_major_upgrade (WixlWixNodeVisitor* self, WixlWixMajorUpgrade* major, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_major_upgrade (self, major, error);
}


static void wixl_wix_node_visitor_real_visit_media_template (WixlWixNodeVisitor* self, WixlWixMediaTemplate* media, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_visitor_visit_media_template'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_visitor_visit_media_template (WixlWixNodeVisitor* self, WixlWixMediaTemplate* media, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_VISITOR_GET_CLASS (self)->visit_media_template (self, media, error);
}


WixlWixNodeVisitor* wixl_wix_node_visitor_construct (GType object_type) {
	WixlWixNodeVisitor * self = NULL;
	self = (WixlWixNodeVisitor*) g_object_new (object_type, NULL);
	return self;
}


static void wixl_wix_node_visitor_class_init (WixlWixNodeVisitorClass * klass) {
	wixl_wix_node_visitor_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeVisitorClass *) klass)->visit_product = (void (*)(WixlWixNodeVisitor*, WixlWixProduct*, GError**)) wixl_wix_node_visitor_real_visit_product;
	((WixlWixNodeVisitorClass *) klass)->visit_icon = (void (*)(WixlWixNodeVisitor*, WixlWixIcon*, GError**)) wixl_wix_node_visitor_real_visit_icon;
	((WixlWixNodeVisitorClass *) klass)->visit_package = (void (*)(WixlWixNodeVisitor*, WixlWixPackage*, GError**)) wixl_wix_node_visitor_real_visit_package;
	((WixlWixNodeVisitorClass *) klass)->visit_property = (void (*)(WixlWixNodeVisitor*, WixlWixProperty*, GError**)) wixl_wix_node_visitor_real_visit_property;
	((WixlWixNodeVisitorClass *) klass)->visit_media = (void (*)(WixlWixNodeVisitor*, WixlWixMedia*, GError**)) wixl_wix_node_visitor_real_visit_media;
	((WixlWixNodeVisitorClass *) klass)->visit_directory = (void (*)(WixlWixNodeVisitor*, WixlWixDirectory*, GError**)) wixl_wix_node_visitor_real_visit_directory;
	((WixlWixNodeVisitorClass *) klass)->visit_component = (void (*)(WixlWixNodeVisitor*, WixlWixComponent*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_component;
	((WixlWixNodeVisitorClass *) klass)->visit_feature = (void (*)(WixlWixNodeVisitor*, WixlWixFeature*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_feature;
	((WixlWixNodeVisitorClass *) klass)->visit_component_ref = (void (*)(WixlWixNodeVisitor*, WixlWixComponentRef*, GError**)) wixl_wix_node_visitor_real_visit_component_ref;
	((WixlWixNodeVisitorClass *) klass)->visit_remove_folder = (void (*)(WixlWixNodeVisitor*, WixlWixRemoveFolder*, GError**)) wixl_wix_node_visitor_real_visit_remove_folder;
	((WixlWixNodeVisitorClass *) klass)->visit_registry_value = (void (*)(WixlWixNodeVisitor*, WixlWixRegistryValue*, GError**)) wixl_wix_node_visitor_real_visit_registry_value;
	((WixlWixNodeVisitorClass *) klass)->visit_file = (void (*)(WixlWixNodeVisitor*, WixlWixFile*, GError**)) wixl_wix_node_visitor_real_visit_file;
	((WixlWixNodeVisitorClass *) klass)->visit_shortcut = (void (*)(WixlWixNodeVisitor*, WixlWixShortcut*, GError**)) wixl_wix_node_visitor_real_visit_shortcut;
	((WixlWixNodeVisitorClass *) klass)->visit_create_folder = (void (*)(WixlWixNodeVisitor*, WixlWixCreateFolder*, GError**)) wixl_wix_node_visitor_real_visit_create_folder;
	((WixlWixNodeVisitorClass *) klass)->visit_fragment = (void (*)(WixlWixNodeVisitor*, WixlWixFragment*, GError**)) wixl_wix_node_visitor_real_visit_fragment;
	((WixlWixNodeVisitorClass *) klass)->visit_sequence = (void (*)(WixlWixNodeVisitor*, WixlWixSequence*, GError**)) wixl_wix_node_visitor_real_visit_sequence;
	((WixlWixNodeVisitorClass *) klass)->visit_condition = (void (*)(WixlWixNodeVisitor*, WixlWixCondition*, GError**)) wixl_wix_node_visitor_real_visit_condition;
	((WixlWixNodeVisitorClass *) klass)->visit_upgrade = (void (*)(WixlWixNodeVisitor*, WixlWixUpgrade*, GError**)) wixl_wix_node_visitor_real_visit_upgrade;
	((WixlWixNodeVisitorClass *) klass)->visit_upgrade_version = (void (*)(WixlWixNodeVisitor*, WixlWixUpgradeVersion*, GError**)) wixl_wix_node_visitor_real_visit_upgrade_version;
	((WixlWixNodeVisitorClass *) klass)->visit_action = (void (*)(WixlWixNodeVisitor*, WixlWixAction*, GError**)) wixl_wix_node_visitor_real_visit_action;
	((WixlWixNodeVisitorClass *) klass)->visit_text = (void (*)(WixlWixNodeVisitor*, WixlWixText*, GError**)) wixl_wix_node_visitor_real_visit_text;
	((WixlWixNodeVisitorClass *) klass)->visit_component_group_ref = (void (*)(WixlWixNodeVisitor*, WixlWixComponentGroupRef*, GError**)) wixl_wix_node_visitor_real_visit_component_group_ref;
	((WixlWixNodeVisitorClass *) klass)->visit_progid = (void (*)(WixlWixNodeVisitor*, WixlWixProgId*, GError**)) wixl_wix_node_visitor_real_visit_progid;
	((WixlWixNodeVisitorClass *) klass)->visit_extension = (void (*)(WixlWixNodeVisitor*, WixlWixExtension*, GError**)) wixl_wix_node_visitor_real_visit_extension;
	((WixlWixNodeVisitorClass *) klass)->visit_verb = (void (*)(WixlWixNodeVisitor*, WixlWixVerb*, GError**)) wixl_wix_node_visitor_real_visit_verb;
	((WixlWixNodeVisitorClass *) klass)->visit_mime = (void (*)(WixlWixNodeVisitor*, WixlWixMIME*, GError**)) wixl_wix_node_visitor_real_visit_mime;
	((WixlWixNodeVisitorClass *) klass)->visit_service_argument = (void (*)(WixlWixNodeVisitor*, WixlWixServiceArgument*, GError**)) wixl_wix_node_visitor_real_visit_service_argument;
	((WixlWixNodeVisitorClass *) klass)->visit_service_control = (void (*)(WixlWixNodeVisitor*, WixlWixServiceControl*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_service_control;
	((WixlWixNodeVisitorClass *) klass)->visit_service_dependency = (void (*)(WixlWixNodeVisitor*, WixlWixServiceDependency*, GError**)) wixl_wix_node_visitor_real_visit_service_dependency;
	((WixlWixNodeVisitorClass *) klass)->visit_service_install = (void (*)(WixlWixNodeVisitor*, WixlWixServiceInstall*, WixlVisitState, GError**)) wixl_wix_node_visitor_real_visit_service_install;
	((WixlWixNodeVisitorClass *) klass)->visit_registry_search = (void (*)(WixlWixNodeVisitor*, WixlWixRegistrySearch*, GError**)) wixl_wix_node_visitor_real_visit_registry_search;
	((WixlWixNodeVisitorClass *) klass)->visit_custom_action = (void (*)(WixlWixNodeVisitor*, WixlWixCustomAction*, GError**)) wixl_wix_node_visitor_real_visit_custom_action;
	((WixlWixNodeVisitorClass *) klass)->visit_binary = (void (*)(WixlWixNodeVisitor*, WixlWixBinary*, GError**)) wixl_wix_node_visitor_real_visit_binary;
	((WixlWixNodeVisitorClass *) klass)->visit_major_upgrade = (void (*)(WixlWixNodeVisitor*, WixlWixMajorUpgrade*, GError**)) wixl_wix_node_visitor_real_visit_major_upgrade;
	((WixlWixNodeVisitorClass *) klass)->visit_media_template = (void (*)(WixlWixNodeVisitor*, WixlWixMediaTemplate*, GError**)) wixl_wix_node_visitor_real_visit_media_template;
}


static void wixl_wix_node_visitor_instance_init (WixlWixNodeVisitor * self) {
}


GType wixl_wix_node_visitor_get_type (void) {
	static volatile gsize wixl_wix_node_visitor_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_node_visitor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixNodeVisitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_node_visitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixNodeVisitor), 0, (GInstanceInitFunc) wixl_wix_node_visitor_instance_init, NULL };
		GType wixl_wix_node_visitor_type_id;
		wixl_wix_node_visitor_type_id = g_type_register_static (G_TYPE_OBJECT, "WixlWixNodeVisitor", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_node_visitor_type_id__volatile, wixl_wix_node_visitor_type_id);
	}
	return wixl_wix_node_visitor_type_id__volatile;
}


static gchar* wixl_wix_node_real_to_string (WixlWixNode* self) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_to_string'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return NULL;
}


gchar* wixl_wix_node_to_string (WixlWixNode* self) {
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_NODE_GET_CLASS (self)->to_string (self);
}


void wixl_wix_node_value_to_string (GValue* src, GValue* dest) {
	GValue _vala_dest = {0};
	WixlWixNode* e = NULL;
	GValue _tmp0_ = {0};
	WixlWixNode* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GValue _tmp3_ = {0};
	g_return_if_fail (src != NULL);
	_tmp0_ = *src;
	_tmp1_ = wixl_wix_node_value_get_node (&_tmp0_);
	e = _tmp1_;
	_tmp2_ = wixl_wix_node_to_string (e);
	g_value_init (&_tmp3_, G_TYPE_STRING);
	g_value_take_string (&_tmp3_, _tmp2_);
	G_IS_VALUE (&_vala_dest) ? (g_value_unset (&_vala_dest), NULL) : NULL;
	_vala_dest = _tmp3_;
	_g_object_unref0 (e);
	if (dest) {
		*dest = _vala_dest;
	} else {
		G_IS_VALUE (&_vala_dest) ? (g_value_unset (&_vala_dest), NULL) : NULL;
	}
}


WixlWixNode* wixl_wix_node_value_get_node (GValue* value) {
	WixlWixNode* result = NULL;
	gboolean _tmp0_ = FALSE;
	GObject* _tmp1_ = NULL;
	WixlWixNode* _tmp2_ = NULL;
	g_return_val_if_fail (value != NULL, NULL);
	_tmp0_ = G_VALUE_HOLDS (value, WIXL_TYPE_WIX_NODE);
	if (!_tmp0_) {
		result = NULL;
		return result;
	}
	_tmp1_ = g_value_get_object (value);
	_tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, WIXL_TYPE_WIX_NODE, WixlWixNode));
	result = _tmp2_;
	return result;
}


static void wixl_wix_node_real_accept (WixlWixNode* self, WixlWixNodeVisitor* visitor, GError** error) {
	g_critical ("Type `%s' does not implement abstract method `wixl_wix_node_accept'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
	return;
}


void wixl_wix_node_accept (WixlWixNode* self, WixlWixNodeVisitor* visitor, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_NODE_GET_CLASS (self)->accept (self, visitor, error);
}


WixlWixNode* wixl_wix_node_construct (GType object_type) {
	WixlWixNode * self = NULL;
	self = (WixlWixNode*) g_object_new (object_type, NULL);
	return self;
}


static void wixl_wix_node_class_init (WixlWixNodeClass * klass) {
	wixl_wix_node_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*)(WixlWixNode*)) wixl_wix_node_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_node_real_accept;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_node_finalize;
	g_value_register_transform_func (WIXL_TYPE_WIX_NODE, G_TYPE_STRING, (GValueTransform) wixl_wix_node_value_to_string);
}


static void wixl_wix_node_instance_init (WixlWixNode * self) {
}


static void wixl_wix_node_finalize (GObject* obj) {
	WixlWixNode * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_NODE, WixlWixNode);
	_g_object_unref0 (self->parent);
	G_OBJECT_CLASS (wixl_wix_node_parent_class)->finalize (obj);
}


GType wixl_wix_node_get_type (void) {
	static volatile gsize wixl_wix_node_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_node_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixNode), 0, (GInstanceInitFunc) wixl_wix_node_instance_init, NULL };
		GType wixl_wix_node_type_id;
		wixl_wix_node_type_id = g_type_register_static (G_TYPE_OBJECT, "WixlWixNode", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_node_type_id__volatile, wixl_wix_node_type_id);
	}
	return wixl_wix_node_type_id__volatile;
}


WixlWixText* wixl_wix_text_construct (GType object_type, const gchar* str) {
	WixlWixText * self = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_val_if_fail (str != NULL, NULL);
	self = (WixlWixText*) wixl_wix_node_construct (object_type);
	_tmp0_ = str;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->Text);
	self->Text = _tmp1_;
	return self;
}


WixlWixText* wixl_wix_text_new (const gchar* str) {
	return wixl_wix_text_construct (WIXL_TYPE_WIX_TEXT, str);
}


static gchar* wixl_wix_text_real_to_string (WixlWixNode* base) {
	WixlWixText * self;
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	self = (WixlWixText*) base;
	_tmp0_ = self->Text;
	_tmp1_ = g_strdup (_tmp0_);
	result = _tmp1_;
	return result;
}


static void wixl_wix_text_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixText * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixText*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_text (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


static void wixl_wix_text_class_init (WixlWixTextClass * klass) {
	wixl_wix_text_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*)(WixlWixNode*)) wixl_wix_text_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_text_real_accept;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_text_finalize;
}


static void wixl_wix_text_instance_init (WixlWixText * self) {
}


static void wixl_wix_text_finalize (GObject* obj) {
	WixlWixText * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_TEXT, WixlWixText);
	_g_free0 (self->Text);
	G_OBJECT_CLASS (wixl_wix_text_parent_class)->finalize (obj);
}


GType wixl_wix_text_get_type (void) {
	static volatile gsize wixl_wix_text_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_text_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixText), 0, (GInstanceInitFunc) wixl_wix_text_instance_init, NULL };
		GType wixl_wix_text_type_id;
		wixl_wix_text_type_id = g_type_register_static (WIXL_TYPE_WIX_NODE, "WixlWixText", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_text_type_id__volatile, wixl_wix_text_type_id);
	}
	return wixl_wix_text_type_id__volatile;
}


static void _g_object_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}


static void _g_list_free__g_object_unref0_ (GList* self) {
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
	g_list_free (self);
}


void wixl_wix_element_add_child_types (WixlWixElementClass* klass, GHashTable* table, GType* child_types, int child_types_length1) {
	GType* _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	g_return_if_fail (table != NULL);
	_tmp0_ = child_types;
	_tmp0__length1 = child_types_length1;
	{
		GType* t_collection = NULL;
		gint t_collection_length1 = 0;
		gint _t_collection_size_ = 0;
		gint t_it = 0;
		t_collection = _tmp0_;
		t_collection_length1 = _tmp0__length1;
		for (t_it = 0; t_it < _tmp0__length1; t_it = t_it + 1) {
			GType t = 0UL;
			t = t_collection[t_it];
			{
				gchar* n = NULL;
				GType _tmp1_ = 0UL;
				GObject* _tmp2_ = NULL;
				GObject* _tmp3_ = NULL;
				WixlWixElement* _tmp4_ = NULL;
				const gchar* _tmp5_ = NULL;
				gchar* _tmp6_ = NULL;
				gchar* _tmp7_ = NULL;
				GHashTable* _tmp8_ = NULL;
				const gchar* _tmp9_ = NULL;
				gchar* _tmp10_ = NULL;
				GType _tmp11_ = 0UL;
				_tmp1_ = t;
				_tmp2_ = g_object_new (_tmp1_, NULL);
				_tmp3_ = G_IS_INITIALLY_UNOWNED (_tmp2_) ? g_object_ref_sink (_tmp2_) : _tmp2_;
				_tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
				_tmp5_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (_tmp4_))->name;
				_tmp6_ = g_strdup (_tmp5_);
				_tmp7_ = _tmp6_;
				_g_object_unref0 (_tmp4_);
				n = _tmp7_;
				_tmp8_ = table;
				_tmp9_ = n;
				_tmp10_ = g_strdup (_tmp9_);
				_tmp11_ = t;
				g_hash_table_insert (_tmp8_, _tmp10_, (gpointer) ((gintptr) _tmp11_));
				_g_free0 (n);
			}
		}
	}
}


void wixl_wix_element_add_child (WixlWixElement* self, WixlWixNode* e) {
	WixlWixNode* _tmp0_ = NULL;
	WixlWixElement* _tmp1_ = NULL;
	WixlWixNode* _tmp2_ = NULL;
	WixlWixNode* _tmp3_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (e != NULL);
	_tmp0_ = e;
	_tmp1_ = _g_object_ref0 (self);
	_g_object_unref0 (_tmp0_->parent);
	_tmp0_->parent = _tmp1_;
	_tmp2_ = e;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	self->children = g_list_append (self->children, _tmp3_);
}


static gpointer* _vala_array_dup3 (gpointer* self, int length, GBoxedCopyFunc g_dup_func) {
	gpointer* result;
	int i;
	result = g_new0 (gpointer, length);
	for (i = 0; i < length; i++) {
		gpointer _tmp0_ = NULL;
		_tmp0_ = ((self[i] != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self[i]) : ((gpointer) self[i]);
		result[i] = _tmp0_;
	}
	return result;
}


static void _vala_array_add7 (gpointer** array, int* length, int* size, gpointer value) {
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gpointer, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}


static gpointer* _vala_array_dup4 (gpointer* self, int length, GBoxedCopyFunc g_dup_func) {
	gpointer* result;
	int i;
	result = g_new0 (gpointer, length);
	for (i = 0; i < length; i++) {
		gpointer _tmp0_ = NULL;
		_tmp0_ = ((self[i] != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self[i]) : ((gpointer) self[i]);
		result[i] = _tmp0_;
	}
	return result;
}


static void _vala_array_add8 (gpointer** array, int* length, int* size, gpointer value) {
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gpointer, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}


gpointer* wixl_wix_element_add_elements (WixlWixElement* self, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* a, int a_length1, int* result_length1) {
	gpointer* result = NULL;
	gpointer* array = NULL;
	gpointer* _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gpointer* _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
	gint array_length1 = 0;
	gint _array_size_ = 0;
	GType type = 0UL;
	GType _tmp2_ = 0UL;
	GType _tmp3_ = 0UL;
	gboolean _tmp4_ = FALSE;
	GList* _tmp7_ = NULL;
	gpointer* _tmp22_ = NULL;
	gint _tmp22__length1 = 0;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = a;
	_tmp0__length1 = a_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup3 (_tmp0_, _tmp0__length1, g_dup_func) : ((gpointer) _tmp0_);
	_tmp1__length1 = _tmp0__length1;
	array = _tmp1_;
	array_length1 = _tmp1__length1;
	_array_size_ = array_length1;
	type = g_type;
	_tmp2_ = G_TYPE_FROM_INSTANCE ((GObject*) self);
	_tmp3_ = type;
	_tmp4_ = g_type_is_a (_tmp2_, _tmp3_);
	if (_tmp4_) {
		gpointer* _tmp5_ = NULL;
		gint _tmp5__length1 = 0;
		gpointer _tmp6_ = NULL;
		_tmp5_ = array;
		_tmp5__length1 = array_length1;
		_tmp6_ = ((self != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self) : ((gpointer) self);
		_vala_array_add7 (&array, &array_length1, &_array_size_, _tmp6_);
	}
	_tmp7_ = self->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp7_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp8_ = NULL;
			WixlWixNode* c = NULL;
			_tmp8_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp8_;
			{
				WixlWixNode* _tmp9_ = NULL;
				_tmp9_ = c;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, WIXL_TYPE_WIX_ELEMENT)) {
					WixlWixNode* _tmp10_ = NULL;
					gpointer* _tmp11_ = NULL;
					gint _tmp11__length1 = 0;
					gpointer* _tmp12_ = NULL;
					gint _tmp12__length1 = 0;
					gint _tmp13_ = 0;
					gpointer* _tmp14_ = NULL;
					_tmp10_ = c;
					_tmp11_ = array;
					_tmp11__length1 = array_length1;
					_tmp12_ = (_tmp11_ != NULL) ? _vala_array_dup4 (_tmp11_, _tmp11__length1, g_dup_func) : ((gpointer) _tmp11_);
					_tmp12__length1 = _tmp11__length1;
					_tmp14_ = wixl_wix_element_add_elements (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp10_) : NULL, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp12_, _tmp12__length1, &_tmp13_);
					array = (_vala_array_free (array, array_length1, (GDestroyNotify) g_destroy_func), NULL);
					array = _tmp14_;
					array_length1 = _tmp13_;
					_array_size_ = array_length1;
				} else {
					WixlWixNode* _tmp15_ = NULL;
					GType _tmp16_ = 0UL;
					GType _tmp17_ = 0UL;
					gboolean _tmp18_ = FALSE;
					_tmp15_ = c;
					_tmp16_ = G_TYPE_FROM_INSTANCE ((GObject*) _tmp15_);
					_tmp17_ = type;
					_tmp18_ = g_type_is_a (_tmp16_, _tmp17_);
					if (_tmp18_) {
						gpointer* _tmp19_ = NULL;
						gint _tmp19__length1 = 0;
						WixlWixNode* _tmp20_ = NULL;
						gpointer _tmp21_ = NULL;
						_tmp19_ = array;
						_tmp19__length1 = array_length1;
						_tmp20_ = c;
						_tmp21_ = ((_tmp20_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp20_) : ((gpointer) _tmp20_);
						_vala_array_add8 (&array, &array_length1, &_array_size_, _tmp21_);
					}
				}
				_g_object_unref0 (c);
			}
		}
	}
	_tmp22_ = array;
	_tmp22__length1 = array_length1;
	if (result_length1) {
		*result_length1 = _tmp22__length1;
	}
	result = _tmp22_;
	a = (_vala_array_free (a, a_length1, (GDestroyNotify) g_destroy_func), NULL);
	return result;
}


static gchar* wixl_wix_element_real_full_path (WixlWixElement* self, WixlWixResolver* r, GError** error) {
	gchar* result = NULL;
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (_tmp1_ != NULL) {
		gboolean _tmp2_ = FALSE;
		WixlWixElement* _tmp3_ = NULL;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, WIXL_TYPE_WIX_DIRECTORY)) {
			_tmp2_ = TRUE;
		} else {
			WixlWixElement* _tmp4_ = NULL;
			_tmp4_ = ((WixlWixNode*) self)->parent;
			_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_DIRECTORY_REF);
		}
		_tmp0_ = _tmp2_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar* _tmp5_ = NULL;
		WixlWixElement* _tmp6_ = NULL;
		WixlWixResolver* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		gchar* _tmp10_ = NULL;
		gchar* _tmp11_ = NULL;
		gchar* _tmp12_ = NULL;
		const gchar* _tmp13_ = NULL;
		gchar* _tmp14_ = NULL;
		gchar* _tmp15_ = NULL;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = r;
		_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
		_tmp5_ = _tmp8_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			g_propagate_error (error, _inner_error_);
			return NULL;
		}
		_tmp9_ = _tmp5_;
		_tmp5_ = NULL;
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strconcat (_tmp10_, "/", NULL);
		_tmp12_ = _tmp11_;
		_tmp13_ = self->priv->_Id;
		_tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
		_tmp15_ = _tmp14_;
		_g_free0 (_tmp12_);
		_g_free0 (_tmp10_);
		result = _tmp15_;
		_g_free0 (_tmp5_);
		return result;
	} else {
		const gchar* _tmp16_ = NULL;
		gchar* _tmp17_ = NULL;
		_tmp16_ = self->priv->_Id;
		_tmp17_ = g_strdup (_tmp16_);
		result = _tmp17_;
		return result;
	}
}


gchar* wixl_wix_element_full_path (WixlWixElement* self, WixlWixResolver* r, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_ELEMENT_GET_CLASS (self)->full_path (self, r, error);
}


gpointer* wixl_wix_element_get_elements (WixlWixElement* self, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, int* result_length1) {
	gpointer* result = NULL;
	gpointer* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	gpointer* _tmp2_ = NULL;
	gpointer* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_new0 (gpointer, 0);
	_tmp2_ = wixl_wix_element_add_elements (self, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp0_, 0, &_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp3__length1 = _tmp1_;
	if (result_length1) {
		*result_length1 = _tmp3__length1;
	}
	result = _tmp3_;
	return result;
}


gpointer wixl_wix_element_find_element (WixlWixElement* self, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, const gchar* Id) {
	gpointer result = NULL;
	GType type = 0UL;
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	GList* _tmp6_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (Id != NULL, NULL);
	type = g_type;
	_tmp1_ = self->priv->_Id;
	_tmp2_ = Id;
	if (g_strcmp0 (_tmp1_, _tmp2_) == 0) {
		GType _tmp3_ = 0UL;
		GType _tmp4_ = 0UL;
		_tmp3_ = G_TYPE_FROM_INSTANCE ((GObject*) self);
		_tmp4_ = type;
		_tmp0_ = _tmp3_ == _tmp4_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gpointer _tmp5_ = NULL;
		_tmp5_ = ((self != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) self) : ((gpointer) self);
		result = _tmp5_;
		return result;
	}
	_tmp6_ = self->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp6_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp7_ = NULL;
			WixlWixNode* c = NULL;
			_tmp7_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp7_;
			{
				WixlWixNode* _tmp8_ = NULL;
				_tmp8_ = c;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, WIXL_TYPE_WIX_ELEMENT)) {
					gpointer e = NULL;
					WixlWixNode* _tmp9_ = NULL;
					const gchar* _tmp10_ = NULL;
					gpointer _tmp11_ = NULL;
					gconstpointer _tmp12_ = NULL;
					_tmp9_ = c;
					_tmp10_ = Id;
					_tmp11_ = wixl_wix_element_find_element (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp9_) : NULL, g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp10_);
					e = _tmp11_;
					_tmp12_ = e;
					if (_tmp12_ != NULL) {
						result = e;
						_g_object_unref0 (c);
						return result;
					}
					_g_destroy_func0 (e);
				}
				_g_object_unref0 (c);
			}
		}
	}
	result = NULL;
	return result;
}


static gchar* wixl_wix_element_get_attribute_content (WixlWixElement* self, xmlAttr* attr) {
	gchar* result = NULL;
	xmlAttr* _tmp0_ = NULL;
	xmlNode* _tmp1_ = NULL;
	xmlAttr* _tmp3_ = NULL;
	xmlNode* _tmp4_ = NULL;
	const gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = attr;
	_tmp1_ = _tmp0_->children;
	if (_tmp1_ == NULL) {
		gchar* _tmp2_ = NULL;
		_tmp2_ = g_strdup ("");
		result = _tmp2_;
		return result;
	}
	_tmp3_ = attr;
	_tmp4_ = _tmp3_->children;
	_tmp5_ = _tmp4_->content;
	_tmp6_ = g_strdup (_tmp5_);
	result = _tmp6_;
	return result;
}


void wixl_wix_element_load_properties_from_node (WixlWixElement* self, xmlNode* node, GError** error) {
	g_return_if_fail (self != NULL);
	{
		xmlAttr* prop = NULL;
		xmlNode* _tmp0_ = NULL;
		xmlAttr* _tmp1_ = NULL;
		_tmp0_ = node;
		_tmp1_ = _tmp0_->properties;
		prop = _tmp1_;
		{
			gboolean _tmp2_ = FALSE;
			_tmp2_ = TRUE;
			while (TRUE) {
				xmlAttr* _tmp5_ = NULL;
				xmlAttr* _tmp6_ = NULL;
				xmlElementType _tmp7_ = 0;
				if (!_tmp2_) {
					xmlAttr* _tmp3_ = NULL;
					xmlAttr* _tmp4_ = NULL;
					_tmp3_ = prop;
					_tmp4_ = _tmp3_->next;
					prop = _tmp4_;
				}
				_tmp2_ = FALSE;
				_tmp5_ = prop;
				if (!(_tmp5_ != NULL)) {
					break;
				}
				_tmp6_ = prop;
				_tmp7_ = _tmp6_->type;
				if (_tmp7_ == XML_ATTRIBUTE_NODE) {
					xmlAttr* _tmp8_ = NULL;
					const gchar* _tmp9_ = NULL;
					xmlAttr* _tmp10_ = NULL;
					gchar* _tmp11_ = NULL;
					GValue _tmp12_ = {0};
					_tmp8_ = prop;
					_tmp9_ = _tmp8_->name;
					_tmp10_ = prop;
					_tmp11_ = wixl_wix_element_get_attribute_content (self, _tmp10_);
					g_value_init (&_tmp12_, G_TYPE_STRING);
					g_value_take_string (&_tmp12_, _tmp11_);
					g_object_set_property ((GObject*) self, _tmp9_, &_tmp12_);
					G_IS_VALUE (&_tmp12_) ? (g_value_unset (&_tmp12_), NULL) : NULL;
				}
			}
		}
	}
}


static void wixl_wix_element_real_load (WixlWixElement* self, xmlNode* node, GError** error) {
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_ = NULL;
	xmlNode* _tmp12_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
	if (_tmp1_ != NULL) {
		xmlNode* _tmp2_ = NULL;
		const gchar* _tmp3_ = NULL;
		const gchar* _tmp4_ = NULL;
		_tmp2_ = node;
		_tmp3_ = _tmp2_->name;
		_tmp4_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp0_ = g_strcmp0 (_tmp3_, _tmp4_) != 0;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		const gchar* _tmp5_ = NULL;
		xmlNode* _tmp6_ = NULL;
		const gchar* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		GError* _tmp10_ = NULL;
		GError* _tmp11_ = NULL;
		_tmp5_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp6_ = node;
		_tmp7_ = _tmp6_->name;
		_tmp8_ = g_strdup_printf ("%s: invalid node %s", _tmp5_, _tmp7_);
		_tmp9_ = _tmp8_;
		_tmp10_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, _tmp9_);
		_tmp11_ = _tmp10_;
		_g_free0 (_tmp9_);
		_inner_error_ = _tmp11_;
		if (_inner_error_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	_tmp12_ = node;
	wixl_wix_element_load_properties_from_node (self, _tmp12_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		if (_inner_error_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	{
		xmlNode* child = NULL;
		xmlNode* _tmp13_ = NULL;
		xmlNode* _tmp14_ = NULL;
		_tmp13_ = node;
		_tmp14_ = _tmp13_->children;
		child = _tmp14_;
		{
			gboolean _tmp15_ = FALSE;
			_tmp15_ = TRUE;
			while (TRUE) {
				xmlNode* _tmp18_ = NULL;
				xmlNode* _tmp19_ = NULL;
				xmlElementType _tmp20_ = 0;
				const gchar* _tmp37_ = NULL;
				xmlNode* _tmp38_ = NULL;
				const gchar* _tmp39_ = NULL;
				if (!_tmp15_) {
					xmlNode* _tmp16_ = NULL;
					xmlNode* _tmp17_ = NULL;
					_tmp16_ = child;
					_tmp17_ = _tmp16_->next;
					child = _tmp17_;
				}
				_tmp15_ = FALSE;
				_tmp18_ = child;
				if (!(_tmp18_ != NULL)) {
					break;
				}
				_tmp19_ = child;
				_tmp20_ = _tmp19_->type;
				switch (_tmp20_) {
					case XML_COMMENT_NODE:
					{
						continue;
					}
					case XML_TEXT_NODE:
					{
						xmlNode* _tmp21_ = NULL;
						const gchar* _tmp22_ = NULL;
						WixlWixText* _tmp23_ = NULL;
						WixlWixText* _tmp24_ = NULL;
						_tmp21_ = child;
						_tmp22_ = _tmp21_->content;
						_tmp23_ = wixl_wix_text_new (_tmp22_);
						_tmp24_ = _tmp23_;
						wixl_wix_element_add_child (self, (WixlWixNode*) _tmp24_);
						_g_object_unref0 (_tmp24_);
						continue;
					}
					case XML_ELEMENT_NODE:
					{
						GType t = 0UL;
						GHashTable* _tmp25_ = NULL;
						xmlNode* _tmp26_ = NULL;
						const gchar* _tmp27_ = NULL;
						gconstpointer _tmp28_ = NULL;
						GType _tmp29_ = 0UL;
						_tmp25_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->child_types;
						_tmp26_ = child;
						_tmp27_ = _tmp26_->name;
						_tmp28_ = g_hash_table_lookup (_tmp25_, _tmp27_);
						t = (GType) ((gintptr) _tmp28_);
						_tmp29_ = t;
						if (_tmp29_ != ((GType) 0)) {
							WixlWixElement* elem = NULL;
							GType _tmp30_ = 0UL;
							GObject* _tmp31_ = NULL;
							GObject* _tmp32_ = NULL;
							WixlWixElement* _tmp33_ = NULL;
							WixlWixElement* _tmp34_ = NULL;
							xmlNode* _tmp35_ = NULL;
							WixlWixElement* _tmp36_ = NULL;
							_tmp30_ = t;
							_tmp31_ = g_object_new (_tmp30_, NULL);
							_tmp32_ = G_IS_INITIALLY_UNOWNED (_tmp31_) ? g_object_ref_sink (_tmp31_) : _tmp31_;
							_tmp33_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp32_) : NULL;
							if (_tmp33_ == NULL) {
								_g_object_unref0 (_tmp32_);
							}
							elem = _tmp33_;
							_tmp34_ = elem;
							_tmp35_ = child;
							wixl_wix_element_load (_tmp34_, _tmp35_, &_inner_error_);
							if (G_UNLIKELY (_inner_error_ != NULL)) {
								if (_inner_error_->domain == WIXL_ERROR) {
									g_propagate_error (error, _inner_error_);
									_g_object_unref0 (elem);
									return;
								} else {
									_g_object_unref0 (elem);
									g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
									g_clear_error (&_inner_error_);
									return;
								}
							}
							_tmp36_ = elem;
							wixl_wix_element_add_child (self, (WixlWixNode*) _tmp36_);
							_g_object_unref0 (elem);
							continue;
						}
						break;
					}
					default:
					break;
				}
				_tmp37_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
				_tmp38_ = child;
				_tmp39_ = _tmp38_->name;
				g_error ("wix.vala:218: unhandled child %s node %s", _tmp37_, _tmp39_);
			}
		}
	}
}


void wixl_wix_element_load (WixlWixElement* self, xmlNode* node, GError** error) {
	g_return_if_fail (self != NULL);
	WIXL_WIX_ELEMENT_GET_CLASS (self)->load (self, node, error);
}


static gchar* wixl_wix_element_real_to_string (WixlWixNode* base) {
	WixlWixElement * self;
	gchar* result = NULL;
	GType type = 0UL;
	GType _tmp0_ = 0UL;
	GObjectClass* klass = NULL;
	GType _tmp1_ = 0UL;
	GTypeClass* _tmp2_ = NULL;
	gchar* str = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gint i = 0;
	GObjectClass* _tmp5_ = NULL;
	guint _tmp6_;
	GParamSpec** _tmp7_ = NULL;
	GList* _tmp36_ = NULL;
	guint _tmp37_ = 0U;
	self = (WixlWixElement*) base;
	_tmp0_ = G_TYPE_FROM_INSTANCE ((GObject*) self);
	type = _tmp0_;
	_tmp1_ = type;
	_tmp2_ = g_type_class_ref (_tmp1_);
	klass = (GObjectClass*) _tmp2_;
	_tmp3_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
	_tmp4_ = g_strconcat ("<", _tmp3_, NULL);
	str = _tmp4_;
	i = 0;
	_tmp5_ = klass;
	_tmp7_ = g_object_class_list_properties (_tmp5_, &_tmp6_);
	{
		GParamSpec** p_collection = NULL;
		gint p_collection_length1 = 0;
		gint _p_collection_size_ = 0;
		gint p_it = 0;
		p_collection = _tmp7_;
		p_collection_length1 = _tmp6_;
		for (p_it = 0; p_it < _tmp6_; p_it = p_it + 1) {
			GParamSpec* p = NULL;
			p = p_collection[p_it];
			{
				GParamSpec* _tmp8_ = NULL;
				GParamFlags _tmp9_ = 0;
				GValue value = {0};
				GParamSpec* _tmp10_ = NULL;
				GType _tmp11_ = 0UL;
				GValue _tmp12_ = {0};
				GParamSpec* _tmp13_ = NULL;
				const gchar* _tmp14_ = NULL;
				gchar* _tmp15_ = NULL;
				gboolean _tmp16_ = FALSE;
				gchar* valstr = NULL;
				gchar* _tmp20_ = NULL;
				const gchar* _tmp21_ = NULL;
				gint _tmp35_ = 0;
				_tmp8_ = p;
				_tmp9_ = _tmp8_->flags;
				if (!((_tmp9_ & G_PARAM_READABLE) == G_PARAM_READABLE)) {
					continue;
				}
				_tmp10_ = p;
				_tmp11_ = _tmp10_->value_type;
				g_value_init (&_tmp12_, _tmp11_);
				value = _tmp12_;
				_tmp13_ = p;
				_tmp14_ = _tmp13_->name;
				g_object_get_property ((GObject*) self, _tmp14_, &value);
				_tmp16_ = G_VALUE_HOLDS (&value, G_TYPE_STRING);
				if (_tmp16_) {
					GValue _tmp17_ = {0};
					gchar* _tmp18_ = NULL;
					_tmp17_ = value;
					_tmp18_ = g_strdup (g_value_get_string (&_tmp17_));
					_g_free0 (_tmp15_);
					_tmp15_ = _tmp18_;
				} else {
					gchar* _tmp19_ = NULL;
					_tmp19_ = g_strdup_value_contents (&value);
					_g_free0 (_tmp15_);
					_tmp15_ = _tmp19_;
				}
				_tmp20_ = g_strdup (_tmp15_);
				valstr = _tmp20_;
				_tmp21_ = valstr;
				if (_tmp21_ != NULL) {
					const gchar* _tmp22_ = NULL;
					GParamSpec* _tmp23_ = NULL;
					const gchar* _tmp24_ = NULL;
					gchar* _tmp25_ = NULL;
					gchar* _tmp26_ = NULL;
					gchar* _tmp27_ = NULL;
					gchar* _tmp28_ = NULL;
					const gchar* _tmp29_ = NULL;
					gchar* _tmp30_ = NULL;
					gchar* _tmp31_ = NULL;
					gchar* _tmp32_ = NULL;
					gchar* _tmp33_ = NULL;
					gchar* _tmp34_ = NULL;
					_tmp22_ = str;
					_tmp23_ = p;
					_tmp24_ = _tmp23_->name;
					_tmp25_ = g_strconcat (" ", _tmp24_, NULL);
					_tmp26_ = _tmp25_;
					_tmp27_ = g_strconcat (_tmp26_, "=\"", NULL);
					_tmp28_ = _tmp27_;
					_tmp29_ = valstr;
					_tmp30_ = g_strconcat (_tmp28_, _tmp29_, NULL);
					_tmp31_ = _tmp30_;
					_tmp32_ = g_strconcat (_tmp31_, "\"", NULL);
					_tmp33_ = _tmp32_;
					_tmp34_ = g_strconcat (_tmp22_, _tmp33_, NULL);
					_g_free0 (str);
					str = _tmp34_;
					_g_free0 (_tmp33_);
					_g_free0 (_tmp31_);
					_g_free0 (_tmp28_);
					_g_free0 (_tmp26_);
				}
				_tmp35_ = i;
				i = _tmp35_ + 1;
				_g_free0 (valstr);
				_g_free0 (_tmp15_);
				G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
			}
		}
		p_collection = (g_free (p_collection), NULL);
	}
	_tmp36_ = self->children;
	_tmp37_ = g_list_length (_tmp36_);
	if (_tmp37_ != ((guint) 0)) {
		const gchar* _tmp38_ = NULL;
		gchar* _tmp39_ = NULL;
		GList* _tmp40_ = NULL;
		const gchar* _tmp49_ = NULL;
		gchar* _tmp50_ = NULL;
		gchar* _tmp51_ = NULL;
		const gchar* _tmp52_ = NULL;
		gchar* _tmp53_ = NULL;
		gchar* _tmp54_ = NULL;
		gchar* _tmp55_ = NULL;
		gchar* _tmp56_ = NULL;
		_tmp38_ = str;
		_tmp39_ = g_strconcat (_tmp38_, ">\n", NULL);
		_g_free0 (str);
		str = _tmp39_;
		_tmp40_ = self->children;
		{
			GList* child_collection = NULL;
			GList* child_it = NULL;
			child_collection = _tmp40_;
			for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
				WixlWixNode* _tmp41_ = NULL;
				WixlWixNode* child = NULL;
				_tmp41_ = _g_object_ref0 ((WixlWixNode*) child_it->data);
				child = _tmp41_;
				{
					const gchar* _tmp42_ = NULL;
					WixlWixNode* _tmp43_ = NULL;
					gchar* _tmp44_ = NULL;
					gchar* _tmp45_ = NULL;
					gchar* _tmp46_ = NULL;
					gchar* _tmp47_ = NULL;
					gchar* _tmp48_ = NULL;
					_tmp42_ = str;
					_tmp43_ = child;
					_tmp44_ = wixl_wix_node_to_string (_tmp43_);
					_tmp45_ = _tmp44_;
					_tmp46_ = g_strconcat (_tmp45_, "\n", NULL);
					_tmp47_ = _tmp46_;
					_tmp48_ = g_strconcat (_tmp42_, _tmp47_, NULL);
					_g_free0 (str);
					str = _tmp48_;
					_g_free0 (_tmp47_);
					_g_free0 (_tmp45_);
					_g_object_unref0 (child);
				}
			}
		}
		_tmp49_ = str;
		_tmp50_ = g_strconcat (_tmp49_, "</", NULL);
		_tmp51_ = _tmp50_;
		_tmp52_ = WIXL_WIX_ELEMENT_CLASS (G_OBJECT_GET_CLASS (self))->name;
		_tmp53_ = g_strconcat (_tmp51_, _tmp52_, NULL);
		_tmp54_ = _tmp53_;
		_tmp55_ = g_strconcat (_tmp54_, ">", NULL);
		_tmp56_ = _tmp55_;
		_g_free0 (_tmp54_);
		_g_free0 (_tmp51_);
		result = _tmp56_;
		_g_free0 (str);
		_g_type_class_unref0 (klass);
		return result;
	} else {
		const gchar* _tmp57_ = NULL;
		gchar* _tmp58_ = NULL;
		_tmp57_ = str;
		_tmp58_ = g_strconcat (_tmp57_, "/>", NULL);
		result = _tmp58_;
		_g_free0 (str);
		_g_type_class_unref0 (klass);
		return result;
	}
	_g_free0 (str);
	_g_type_class_unref0 (klass);
}


static void wixl_wix_element_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixElement * self;
	GList* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixElement*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = self->children;
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp0_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			WixlWixNode* _tmp1_ = NULL;
			WixlWixNode* child = NULL;
			_tmp1_ = _g_object_ref0 ((WixlWixNode*) child_it->data);
			child = _tmp1_;
			{
				WixlWixNode* _tmp2_ = NULL;
				WixlWixNodeVisitor* _tmp3_ = NULL;
				_tmp2_ = child;
				_tmp3_ = visitor;
				wixl_wix_node_accept (_tmp2_, _tmp3_, &_inner_error_);
				if (G_UNLIKELY (_inner_error_ != NULL)) {
					g_propagate_error (error, _inner_error_);
					_g_object_unref0 (child);
					return;
				}
				_g_object_unref0 (child);
			}
		}
	}
}


WixlWixElement* wixl_wix_element_construct (GType object_type) {
	WixlWixElement * self = NULL;
	self = (WixlWixElement*) wixl_wix_node_construct (object_type);
	return self;
}


const gchar* wixl_wix_element_get_Id (WixlWixElement* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Id;
	result = _tmp0_;
	return result;
}


void wixl_wix_element_set_Id (WixlWixElement* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Id);
	self->priv->_Id = _tmp1_;
	g_object_notify ((GObject *) self, "Id");
}


static void _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void wixl_wix_element_base_init (WixlWixElementClass * klass) {
	GHashFunc _tmp0_ = NULL;
	GEqualFunc _tmp1_ = NULL;
	GHashTable* _tmp2_ = NULL;
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, NULL);
	WIXL_WIX_ELEMENT_CLASS (klass)->child_types = _tmp2_;
}


static void wixl_wix_element_class_init (WixlWixElementClass * klass) {
	wixl_wix_element_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixElementPrivate));
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_element_real_full_path;
	((WixlWixElementClass *) klass)->load = (void (*)(WixlWixElement*, xmlNode*, GError**)) wixl_wix_element_real_load;
	((WixlWixNodeClass *) klass)->to_string = (gchar* (*)(WixlWixNode*)) wixl_wix_element_real_to_string;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_element_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_element_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_element_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_element_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_ID, g_param_spec_string ("Id", "Id", "Id", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	klass->child_types = NULL;
}


static void wixl_wix_element_instance_init (WixlWixElement * self) {
	self->priv = WIXL_WIX_ELEMENT_GET_PRIVATE (self);
}


static void wixl_wix_element_finalize (GObject* obj) {
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	_g_free0 (self->priv->_Id);
	__g_list_free__g_object_unref0_0 (self->children);
	G_OBJECT_CLASS (wixl_wix_element_parent_class)->finalize (obj);
}


GType wixl_wix_element_get_type (void) {
	static volatile gsize wixl_wix_element_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_element_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixElementClass), (GBaseInitFunc) wixl_wix_element_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixElement), 0, (GInstanceInitFunc) wixl_wix_element_instance_init, NULL };
		GType wixl_wix_element_type_id;
		wixl_wix_element_type_id = g_type_register_static (WIXL_TYPE_WIX_NODE, "WixlWixElement", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_element_type_id__volatile, wixl_wix_element_type_id);
	}
	return wixl_wix_element_type_id__volatile;
}


static void _vala_wixl_wix_element_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_ID:
		g_value_set_string (value, wixl_wix_element_get_Id (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_element_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT, WixlWixElement);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_ID:
		wixl_wix_element_set_Id (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


WixlWixComponentGroup* wixl_wix_component_group_construct (GType object_type) {
	WixlWixComponentGroup * self = NULL;
	self = (WixlWixComponentGroup*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixComponentGroup* wixl_wix_component_group_new (void) {
	return wixl_wix_component_group_construct (WIXL_TYPE_WIX_COMPONENT_GROUP);
}


const gchar* wixl_wix_component_group_get_Directory (WixlWixComponentGroup* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}


void wixl_wix_component_group_set_Directory (WixlWixComponentGroup* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Directory);
	self->priv->_Directory = _tmp1_;
	g_object_notify ((GObject *) self, "Directory");
}


static void wixl_wix_component_group_class_init (WixlWixComponentGroupClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_component_group_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixComponentGroupPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_component_group_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_component_group_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_component_group_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_GROUP_DIRECTORY, g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ComponentGroup");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_COMPONENT;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_COMPONENT_GROUP_REF;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_component_group_instance_init (WixlWixComponentGroup * self) {
	self->priv = WIXL_WIX_COMPONENT_GROUP_GET_PRIVATE (self);
}


static void wixl_wix_component_group_finalize (GObject* obj) {
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	_g_free0 (self->priv->_Directory);
	G_OBJECT_CLASS (wixl_wix_component_group_parent_class)->finalize (obj);
}


GType wixl_wix_component_group_get_type (void) {
	static volatile gsize wixl_wix_component_group_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_group_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentGroup), 0, (GInstanceInitFunc) wixl_wix_component_group_instance_init, NULL };
		GType wixl_wix_component_group_type_id;
		wixl_wix_component_group_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixComponentGroup", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_group_type_id__volatile, wixl_wix_component_group_type_id);
	}
	return wixl_wix_component_group_type_id__volatile;
}


static void _vala_wixl_wix_component_group_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GROUP_DIRECTORY:
		g_value_set_string (value, wixl_wix_component_group_get_Directory (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_component_group_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixComponentGroup * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT_GROUP, WixlWixComponentGroup);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GROUP_DIRECTORY:
		wixl_wix_component_group_set_Directory (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_fragment_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixFragment * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixFragment*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_fragment_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_fragment (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixFragment* wixl_wix_fragment_construct (GType object_type) {
	WixlWixFragment * self = NULL;
	self = (WixlWixFragment*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixFragment* wixl_wix_fragment_new (void) {
	return wixl_wix_fragment_construct (WIXL_TYPE_WIX_FRAGMENT);
}


static void wixl_wix_fragment_class_init (WixlWixFragmentClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_fragment_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_fragment_real_accept;
	_tmp0_ = g_strdup ("Fragment");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_DIRECTORY_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_COMPONENT_GROUP;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_fragment_instance_init (WixlWixFragment * self) {
}


GType wixl_wix_fragment_get_type (void) {
	static volatile gsize wixl_wix_fragment_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_fragment_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFragmentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_fragment_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFragment), 0, (GInstanceInitFunc) wixl_wix_fragment_instance_init, NULL };
		GType wixl_wix_fragment_type_id;
		wixl_wix_fragment_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixFragment", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_fragment_type_id__volatile, wixl_wix_fragment_type_id);
	}
	return wixl_wix_fragment_type_id__volatile;
}


static void wixl_wix_registry_search_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixRegistrySearch * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixRegistrySearch*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_registry_search (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixRegistrySearch* wixl_wix_registry_search_construct (GType object_type) {
	WixlWixRegistrySearch * self = NULL;
	self = (WixlWixRegistrySearch*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixRegistrySearch* wixl_wix_registry_search_new (void) {
	return wixl_wix_registry_search_construct (WIXL_TYPE_WIX_REGISTRY_SEARCH);
}


const gchar* wixl_wix_registry_search_get_Root (WixlWixRegistrySearch* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_search_set_Root (WixlWixRegistrySearch* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Root);
	self->priv->_Root = _tmp1_;
	g_object_notify ((GObject *) self, "Root");
}


const gchar* wixl_wix_registry_search_get_Key (WixlWixRegistrySearch* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_search_set_Key (WixlWixRegistrySearch* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Key);
	self->priv->_Key = _tmp1_;
	g_object_notify ((GObject *) self, "Key");
}


const gchar* wixl_wix_registry_search_get_Type (WixlWixRegistrySearch* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_search_set_Type (WixlWixRegistrySearch* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Type);
	self->priv->_Type = _tmp1_;
	g_object_notify ((GObject *) self, "Type");
}


const gchar* wixl_wix_registry_search_get_Name (WixlWixRegistrySearch* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_search_set_Name (WixlWixRegistrySearch* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


const gchar* wixl_wix_registry_search_get_Win64 (WixlWixRegistrySearch* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Win64;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_search_set_Win64 (WixlWixRegistrySearch* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Win64);
	self->priv->_Win64 = _tmp1_;
	g_object_notify ((GObject *) self, "Win64");
}


static void wixl_wix_registry_search_class_init (WixlWixRegistrySearchClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_registry_search_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixRegistrySearchPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_registry_search_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_search_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_search_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_search_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_ROOT, g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_KEY, g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_TYPE, g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_SEARCH_WIN64, g_param_spec_string ("Win64", "Win64", "Win64", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistrySearch");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_registry_search_instance_init (WixlWixRegistrySearch * self) {
	self->priv = WIXL_WIX_REGISTRY_SEARCH_GET_PRIVATE (self);
}


static void wixl_wix_registry_search_finalize (GObject* obj) {
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	_g_free0 (self->priv->_Root);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_Win64);
	G_OBJECT_CLASS (wixl_wix_registry_search_parent_class)->finalize (obj);
}


GType wixl_wix_registry_search_get_type (void) {
	static volatile gsize wixl_wix_registry_search_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_search_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistrySearchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_search_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistrySearch), 0, (GInstanceInitFunc) wixl_wix_registry_search_instance_init, NULL };
		GType wixl_wix_registry_search_type_id;
		wixl_wix_registry_search_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRegistrySearch", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_registry_search_type_id__volatile, wixl_wix_registry_search_type_id);
	}
	return wixl_wix_registry_search_type_id__volatile;
}


static void _vala_wixl_wix_registry_search_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_SEARCH_ROOT:
		g_value_set_string (value, wixl_wix_registry_search_get_Root (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_KEY:
		g_value_set_string (value, wixl_wix_registry_search_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_TYPE:
		g_value_set_string (value, wixl_wix_registry_search_get_Type (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_NAME:
		g_value_set_string (value, wixl_wix_registry_search_get_Name (self));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_WIN64:
		g_value_set_string (value, wixl_wix_registry_search_get_Win64 (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_registry_search_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixRegistrySearch * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_SEARCH, WixlWixRegistrySearch);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_SEARCH_ROOT:
		wixl_wix_registry_search_set_Root (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_KEY:
		wixl_wix_registry_search_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_TYPE:
		wixl_wix_registry_search_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_NAME:
		wixl_wix_registry_search_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_SEARCH_WIN64:
		wixl_wix_registry_search_set_Win64 (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_property_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixProperty * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixProperty*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_property_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_property (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixProperty* wixl_wix_property_construct (GType object_type) {
	WixlWixProperty * self = NULL;
	self = (WixlWixProperty*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixProperty* wixl_wix_property_new (void) {
	return wixl_wix_property_construct (WIXL_TYPE_WIX_PROPERTY);
}


const gchar* wixl_wix_property_get_Value (WixlWixProperty* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Value;
	result = _tmp0_;
	return result;
}


void wixl_wix_property_set_Value (WixlWixProperty* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Value);
	self->priv->_Value = _tmp1_;
	g_object_notify ((GObject *) self, "Value");
}


static void wixl_wix_property_class_init (WixlWixPropertyClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_property_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixPropertyPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_property_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_property_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_property_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_property_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PROPERTY_VALUE, g_param_spec_string ("Value", "Value", "Value", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Property");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_REGISTRY_SEARCH;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_property_instance_init (WixlWixProperty * self) {
	self->priv = WIXL_WIX_PROPERTY_GET_PRIVATE (self);
}


static void wixl_wix_property_finalize (GObject* obj) {
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	_g_free0 (self->priv->_Value);
	G_OBJECT_CLASS (wixl_wix_property_parent_class)->finalize (obj);
}


GType wixl_wix_property_get_type (void) {
	static volatile gsize wixl_wix_property_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_property_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixPropertyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_property_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProperty), 0, (GInstanceInitFunc) wixl_wix_property_instance_init, NULL };
		GType wixl_wix_property_type_id;
		wixl_wix_property_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProperty", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_property_type_id__volatile, wixl_wix_property_type_id);
	}
	return wixl_wix_property_type_id__volatile;
}


static void _vala_wixl_wix_property_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	switch (property_id) {
		case WIXL_WIX_PROPERTY_VALUE:
		g_value_set_string (value, wixl_wix_property_get_Value (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_property_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixProperty * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROPERTY, WixlWixProperty);
	switch (property_id) {
		case WIXL_WIX_PROPERTY_VALUE:
		wixl_wix_property_set_Value (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_package_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixPackage * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixPackage*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_package_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_package (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixPackage* wixl_wix_package_construct (GType object_type) {
	WixlWixPackage * self = NULL;
	self = (WixlWixPackage*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixPackage* wixl_wix_package_new (void) {
	return wixl_wix_package_construct (WIXL_TYPE_WIX_PACKAGE);
}


const gchar* wixl_wix_package_get_Keywords (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Keywords;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Keywords (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Keywords);
	self->priv->_Keywords = _tmp1_;
	g_object_notify ((GObject *) self, "Keywords");
}


const gchar* wixl_wix_package_get_InstallerDescription (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerDescription;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_InstallerDescription (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_InstallerDescription);
	self->priv->_InstallerDescription = _tmp1_;
	g_object_notify ((GObject *) self, "InstallerDescription");
}


const gchar* wixl_wix_package_get_InstallerComments (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerComments;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_InstallerComments (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_InstallerComments);
	self->priv->_InstallerComments = _tmp1_;
	g_object_notify ((GObject *) self, "InstallerComments");
}


const gchar* wixl_wix_package_get_Manufacturer (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Manufacturer;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Manufacturer (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Manufacturer);
	self->priv->_Manufacturer = _tmp1_;
	g_object_notify ((GObject *) self, "Manufacturer");
}


const gchar* wixl_wix_package_get_InstallerVersion (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallerVersion;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_InstallerVersion (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_InstallerVersion);
	self->priv->_InstallerVersion = _tmp1_;
	g_object_notify ((GObject *) self, "InstallerVersion");
}


const gchar* wixl_wix_package_get_Languages (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Languages;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Languages (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Languages);
	self->priv->_Languages = _tmp1_;
	g_object_notify ((GObject *) self, "Languages");
}


const gchar* wixl_wix_package_get_Compressed (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Compressed;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Compressed (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Compressed);
	self->priv->_Compressed = _tmp1_;
	g_object_notify ((GObject *) self, "Compressed");
}


const gchar* wixl_wix_package_get_SummaryCodepage (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SummaryCodepage;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_SummaryCodepage (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_SummaryCodepage);
	self->priv->_SummaryCodepage = _tmp1_;
	g_object_notify ((GObject *) self, "SummaryCodepage");
}


const gchar* wixl_wix_package_get_Comments (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Comments;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Comments (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Comments);
	self->priv->_Comments = _tmp1_;
	g_object_notify ((GObject *) self, "Comments");
}


const gchar* wixl_wix_package_get_Description (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_Description (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Description);
	self->priv->_Description = _tmp1_;
	g_object_notify ((GObject *) self, "Description");
}


const gchar* wixl_wix_package_get_InstallScope (WixlWixPackage* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_InstallScope;
	result = _tmp0_;
	return result;
}


void wixl_wix_package_set_InstallScope (WixlWixPackage* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_InstallScope);
	self->priv->_InstallScope = _tmp1_;
	g_object_notify ((GObject *) self, "InstallScope");
}


static void wixl_wix_package_class_init (WixlWixPackageClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_package_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixPackagePrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_package_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_package_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_package_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_package_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_KEYWORDS, g_param_spec_string ("Keywords", "Keywords", "Keywords", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION, g_param_spec_string ("InstallerDescription", "InstallerDescription", "InstallerDescription", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_COMMENTS, g_param_spec_string ("InstallerComments", "InstallerComments", "InstallerComments", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_MANUFACTURER, g_param_spec_string ("Manufacturer", "Manufacturer", "Manufacturer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALLER_VERSION, g_param_spec_string ("InstallerVersion", "InstallerVersion", "InstallerVersion", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_LANGUAGES, g_param_spec_string ("Languages", "Languages", "Languages", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_COMPRESSED, g_param_spec_string ("Compressed", "Compressed", "Compressed", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE, g_param_spec_string ("SummaryCodepage", "SummaryCodepage", "SummaryCodepage", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_COMMENTS, g_param_spec_string ("Comments", "Comments", "Comments", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_DESCRIPTION, g_param_spec_string ("Description", "Description", "Description", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PACKAGE_INSTALL_SCOPE, g_param_spec_string ("InstallScope", "InstallScope", "InstallScope", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Package");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_package_instance_init (WixlWixPackage * self) {
	self->priv = WIXL_WIX_PACKAGE_GET_PRIVATE (self);
}


static void wixl_wix_package_finalize (GObject* obj) {
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	_g_free0 (self->priv->_Keywords);
	_g_free0 (self->priv->_InstallerDescription);
	_g_free0 (self->priv->_InstallerComments);
	_g_free0 (self->priv->_Manufacturer);
	_g_free0 (self->priv->_InstallerVersion);
	_g_free0 (self->priv->_Languages);
	_g_free0 (self->priv->_Compressed);
	_g_free0 (self->priv->_SummaryCodepage);
	_g_free0 (self->priv->_Comments);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_InstallScope);
	G_OBJECT_CLASS (wixl_wix_package_parent_class)->finalize (obj);
}


GType wixl_wix_package_get_type (void) {
	static volatile gsize wixl_wix_package_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_package_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixPackageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_package_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixPackage), 0, (GInstanceInitFunc) wixl_wix_package_instance_init, NULL };
		GType wixl_wix_package_type_id;
		wixl_wix_package_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixPackage", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_package_type_id__volatile, wixl_wix_package_type_id);
	}
	return wixl_wix_package_type_id__volatile;
}


static void _vala_wixl_wix_package_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	switch (property_id) {
		case WIXL_WIX_PACKAGE_KEYWORDS:
		g_value_set_string (value, wixl_wix_package_get_Keywords (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION:
		g_value_set_string (value, wixl_wix_package_get_InstallerDescription (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_COMMENTS:
		g_value_set_string (value, wixl_wix_package_get_InstallerComments (self));
		break;
		case WIXL_WIX_PACKAGE_MANUFACTURER:
		g_value_set_string (value, wixl_wix_package_get_Manufacturer (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_VERSION:
		g_value_set_string (value, wixl_wix_package_get_InstallerVersion (self));
		break;
		case WIXL_WIX_PACKAGE_LANGUAGES:
		g_value_set_string (value, wixl_wix_package_get_Languages (self));
		break;
		case WIXL_WIX_PACKAGE_COMPRESSED:
		g_value_set_string (value, wixl_wix_package_get_Compressed (self));
		break;
		case WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE:
		g_value_set_string (value, wixl_wix_package_get_SummaryCodepage (self));
		break;
		case WIXL_WIX_PACKAGE_COMMENTS:
		g_value_set_string (value, wixl_wix_package_get_Comments (self));
		break;
		case WIXL_WIX_PACKAGE_DESCRIPTION:
		g_value_set_string (value, wixl_wix_package_get_Description (self));
		break;
		case WIXL_WIX_PACKAGE_INSTALL_SCOPE:
		g_value_set_string (value, wixl_wix_package_get_InstallScope (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_package_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixPackage * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PACKAGE, WixlWixPackage);
	switch (property_id) {
		case WIXL_WIX_PACKAGE_KEYWORDS:
		wixl_wix_package_set_Keywords (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_DESCRIPTION:
		wixl_wix_package_set_InstallerDescription (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_COMMENTS:
		wixl_wix_package_set_InstallerComments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_MANUFACTURER:
		wixl_wix_package_set_Manufacturer (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALLER_VERSION:
		wixl_wix_package_set_InstallerVersion (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_LANGUAGES:
		wixl_wix_package_set_Languages (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_COMPRESSED:
		wixl_wix_package_set_Compressed (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_SUMMARY_CODEPAGE:
		wixl_wix_package_set_SummaryCodepage (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_COMMENTS:
		wixl_wix_package_set_Comments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_DESCRIPTION:
		wixl_wix_package_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PACKAGE_INSTALL_SCOPE:
		wixl_wix_package_set_InstallScope (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_create_folder_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixCreateFolder * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixCreateFolder*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_create_folder (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixCreateFolder* wixl_wix_create_folder_construct (GType object_type) {
	WixlWixCreateFolder * self = NULL;
	self = (WixlWixCreateFolder*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixCreateFolder* wixl_wix_create_folder_new (void) {
	return wixl_wix_create_folder_construct (WIXL_TYPE_WIX_CREATE_FOLDER);
}


const gchar* wixl_wix_create_folder_get_Directory (WixlWixCreateFolder* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}


void wixl_wix_create_folder_set_Directory (WixlWixCreateFolder* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Directory);
	self->priv->_Directory = _tmp1_;
	g_object_notify ((GObject *) self, "Directory");
}


static void wixl_wix_create_folder_class_init (WixlWixCreateFolderClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_create_folder_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixCreateFolderPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_create_folder_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_create_folder_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_create_folder_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_create_folder_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CREATE_FOLDER_DIRECTORY, g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("CreateFolder");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_create_folder_instance_init (WixlWixCreateFolder * self) {
	self->priv = WIXL_WIX_CREATE_FOLDER_GET_PRIVATE (self);
}


static void wixl_wix_create_folder_finalize (GObject* obj) {
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	_g_free0 (self->priv->_Directory);
	G_OBJECT_CLASS (wixl_wix_create_folder_parent_class)->finalize (obj);
}


GType wixl_wix_create_folder_get_type (void) {
	static volatile gsize wixl_wix_create_folder_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_create_folder_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixCreateFolderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_create_folder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCreateFolder), 0, (GInstanceInitFunc) wixl_wix_create_folder_instance_init, NULL };
		GType wixl_wix_create_folder_type_id;
		wixl_wix_create_folder_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCreateFolder", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_create_folder_type_id__volatile, wixl_wix_create_folder_type_id);
	}
	return wixl_wix_create_folder_type_id__volatile;
}


static void _vala_wixl_wix_create_folder_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	switch (property_id) {
		case WIXL_WIX_CREATE_FOLDER_DIRECTORY:
		g_value_set_string (value, wixl_wix_create_folder_get_Directory (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_create_folder_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixCreateFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CREATE_FOLDER, WixlWixCreateFolder);
	switch (property_id) {
		case WIXL_WIX_CREATE_FOLDER_DIRECTORY:
		wixl_wix_create_folder_set_Directory (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_icon_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixIcon * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixIcon*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_icon (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixIcon* wixl_wix_icon_construct (GType object_type) {
	WixlWixIcon * self = NULL;
	self = (WixlWixIcon*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixIcon* wixl_wix_icon_new (void) {
	return wixl_wix_icon_construct (WIXL_TYPE_WIX_ICON);
}


const gchar* wixl_wix_icon_get_SourceFile (WixlWixIcon* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SourceFile;
	result = _tmp0_;
	return result;
}


void wixl_wix_icon_set_SourceFile (WixlWixIcon* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_SourceFile);
	self->priv->_SourceFile = _tmp1_;
	g_object_notify ((GObject *) self, "SourceFile");
}


static void wixl_wix_icon_class_init (WixlWixIconClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_icon_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixIconPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_icon_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_icon_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_icon_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_icon_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ICON_SOURCE_FILE, g_param_spec_string ("SourceFile", "SourceFile", "SourceFile", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Icon");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_icon_instance_init (WixlWixIcon * self) {
	self->priv = WIXL_WIX_ICON_GET_PRIVATE (self);
}


static void wixl_wix_icon_finalize (GObject* obj) {
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	_g_free0 (self->priv->_SourceFile);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_icon_parent_class)->finalize (obj);
}


GType wixl_wix_icon_get_type (void) {
	static volatile gsize wixl_wix_icon_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_icon_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixIconClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_icon_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixIcon), 0, (GInstanceInitFunc) wixl_wix_icon_instance_init, NULL };
		GType wixl_wix_icon_type_id;
		wixl_wix_icon_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixIcon", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_icon_type_id__volatile, wixl_wix_icon_type_id);
	}
	return wixl_wix_icon_type_id__volatile;
}


static void _vala_wixl_wix_icon_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	switch (property_id) {
		case WIXL_WIX_ICON_SOURCE_FILE:
		g_value_set_string (value, wixl_wix_icon_get_SourceFile (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_icon_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixIcon * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ICON, WixlWixIcon);
	switch (property_id) {
		case WIXL_WIX_ICON_SOURCE_FILE:
		wixl_wix_icon_set_SourceFile (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


WixlWixComponent* wixl_wix_shortcut_get_component (WixlWixShortcut* self) {
	WixlWixComponent* result = NULL;
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, WIXL_TYPE_WIX_FILE)) {
		_tmp0_ = TRUE;
	} else {
		WixlWixElement* _tmp2_ = NULL;
		_tmp2_ = ((WixlWixNode*) self)->parent;
		_tmp0_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, WIXL_TYPE_WIX_CREATE_FOLDER);
	}
	if (_tmp0_) {
		WixlWixElement* _tmp3_ = NULL;
		WixlWixElement* _tmp4_ = NULL;
		WixlWixComponent* _tmp5_ = NULL;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		_tmp4_ = ((WixlWixNode*) _tmp3_)->parent;
		_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_COMPONENT) ? ((WixlWixComponent*) _tmp4_) : NULL);
		result = _tmp5_;
		return result;
	} else {
		WixlWixElement* _tmp6_ = NULL;
		WixlWixComponent* _tmp7_ = NULL;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, WIXL_TYPE_WIX_COMPONENT) ? ((WixlWixComponent*) _tmp6_) : NULL);
		result = _tmp7_;
		return result;
	}
}


static void wixl_wix_shortcut_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixShortcut * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixShortcut*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_shortcut (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixShortcut* wixl_wix_shortcut_construct (GType object_type) {
	WixlWixShortcut * self = NULL;
	self = (WixlWixShortcut*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixShortcut* wixl_wix_shortcut_new (void) {
	return wixl_wix_shortcut_construct (WIXL_TYPE_WIX_SHORTCUT);
}


const gchar* wixl_wix_shortcut_get_Directory (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Directory;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Directory (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Directory);
	self->priv->_Directory = _tmp1_;
	g_object_notify ((GObject *) self, "Directory");
}


const gchar* wixl_wix_shortcut_get_Name (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Name (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


const gchar* wixl_wix_shortcut_get_IconIndex (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IconIndex;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_IconIndex (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_IconIndex);
	self->priv->_IconIndex = _tmp1_;
	g_object_notify ((GObject *) self, "IconIndex");
}


const gchar* wixl_wix_shortcut_get_WorkingDirectory (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_WorkingDirectory;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_WorkingDirectory (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_WorkingDirectory);
	self->priv->_WorkingDirectory = _tmp1_;
	g_object_notify ((GObject *) self, "WorkingDirectory");
}


const gchar* wixl_wix_shortcut_get_Icon (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Icon;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Icon (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Icon);
	self->priv->_Icon = _tmp1_;
	g_object_notify ((GObject *) self, "Icon");
}


const gchar* wixl_wix_shortcut_get_Advertise (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Advertise (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Advertise);
	self->priv->_Advertise = _tmp1_;
	g_object_notify ((GObject *) self, "Advertise");
}


const gchar* wixl_wix_shortcut_get_Description (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Description (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Description);
	self->priv->_Description = _tmp1_;
	g_object_notify ((GObject *) self, "Description");
}


const gchar* wixl_wix_shortcut_get_Target (WixlWixShortcut* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Target;
	result = _tmp0_;
	return result;
}


void wixl_wix_shortcut_set_Target (WixlWixShortcut* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Target);
	self->priv->_Target = _tmp1_;
	g_object_notify ((GObject *) self, "Target");
}


static void wixl_wix_shortcut_class_init (WixlWixShortcutClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_shortcut_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixShortcutPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_shortcut_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_shortcut_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_shortcut_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_shortcut_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_DIRECTORY, g_param_spec_string ("Directory", "Directory", "Directory", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ICON_INDEX, g_param_spec_string ("IconIndex", "IconIndex", "IconIndex", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_WORKING_DIRECTORY, g_param_spec_string ("WorkingDirectory", "WorkingDirectory", "WorkingDirectory", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ICON, g_param_spec_string ("Icon", "Icon", "Icon", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_ADVERTISE, g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_DESCRIPTION, g_param_spec_string ("Description", "Description", "Description", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SHORTCUT_TARGET, g_param_spec_string ("Target", "Target", "Target", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Shortcut");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_shortcut_instance_init (WixlWixShortcut * self) {
	self->priv = WIXL_WIX_SHORTCUT_GET_PRIVATE (self);
}


static void wixl_wix_shortcut_finalize (GObject* obj) {
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	_g_free0 (self->priv->_Directory);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_IconIndex);
	_g_free0 (self->priv->_WorkingDirectory);
	_g_free0 (self->priv->_Icon);
	_g_free0 (self->priv->_Advertise);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Target);
	_g_object_unref0 (self->record);
	G_OBJECT_CLASS (wixl_wix_shortcut_parent_class)->finalize (obj);
}


GType wixl_wix_shortcut_get_type (void) {
	static volatile gsize wixl_wix_shortcut_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_shortcut_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixShortcutClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_shortcut_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixShortcut), 0, (GInstanceInitFunc) wixl_wix_shortcut_instance_init, NULL };
		GType wixl_wix_shortcut_type_id;
		wixl_wix_shortcut_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixShortcut", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_shortcut_type_id__volatile, wixl_wix_shortcut_type_id);
	}
	return wixl_wix_shortcut_type_id__volatile;
}


static void _vala_wixl_wix_shortcut_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	switch (property_id) {
		case WIXL_WIX_SHORTCUT_DIRECTORY:
		g_value_set_string (value, wixl_wix_shortcut_get_Directory (self));
		break;
		case WIXL_WIX_SHORTCUT_NAME:
		g_value_set_string (value, wixl_wix_shortcut_get_Name (self));
		break;
		case WIXL_WIX_SHORTCUT_ICON_INDEX:
		g_value_set_string (value, wixl_wix_shortcut_get_IconIndex (self));
		break;
		case WIXL_WIX_SHORTCUT_WORKING_DIRECTORY:
		g_value_set_string (value, wixl_wix_shortcut_get_WorkingDirectory (self));
		break;
		case WIXL_WIX_SHORTCUT_ICON:
		g_value_set_string (value, wixl_wix_shortcut_get_Icon (self));
		break;
		case WIXL_WIX_SHORTCUT_ADVERTISE:
		g_value_set_string (value, wixl_wix_shortcut_get_Advertise (self));
		break;
		case WIXL_WIX_SHORTCUT_DESCRIPTION:
		g_value_set_string (value, wixl_wix_shortcut_get_Description (self));
		break;
		case WIXL_WIX_SHORTCUT_TARGET:
		g_value_set_string (value, wixl_wix_shortcut_get_Target (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_shortcut_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixShortcut * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SHORTCUT, WixlWixShortcut);
	switch (property_id) {
		case WIXL_WIX_SHORTCUT_DIRECTORY:
		wixl_wix_shortcut_set_Directory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_NAME:
		wixl_wix_shortcut_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ICON_INDEX:
		wixl_wix_shortcut_set_IconIndex (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_WORKING_DIRECTORY:
		wixl_wix_shortcut_set_WorkingDirectory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ICON:
		wixl_wix_shortcut_set_Icon (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_ADVERTISE:
		wixl_wix_shortcut_set_Advertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_DESCRIPTION:
		wixl_wix_shortcut_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SHORTCUT_TARGET:
		wixl_wix_shortcut_set_Target (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_key_element_real_path_name (WixlWixKeyElement* self, GError** error) {
	gchar* result = NULL;
	GError* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	_tmp0_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, "this key path does not support generating a component GUID");
	_inner_error_ = _tmp0_;
	g_propagate_error (error, _inner_error_);
	return NULL;
	return result;
}


gchar* wixl_wix_key_element_path_name (WixlWixKeyElement* self, GError** error) {
	g_return_val_if_fail (self != NULL, NULL);
	return WIXL_WIX_KEY_ELEMENT_GET_CLASS (self)->path_name (self, error);
}


WixlWixKeyElement* wixl_wix_key_element_construct (GType object_type) {
	WixlWixKeyElement * self = NULL;
	self = (WixlWixKeyElement*) wixl_wix_element_construct (object_type);
	return self;
}


const gchar* wixl_wix_key_element_get_KeyPath (WixlWixKeyElement* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_KeyPath;
	result = _tmp0_;
	return result;
}


void wixl_wix_key_element_set_KeyPath (WixlWixKeyElement* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_KeyPath);
	self->priv->_KeyPath = _tmp1_;
	g_object_notify ((GObject *) self, "KeyPath");
}


static void wixl_wix_key_element_class_init (WixlWixKeyElementClass * klass) {
	wixl_wix_key_element_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixKeyElementPrivate));
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*)(WixlWixKeyElement*, GError**)) wixl_wix_key_element_real_path_name;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_key_element_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_key_element_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_key_element_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_KEY_ELEMENT_KEY_PATH, g_param_spec_string ("KeyPath", "KeyPath", "KeyPath", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void wixl_wix_key_element_instance_init (WixlWixKeyElement * self) {
	self->priv = WIXL_WIX_KEY_ELEMENT_GET_PRIVATE (self);
}


static void wixl_wix_key_element_finalize (GObject* obj) {
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	_g_free0 (self->priv->_KeyPath);
	G_OBJECT_CLASS (wixl_wix_key_element_parent_class)->finalize (obj);
}


GType wixl_wix_key_element_get_type (void) {
	static volatile gsize wixl_wix_key_element_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_key_element_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixKeyElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_key_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixKeyElement), 0, (GInstanceInitFunc) wixl_wix_key_element_instance_init, NULL };
		GType wixl_wix_key_element_type_id;
		wixl_wix_key_element_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixKeyElement", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&wixl_wix_key_element_type_id__volatile, wixl_wix_key_element_type_id);
	}
	return wixl_wix_key_element_type_id__volatile;
}


static void _vala_wixl_wix_key_element_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	switch (property_id) {
		case WIXL_WIX_KEY_ELEMENT_KEY_PATH:
		g_value_set_string (value, wixl_wix_key_element_get_KeyPath (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_key_element_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixKeyElement * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement);
	switch (property_id) {
		case WIXL_WIX_KEY_ELEMENT_KEY_PATH:
		wixl_wix_key_element_set_KeyPath (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_file_real_path_name (WixlWixKeyElement* base, GError** error) {
	WixlWixFile * self;
	gchar* result = NULL;
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp5_ = NULL;
	self = (WixlWixFile*) base;
	_tmp1_ = self->priv->_Name;
	_tmp2_ = g_strdup (_tmp1_);
	_tmp0_ = _tmp2_;
	if (_tmp0_ == NULL) {
		const gchar* _tmp3_ = NULL;
		gchar* _tmp4_ = NULL;
		_tmp3_ = self->priv->_Source;
		_tmp4_ = g_path_get_basename (_tmp3_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp4_;
	}
	_tmp5_ = _tmp0_;
	_tmp0_ = NULL;
	result = _tmp5_;
	_g_free0 (_tmp0_);
	return result;
}


static void wixl_wix_file_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixFile * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixFile*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_file_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_KEY_ELEMENT, WixlWixKeyElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_file (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixFile* wixl_wix_file_construct (GType object_type) {
	WixlWixFile * self = NULL;
	self = (WixlWixFile*) wixl_wix_key_element_construct (object_type);
	return self;
}


WixlWixFile* wixl_wix_file_new (void) {
	return wixl_wix_file_construct (WIXL_TYPE_WIX_FILE);
}


const gchar* wixl_wix_file_get_DiskId (WixlWixFile* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DiskId;
	result = _tmp0_;
	return result;
}


void wixl_wix_file_set_DiskId (WixlWixFile* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_DiskId);
	self->priv->_DiskId = _tmp1_;
	g_object_notify ((GObject *) self, "DiskId");
}


const gchar* wixl_wix_file_get_Source (WixlWixFile* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Source;
	result = _tmp0_;
	return result;
}


void wixl_wix_file_set_Source (WixlWixFile* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Source);
	self->priv->_Source = _tmp1_;
	g_object_notify ((GObject *) self, "Source");
}


const gchar* wixl_wix_file_get_Name (WixlWixFile* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_file_set_Name (WixlWixFile* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


static void wixl_wix_file_class_init (WixlWixFileClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_file_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixFilePrivate));
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*)(WixlWixKeyElement*, GError**)) wixl_wix_file_real_path_name;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_file_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_file_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_file_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_file_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_DISK_ID, g_param_spec_string ("DiskId", "DiskId", "DiskId", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_SOURCE, g_param_spec_string ("Source", "Source", "Source", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FILE_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("File");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SHORTCUT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_file_instance_init (WixlWixFile * self) {
	self->priv = WIXL_WIX_FILE_GET_PRIVATE (self);
}


static void wixl_wix_file_finalize (GObject* obj) {
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_FILE, WixlWixFile);
	_g_free0 (self->priv->_DiskId);
	_g_free0 (self->priv->_Source);
	_g_free0 (self->priv->_Name);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_file_parent_class)->finalize (obj);
}


GType wixl_wix_file_get_type (void) {
	static volatile gsize wixl_wix_file_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_file_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFile), 0, (GInstanceInitFunc) wixl_wix_file_instance_init, NULL };
		GType wixl_wix_file_type_id;
		wixl_wix_file_type_id = g_type_register_static (WIXL_TYPE_WIX_KEY_ELEMENT, "WixlWixFile", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_file_type_id__volatile, wixl_wix_file_type_id);
	}
	return wixl_wix_file_type_id__volatile;
}


static void _vala_wixl_wix_file_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FILE, WixlWixFile);
	switch (property_id) {
		case WIXL_WIX_FILE_DISK_ID:
		g_value_set_string (value, wixl_wix_file_get_DiskId (self));
		break;
		case WIXL_WIX_FILE_SOURCE:
		g_value_set_string (value, wixl_wix_file_get_Source (self));
		break;
		case WIXL_WIX_FILE_NAME:
		g_value_set_string (value, wixl_wix_file_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_file_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixFile * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FILE, WixlWixFile);
	switch (property_id) {
		case WIXL_WIX_FILE_DISK_ID:
		wixl_wix_file_set_DiskId (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FILE_SOURCE:
		wixl_wix_file_set_Source (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FILE_NAME:
		wixl_wix_file_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_registry_value_real_path_name (WixlWixKeyElement* base, GError** error) {
	WixlWixRegistryValue * self;
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	const gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	self = (WixlWixRegistryValue*) base;
	_tmp0_ = self->priv->_Root;
	_tmp1_ = g_strconcat (_tmp0_, "/", NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = self->priv->_Key;
	_tmp4_ = g_strconcat (_tmp2_, _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_g_free0 (_tmp2_);
	result = _tmp5_;
	return result;
}


static void wixl_wix_registry_value_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixRegistryValue * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixRegistryValue*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_registry_value (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixRegistryValue* wixl_wix_registry_value_construct (GType object_type) {
	WixlWixRegistryValue * self = NULL;
	self = (WixlWixRegistryValue*) wixl_wix_key_element_construct (object_type);
	return self;
}


WixlWixRegistryValue* wixl_wix_registry_value_new (void) {
	return wixl_wix_registry_value_construct (WIXL_TYPE_WIX_REGISTRY_VALUE);
}


const gchar* wixl_wix_registry_value_get_Root (WixlWixRegistryValue* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_value_set_Root (WixlWixRegistryValue* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Root);
	self->priv->_Root = _tmp1_;
	g_object_notify ((GObject *) self, "Root");
}


const gchar* wixl_wix_registry_value_get_Key (WixlWixRegistryValue* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_value_set_Key (WixlWixRegistryValue* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Key);
	self->priv->_Key = _tmp1_;
	g_object_notify ((GObject *) self, "Key");
}


const gchar* wixl_wix_registry_value_get_Type (WixlWixRegistryValue* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_value_set_Type (WixlWixRegistryValue* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Type);
	self->priv->_Type = _tmp1_;
	g_object_notify ((GObject *) self, "Type");
}


const gchar* wixl_wix_registry_value_get_Value (WixlWixRegistryValue* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Value;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_value_set_Value (WixlWixRegistryValue* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Value);
	self->priv->_Value = _tmp1_;
	g_object_notify ((GObject *) self, "Value");
}


const gchar* wixl_wix_registry_value_get_Name (WixlWixRegistryValue* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_value_set_Name (WixlWixRegistryValue* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


static void wixl_wix_registry_value_class_init (WixlWixRegistryValueClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_registry_value_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixRegistryValuePrivate));
	((WixlWixKeyElementClass *) klass)->path_name = (gchar* (*)(WixlWixKeyElement*, GError**)) wixl_wix_registry_value_real_path_name;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_registry_value_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_value_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_value_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_value_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_ROOT, g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_KEY, g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_TYPE, g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_VALUE, g_param_spec_string ("Value", "Value", "Value", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_VALUE_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistryValue");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_registry_value_instance_init (WixlWixRegistryValue * self) {
	self->priv = WIXL_WIX_REGISTRY_VALUE_GET_PRIVATE (self);
}


static void wixl_wix_registry_value_finalize (GObject* obj) {
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	_g_free0 (self->priv->_Root);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Value);
	_g_free0 (self->priv->_Name);
	G_OBJECT_CLASS (wixl_wix_registry_value_parent_class)->finalize (obj);
}


GType wixl_wix_registry_value_get_type (void) {
	static volatile gsize wixl_wix_registry_value_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_value_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistryValueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_value_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistryValue), 0, (GInstanceInitFunc) wixl_wix_registry_value_instance_init, NULL };
		GType wixl_wix_registry_value_type_id;
		wixl_wix_registry_value_type_id = g_type_register_static (WIXL_TYPE_WIX_KEY_ELEMENT, "WixlWixRegistryValue", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_registry_value_type_id__volatile, wixl_wix_registry_value_type_id);
	}
	return wixl_wix_registry_value_type_id__volatile;
}


static void _vala_wixl_wix_registry_value_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_VALUE_ROOT:
		g_value_set_string (value, wixl_wix_registry_value_get_Root (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_KEY:
		g_value_set_string (value, wixl_wix_registry_value_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_TYPE:
		g_value_set_string (value, wixl_wix_registry_value_get_Type (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_VALUE:
		g_value_set_string (value, wixl_wix_registry_value_get_Value (self));
		break;
		case WIXL_WIX_REGISTRY_VALUE_NAME:
		g_value_set_string (value, wixl_wix_registry_value_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_registry_value_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixRegistryValue * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_VALUE, WixlWixRegistryValue);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_VALUE_ROOT:
		wixl_wix_registry_value_set_Root (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_KEY:
		wixl_wix_registry_value_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_TYPE:
		wixl_wix_registry_value_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_VALUE:
		wixl_wix_registry_value_set_Value (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_VALUE_NAME:
		wixl_wix_registry_value_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_remove_folder_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixRemoveFolder * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixRemoveFolder*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_remove_folder (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixRemoveFolder* wixl_wix_remove_folder_construct (GType object_type) {
	WixlWixRemoveFolder * self = NULL;
	self = (WixlWixRemoveFolder*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixRemoveFolder* wixl_wix_remove_folder_new (void) {
	return wixl_wix_remove_folder_construct (WIXL_TYPE_WIX_REMOVE_FOLDER);
}


const gchar* wixl_wix_remove_folder_get_On (WixlWixRemoveFolder* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_On;
	result = _tmp0_;
	return result;
}


void wixl_wix_remove_folder_set_On (WixlWixRemoveFolder* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_On);
	self->priv->_On = _tmp1_;
	g_object_notify ((GObject *) self, "On");
}


static void wixl_wix_remove_folder_class_init (WixlWixRemoveFolderClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_remove_folder_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixRemoveFolderPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_remove_folder_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_remove_folder_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_remove_folder_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_remove_folder_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REMOVE_FOLDER_ON, g_param_spec_string ("On", "On", "On", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RemoveFolder");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_remove_folder_instance_init (WixlWixRemoveFolder * self) {
	self->priv = WIXL_WIX_REMOVE_FOLDER_GET_PRIVATE (self);
}


static void wixl_wix_remove_folder_finalize (GObject* obj) {
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	_g_free0 (self->priv->_On);
	G_OBJECT_CLASS (wixl_wix_remove_folder_parent_class)->finalize (obj);
}


GType wixl_wix_remove_folder_get_type (void) {
	static volatile gsize wixl_wix_remove_folder_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_remove_folder_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRemoveFolderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_remove_folder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRemoveFolder), 0, (GInstanceInitFunc) wixl_wix_remove_folder_instance_init, NULL };
		GType wixl_wix_remove_folder_type_id;
		wixl_wix_remove_folder_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRemoveFolder", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_remove_folder_type_id__volatile, wixl_wix_remove_folder_type_id);
	}
	return wixl_wix_remove_folder_type_id__volatile;
}


static void _vala_wixl_wix_remove_folder_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	switch (property_id) {
		case WIXL_WIX_REMOVE_FOLDER_ON:
		g_value_set_string (value, wixl_wix_remove_folder_get_On (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_remove_folder_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixRemoveFolder * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REMOVE_FOLDER, WixlWixRemoveFolder);
	switch (property_id) {
		case WIXL_WIX_REMOVE_FOLDER_ON:
		wixl_wix_remove_folder_set_On (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_feature_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixFeature * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	WixlWixNodeVisitor* _tmp2_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixFeature*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_feature (_tmp0_, self, WIXL_VISIT_STATE_ENTER, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_feature_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp1_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = visitor;
	wixl_wix_node_visitor_visit_feature (_tmp2_, self, WIXL_VISIT_STATE_LEAVE, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixFeature* wixl_wix_feature_construct (GType object_type) {
	WixlWixFeature * self = NULL;
	self = (WixlWixFeature*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixFeature* wixl_wix_feature_new (void) {
	return wixl_wix_feature_construct (WIXL_TYPE_WIX_FEATURE);
}


const gchar* wixl_wix_feature_get_Level (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Level;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_Level (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Level);
	self->priv->_Level = _tmp1_;
	g_object_notify ((GObject *) self, "Level");
}


const gchar* wixl_wix_feature_get_Title (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Title;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_Title (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Title);
	self->priv->_Title = _tmp1_;
	g_object_notify ((GObject *) self, "Title");
}


const gchar* wixl_wix_feature_get_Description (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_Description (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Description);
	self->priv->_Description = _tmp1_;
	g_object_notify ((GObject *) self, "Description");
}


const gchar* wixl_wix_feature_get_Display (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Display;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_Display (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Display);
	self->priv->_Display = _tmp1_;
	g_object_notify ((GObject *) self, "Display");
}


const gchar* wixl_wix_feature_get_ConfigurableDirectory (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ConfigurableDirectory;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_ConfigurableDirectory (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_ConfigurableDirectory);
	self->priv->_ConfigurableDirectory = _tmp1_;
	g_object_notify ((GObject *) self, "ConfigurableDirectory");
}


const gchar* wixl_wix_feature_get_AllowAdvertise (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_AllowAdvertise;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_AllowAdvertise (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_AllowAdvertise);
	self->priv->_AllowAdvertise = _tmp1_;
	g_object_notify ((GObject *) self, "AllowAdvertise");
}


const gchar* wixl_wix_feature_get_Absent (WixlWixFeature* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Absent;
	result = _tmp0_;
	return result;
}


void wixl_wix_feature_set_Absent (WixlWixFeature* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Absent);
	self->priv->_Absent = _tmp1_;
	g_object_notify ((GObject *) self, "Absent");
}


static void wixl_wix_feature_class_init (WixlWixFeatureClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_feature_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixFeaturePrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_feature_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_feature_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_feature_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_feature_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_LEVEL, g_param_spec_string ("Level", "Level", "Level", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_TITLE, g_param_spec_string ("Title", "Title", "Title", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_DESCRIPTION, g_param_spec_string ("Description", "Description", "Description", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_DISPLAY, g_param_spec_string ("Display", "Display", "Display", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY, g_param_spec_string ("ConfigurableDirectory", "ConfigurableDirectory", "ConfigurableDirectory", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_ALLOW_ADVERTISE, g_param_spec_string ("AllowAdvertise", "AllowAdvertise", "AllowAdvertise", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_FEATURE_ABSENT, g_param_spec_string ("Absent", "Absent", "Absent", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Feature");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 3);
	_tmp2_[0] = WIXL_TYPE_WIX_COMPONENT_REF;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT_GROUP_REF;
	_tmp2_[2] = WIXL_TYPE_WIX_FEATURE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 3;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 3);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_feature_instance_init (WixlWixFeature * self) {
	self->priv = WIXL_WIX_FEATURE_GET_PRIVATE (self);
}


static void wixl_wix_feature_finalize (GObject* obj) {
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	_g_free0 (self->priv->_Level);
	_g_free0 (self->priv->_Title);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Display);
	_g_free0 (self->priv->_ConfigurableDirectory);
	_g_free0 (self->priv->_AllowAdvertise);
	_g_free0 (self->priv->_Absent);
	G_OBJECT_CLASS (wixl_wix_feature_parent_class)->finalize (obj);
}


GType wixl_wix_feature_get_type (void) {
	static volatile gsize wixl_wix_feature_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_feature_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixFeatureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_feature_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixFeature), 0, (GInstanceInitFunc) wixl_wix_feature_instance_init, NULL };
		GType wixl_wix_feature_type_id;
		wixl_wix_feature_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixFeature", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_feature_type_id__volatile, wixl_wix_feature_type_id);
	}
	return wixl_wix_feature_type_id__volatile;
}


static void _vala_wixl_wix_feature_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	switch (property_id) {
		case WIXL_WIX_FEATURE_LEVEL:
		g_value_set_string (value, wixl_wix_feature_get_Level (self));
		break;
		case WIXL_WIX_FEATURE_TITLE:
		g_value_set_string (value, wixl_wix_feature_get_Title (self));
		break;
		case WIXL_WIX_FEATURE_DESCRIPTION:
		g_value_set_string (value, wixl_wix_feature_get_Description (self));
		break;
		case WIXL_WIX_FEATURE_DISPLAY:
		g_value_set_string (value, wixl_wix_feature_get_Display (self));
		break;
		case WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY:
		g_value_set_string (value, wixl_wix_feature_get_ConfigurableDirectory (self));
		break;
		case WIXL_WIX_FEATURE_ALLOW_ADVERTISE:
		g_value_set_string (value, wixl_wix_feature_get_AllowAdvertise (self));
		break;
		case WIXL_WIX_FEATURE_ABSENT:
		g_value_set_string (value, wixl_wix_feature_get_Absent (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_feature_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixFeature * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_FEATURE, WixlWixFeature);
	switch (property_id) {
		case WIXL_WIX_FEATURE_LEVEL:
		wixl_wix_feature_set_Level (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_TITLE:
		wixl_wix_feature_set_Title (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_DESCRIPTION:
		wixl_wix_feature_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_DISPLAY:
		wixl_wix_feature_set_Display (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_CONFIGURABLE_DIRECTORY:
		wixl_wix_feature_set_ConfigurableDirectory (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_ALLOW_ADVERTISE:
		wixl_wix_feature_set_AllowAdvertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_FEATURE_ABSENT:
		wixl_wix_feature_set_Absent (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_component_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixComponentRef * self;
	gchar* result = NULL;
	WixlWixComponent* _tmp0_ = NULL;
	WixlWixResolver* _tmp1_ = NULL;
	gpointer _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	WixlWixComponent* _tmp4_ = NULL;
	WixlWixElement* _tmp5_ = NULL;
	WixlWixElement* _tmp6_ = NULL;
	WixlWixResolver* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponentRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = r;
	_tmp2_ = wixl_wix_resolver_resolve (_tmp1_, WIXL_TYPE_WIX_COMPONENT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error_);
	_tmp0_ = (WixlWixComponent*) _tmp2_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp4_ = _tmp0_;
	_tmp0_ = NULL;
	_tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (_tmp4_);
	}
	_tmp6_ = _tmp5_;
	_tmp7_ = r;
	_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
	_tmp9_ = _tmp8_;
	_g_object_unref0 (_tmp6_);
	_tmp3_ = _tmp9_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp10_ = _tmp3_;
	_tmp3_ = NULL;
	result = _tmp10_;
	_g_free0 (_tmp3_);
	_g_object_unref0 (_tmp0_);
	return result;
}


static void wixl_wix_component_ref_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixComponentRef * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponentRef*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_component_ref (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixComponentRef* wixl_wix_component_ref_construct (GType object_type) {
	WixlWixComponentRef * self = NULL;
	self = (WixlWixComponentRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_COMPONENT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}


WixlWixComponentRef* wixl_wix_component_ref_new (void) {
	return wixl_wix_component_ref_construct (WIXL_TYPE_WIX_COMPONENT_REF);
}


static void wixl_wix_component_ref_class_init (WixlWixComponentRefClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_component_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_ref_real_full_path;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_ref_real_accept;
	_tmp0_ = g_strdup ("ComponentRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_COMPONENT;
}


static void wixl_wix_component_ref_instance_init (WixlWixComponentRef * self) {
}


GType wixl_wix_component_ref_get_type (void) {
	static volatile gsize wixl_wix_component_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentRef), 0, (GInstanceInitFunc) wixl_wix_component_ref_instance_init, NULL };
		GType wixl_wix_component_ref_type_id;
		wixl_wix_component_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixComponentRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_ref_type_id__volatile, wixl_wix_component_ref_type_id);
	}
	return wixl_wix_component_ref_type_id__volatile;
}


static gchar* wixl_wix_component_group_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixComponentGroupRef * self;
	gchar* result = NULL;
	WixlWixComponentGroup* _tmp0_ = NULL;
	WixlWixResolver* _tmp1_ = NULL;
	gpointer _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	WixlWixComponentGroup* _tmp4_ = NULL;
	WixlWixElement* _tmp5_ = NULL;
	WixlWixElement* _tmp6_ = NULL;
	WixlWixResolver* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponentGroupRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = r;
	_tmp2_ = wixl_wix_resolver_resolve (_tmp1_, WIXL_TYPE_WIX_COMPONENT_GROUP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error_);
	_tmp0_ = (WixlWixComponentGroup*) _tmp2_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp4_ = _tmp0_;
	_tmp0_ = NULL;
	_tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (_tmp4_);
	}
	_tmp6_ = _tmp5_;
	_tmp7_ = r;
	_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
	_tmp9_ = _tmp8_;
	_g_object_unref0 (_tmp6_);
	_tmp3_ = _tmp9_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp10_ = _tmp3_;
	_tmp3_ = NULL;
	result = _tmp10_;
	_g_free0 (_tmp3_);
	_g_object_unref0 (_tmp0_);
	return result;
}


static void wixl_wix_component_group_ref_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixComponentGroupRef * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponentGroupRef*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_component_group_ref (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixComponentGroupRef* wixl_wix_component_group_ref_construct (GType object_type) {
	WixlWixComponentGroupRef * self = NULL;
	self = (WixlWixComponentGroupRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_COMPONENT_GROUP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}


WixlWixComponentGroupRef* wixl_wix_component_group_ref_new (void) {
	return wixl_wix_component_group_ref_construct (WIXL_TYPE_WIX_COMPONENT_GROUP_REF);
}


static void wixl_wix_component_group_ref_class_init (WixlWixComponentGroupRefClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_component_group_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_group_ref_real_full_path;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_group_ref_real_accept;
	_tmp0_ = g_strdup ("ComponentGroupRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_COMPONENT_GROUP;
}


static void wixl_wix_component_group_ref_instance_init (WixlWixComponentGroupRef * self) {
}


GType wixl_wix_component_group_ref_get_type (void) {
	static volatile gsize wixl_wix_component_group_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_group_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentGroupRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_group_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponentGroupRef), 0, (GInstanceInitFunc) wixl_wix_component_group_ref_instance_init, NULL };
		GType wixl_wix_component_group_ref_type_id;
		wixl_wix_component_group_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixComponentGroupRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_group_ref_type_id__volatile, wixl_wix_component_group_ref_type_id);
	}
	return wixl_wix_component_group_ref_type_id__volatile;
}


static void wixl_wix_condition_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixCondition * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixCondition*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_condition (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixCondition* wixl_wix_condition_construct (GType object_type) {
	WixlWixCondition * self = NULL;
	self = (WixlWixCondition*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixCondition* wixl_wix_condition_new (void) {
	return wixl_wix_condition_construct (WIXL_TYPE_WIX_CONDITION);
}


const gchar* wixl_wix_condition_get_Message (WixlWixCondition* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Message;
	result = _tmp0_;
	return result;
}


void wixl_wix_condition_set_Message (WixlWixCondition* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Message);
	self->priv->_Message = _tmp1_;
	g_object_notify ((GObject *) self, "Message");
}


static void wixl_wix_condition_class_init (WixlWixConditionClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_condition_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixConditionPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_condition_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_condition_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_condition_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_condition_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CONDITION_MESSAGE, g_param_spec_string ("Message", "Message", "Message", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Condition");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_condition_instance_init (WixlWixCondition * self) {
	self->priv = WIXL_WIX_CONDITION_GET_PRIVATE (self);
}


static void wixl_wix_condition_finalize (GObject* obj) {
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	_g_free0 (self->priv->_Message);
	G_OBJECT_CLASS (wixl_wix_condition_parent_class)->finalize (obj);
}


GType wixl_wix_condition_get_type (void) {
	static volatile gsize wixl_wix_condition_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_condition_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixConditionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_condition_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCondition), 0, (GInstanceInitFunc) wixl_wix_condition_instance_init, NULL };
		GType wixl_wix_condition_type_id;
		wixl_wix_condition_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCondition", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_condition_type_id__volatile, wixl_wix_condition_type_id);
	}
	return wixl_wix_condition_type_id__volatile;
}


static void _vala_wixl_wix_condition_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	switch (property_id) {
		case WIXL_WIX_CONDITION_MESSAGE:
		g_value_set_string (value, wixl_wix_condition_get_Message (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_condition_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixCondition * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CONDITION, WixlWixCondition);
	switch (property_id) {
		case WIXL_WIX_CONDITION_MESSAGE:
		wixl_wix_condition_set_Message (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_mime_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixMIME * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixMIME*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_mime (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixMIME* wixl_wix_mime_construct (GType object_type) {
	WixlWixMIME * self = NULL;
	self = (WixlWixMIME*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixMIME* wixl_wix_mime_new (void) {
	return wixl_wix_mime_construct (WIXL_TYPE_WIX_MIME);
}


const gchar* wixl_wix_mime_get_Advertise (WixlWixMIME* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}


void wixl_wix_mime_set_Advertise (WixlWixMIME* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Advertise);
	self->priv->_Advertise = _tmp1_;
	g_object_notify ((GObject *) self, "Advertise");
}


const gchar* wixl_wix_mime_get_ContentType (WixlWixMIME* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ContentType;
	result = _tmp0_;
	return result;
}


void wixl_wix_mime_set_ContentType (WixlWixMIME* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_ContentType);
	self->priv->_ContentType = _tmp1_;
	g_object_notify ((GObject *) self, "ContentType");
}


const gchar* wixl_wix_mime_get_Default (WixlWixMIME* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Default;
	result = _tmp0_;
	return result;
}


void wixl_wix_mime_set_Default (WixlWixMIME* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Default);
	self->priv->_Default = _tmp1_;
	g_object_notify ((GObject *) self, "Default");
}


static void wixl_wix_mime_class_init (WixlWixMIMEClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_mime_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixMIMEPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_mime_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_mime_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_mime_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_mime_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_ADVERTISE, g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_CONTENT_TYPE, g_param_spec_string ("ContentType", "ContentType", "ContentType", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MIME_DEFAULT, g_param_spec_string ("Default", "Default", "Default", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MIME");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_mime_instance_init (WixlWixMIME * self) {
	self->priv = WIXL_WIX_MIME_GET_PRIVATE (self);
}


static void wixl_wix_mime_finalize (GObject* obj) {
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	_g_free0 (self->priv->_Advertise);
	_g_free0 (self->priv->_ContentType);
	_g_free0 (self->priv->_Default);
	G_OBJECT_CLASS (wixl_wix_mime_parent_class)->finalize (obj);
}


GType wixl_wix_mime_get_type (void) {
	static volatile gsize wixl_wix_mime_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_mime_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMIMEClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_mime_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMIME), 0, (GInstanceInitFunc) wixl_wix_mime_instance_init, NULL };
		GType wixl_wix_mime_type_id;
		wixl_wix_mime_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMIME", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_mime_type_id__volatile, wixl_wix_mime_type_id);
	}
	return wixl_wix_mime_type_id__volatile;
}


static void _vala_wixl_wix_mime_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	switch (property_id) {
		case WIXL_WIX_MIME_ADVERTISE:
		g_value_set_string (value, wixl_wix_mime_get_Advertise (self));
		break;
		case WIXL_WIX_MIME_CONTENT_TYPE:
		g_value_set_string (value, wixl_wix_mime_get_ContentType (self));
		break;
		case WIXL_WIX_MIME_DEFAULT:
		g_value_set_string (value, wixl_wix_mime_get_Default (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_mime_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixMIME * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MIME, WixlWixMIME);
	switch (property_id) {
		case WIXL_WIX_MIME_ADVERTISE:
		wixl_wix_mime_set_Advertise (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MIME_CONTENT_TYPE:
		wixl_wix_mime_set_ContentType (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MIME_DEFAULT:
		wixl_wix_mime_set_Default (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


gchar* wixl_wix_service_argument_get_text (WixlWixServiceArgument* self) {
	gchar* result = NULL;
	GList* _tmp0_ = NULL;
	gchar* _tmp6_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = ((WixlWixElement*) self)->children;
	{
		GList* c_collection = NULL;
		GList* c_it = NULL;
		c_collection = _tmp0_;
		for (c_it = c_collection; c_it != NULL; c_it = c_it->next) {
			WixlWixNode* _tmp1_ = NULL;
			WixlWixNode* c = NULL;
			_tmp1_ = _g_object_ref0 ((WixlWixNode*) c_it->data);
			c = _tmp1_;
			{
				WixlWixNode* _tmp2_ = NULL;
				_tmp2_ = c;
				if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, WIXL_TYPE_WIX_TEXT)) {
					WixlWixNode* _tmp3_ = NULL;
					const gchar* _tmp4_ = NULL;
					gchar* _tmp5_ = NULL;
					_tmp3_ = c;
					_tmp4_ = (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, WIXL_TYPE_WIX_TEXT) ? ((WixlWixText*) _tmp3_) : NULL)->Text;
					_tmp5_ = g_strdup (_tmp4_);
					result = _tmp5_;
					_g_object_unref0 (c);
					return result;
				}
				_g_object_unref0 (c);
			}
		}
	}
	_tmp6_ = g_strdup ("");
	result = _tmp6_;
	return result;
}


static void wixl_wix_service_argument_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixServiceArgument * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixServiceArgument*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_service_argument (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixServiceArgument* wixl_wix_service_argument_construct (GType object_type) {
	WixlWixServiceArgument * self = NULL;
	self = (WixlWixServiceArgument*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixServiceArgument* wixl_wix_service_argument_new (void) {
	return wixl_wix_service_argument_construct (WIXL_TYPE_WIX_SERVICE_ARGUMENT);
}


static void wixl_wix_service_argument_class_init (WixlWixServiceArgumentClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_service_argument_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_argument_real_accept;
	_tmp0_ = g_strdup ("ServiceArgument");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_service_argument_instance_init (WixlWixServiceArgument * self) {
}


GType wixl_wix_service_argument_get_type (void) {
	static volatile gsize wixl_wix_service_argument_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_argument_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceArgumentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_argument_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceArgument), 0, (GInstanceInitFunc) wixl_wix_service_argument_instance_init, NULL };
		GType wixl_wix_service_argument_type_id;
		wixl_wix_service_argument_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceArgument", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_service_argument_type_id__volatile, wixl_wix_service_argument_type_id);
	}
	return wixl_wix_service_argument_type_id__volatile;
}


static void wixl_wix_service_control_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixServiceControl * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	WixlWixNodeVisitor* _tmp2_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixServiceControl*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_service_control (_tmp0_, self, WIXL_VISIT_STATE_ENTER, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_service_control_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp1_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = visitor;
	wixl_wix_node_visitor_visit_service_control (_tmp2_, self, WIXL_VISIT_STATE_LEAVE, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixServiceControl* wixl_wix_service_control_construct (GType object_type) {
	WixlWixServiceControl * self = NULL;
	self = (WixlWixServiceControl*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixServiceControl* wixl_wix_service_control_new (void) {
	return wixl_wix_service_control_construct (WIXL_TYPE_WIX_SERVICE_CONTROL);
}


const gchar* wixl_wix_service_control_get_Name (WixlWixServiceControl* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_control_set_Name (WixlWixServiceControl* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


const gchar* wixl_wix_service_control_get_Start (WixlWixServiceControl* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Start;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_control_set_Start (WixlWixServiceControl* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Start);
	self->priv->_Start = _tmp1_;
	g_object_notify ((GObject *) self, "Start");
}


const gchar* wixl_wix_service_control_get_Stop (WixlWixServiceControl* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Stop;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_control_set_Stop (WixlWixServiceControl* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Stop);
	self->priv->_Stop = _tmp1_;
	g_object_notify ((GObject *) self, "Stop");
}


const gchar* wixl_wix_service_control_get_Remove (WixlWixServiceControl* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Remove;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_control_set_Remove (WixlWixServiceControl* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Remove);
	self->priv->_Remove = _tmp1_;
	g_object_notify ((GObject *) self, "Remove");
}


const gchar* wixl_wix_service_control_get_Wait (WixlWixServiceControl* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Wait;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_control_set_Wait (WixlWixServiceControl* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Wait);
	self->priv->_Wait = _tmp1_;
	g_object_notify ((GObject *) self, "Wait");
}


static void wixl_wix_service_control_class_init (WixlWixServiceControlClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_service_control_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixServiceControlPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_control_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_control_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_control_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_control_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_START, g_param_spec_string ("Start", "Start", "Start", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_STOP, g_param_spec_string ("Stop", "Stop", "Stop", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_REMOVE, g_param_spec_string ("Remove", "Remove", "Remove", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_CONTROL_WAIT, g_param_spec_string ("Wait", "Wait", "Wait", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceControl");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SERVICE_ARGUMENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_service_control_instance_init (WixlWixServiceControl * self) {
	self->priv = WIXL_WIX_SERVICE_CONTROL_GET_PRIVATE (self);
}


static void wixl_wix_service_control_finalize (GObject* obj) {
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_Start);
	_g_free0 (self->priv->_Stop);
	_g_free0 (self->priv->_Remove);
	_g_free0 (self->priv->_Wait);
	G_OBJECT_CLASS (wixl_wix_service_control_parent_class)->finalize (obj);
}


GType wixl_wix_service_control_get_type (void) {
	static volatile gsize wixl_wix_service_control_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_control_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceControlClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_control_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceControl), 0, (GInstanceInitFunc) wixl_wix_service_control_instance_init, NULL };
		GType wixl_wix_service_control_type_id;
		wixl_wix_service_control_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceControl", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_service_control_type_id__volatile, wixl_wix_service_control_type_id);
	}
	return wixl_wix_service_control_type_id__volatile;
}


static void _vala_wixl_wix_service_control_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	switch (property_id) {
		case WIXL_WIX_SERVICE_CONTROL_NAME:
		g_value_set_string (value, wixl_wix_service_control_get_Name (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_START:
		g_value_set_string (value, wixl_wix_service_control_get_Start (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_STOP:
		g_value_set_string (value, wixl_wix_service_control_get_Stop (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_REMOVE:
		g_value_set_string (value, wixl_wix_service_control_get_Remove (self));
		break;
		case WIXL_WIX_SERVICE_CONTROL_WAIT:
		g_value_set_string (value, wixl_wix_service_control_get_Wait (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_service_control_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixServiceControl * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_CONTROL, WixlWixServiceControl);
	switch (property_id) {
		case WIXL_WIX_SERVICE_CONTROL_NAME:
		wixl_wix_service_control_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_START:
		wixl_wix_service_control_set_Start (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_STOP:
		wixl_wix_service_control_set_Stop (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_REMOVE:
		wixl_wix_service_control_set_Remove (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_CONTROL_WAIT:
		wixl_wix_service_control_set_Wait (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_service_dependency_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixServiceDependency * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixServiceDependency*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_service_dependency (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixServiceDependency* wixl_wix_service_dependency_construct (GType object_type) {
	WixlWixServiceDependency * self = NULL;
	self = (WixlWixServiceDependency*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixServiceDependency* wixl_wix_service_dependency_new (void) {
	return wixl_wix_service_dependency_construct (WIXL_TYPE_WIX_SERVICE_DEPENDENCY);
}


const gchar* wixl_wix_service_dependency_get_Group (WixlWixServiceDependency* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Group;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_dependency_set_Group (WixlWixServiceDependency* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Group);
	self->priv->_Group = _tmp1_;
	g_object_notify ((GObject *) self, "Group");
}


static void wixl_wix_service_dependency_class_init (WixlWixServiceDependencyClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_service_dependency_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixServiceDependencyPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_dependency_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_dependency_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_dependency_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_dependency_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_DEPENDENCY_GROUP, g_param_spec_string ("Group", "Group", "Group", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceDependency");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_service_dependency_instance_init (WixlWixServiceDependency * self) {
	self->priv = WIXL_WIX_SERVICE_DEPENDENCY_GET_PRIVATE (self);
}


static void wixl_wix_service_dependency_finalize (GObject* obj) {
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	_g_free0 (self->priv->_Group);
	G_OBJECT_CLASS (wixl_wix_service_dependency_parent_class)->finalize (obj);
}


GType wixl_wix_service_dependency_get_type (void) {
	static volatile gsize wixl_wix_service_dependency_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_dependency_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceDependencyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_dependency_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceDependency), 0, (GInstanceInitFunc) wixl_wix_service_dependency_instance_init, NULL };
		GType wixl_wix_service_dependency_type_id;
		wixl_wix_service_dependency_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceDependency", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_service_dependency_type_id__volatile, wixl_wix_service_dependency_type_id);
	}
	return wixl_wix_service_dependency_type_id__volatile;
}


static void _vala_wixl_wix_service_dependency_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	switch (property_id) {
		case WIXL_WIX_SERVICE_DEPENDENCY_GROUP:
		g_value_set_string (value, wixl_wix_service_dependency_get_Group (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_service_dependency_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixServiceDependency * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_DEPENDENCY, WixlWixServiceDependency);
	switch (property_id) {
		case WIXL_WIX_SERVICE_DEPENDENCY_GROUP:
		wixl_wix_service_dependency_set_Group (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_service_install_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixServiceInstall * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	WixlWixNodeVisitor* _tmp2_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixServiceInstall*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_service_install (_tmp0_, self, WIXL_VISIT_STATE_ENTER, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_service_install_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp1_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = visitor;
	wixl_wix_node_visitor_visit_service_install (_tmp2_, self, WIXL_VISIT_STATE_LEAVE, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixServiceInstall* wixl_wix_service_install_construct (GType object_type) {
	WixlWixServiceInstall * self = NULL;
	self = (WixlWixServiceInstall*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixServiceInstall* wixl_wix_service_install_new (void) {
	return wixl_wix_service_install_construct (WIXL_TYPE_WIX_SERVICE_INSTALL);
}


const gchar* wixl_wix_service_install_get_Name (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Name (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


const gchar* wixl_wix_service_install_get_DisplayName (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DisplayName;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_DisplayName (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_DisplayName);
	self->priv->_DisplayName = _tmp1_;
	g_object_notify ((GObject *) self, "DisplayName");
}


const gchar* wixl_wix_service_install_get_Type (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Type;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Type (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Type);
	self->priv->_Type = _tmp1_;
	g_object_notify ((GObject *) self, "Type");
}


const gchar* wixl_wix_service_install_get_Interactive (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Interactive;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Interactive (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Interactive);
	self->priv->_Interactive = _tmp1_;
	g_object_notify ((GObject *) self, "Interactive");
}


const gchar* wixl_wix_service_install_get_Start (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Start;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Start (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Start);
	self->priv->_Start = _tmp1_;
	g_object_notify ((GObject *) self, "Start");
}


const gchar* wixl_wix_service_install_get_ErrorControl (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ErrorControl;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_ErrorControl (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_ErrorControl);
	self->priv->_ErrorControl = _tmp1_;
	g_object_notify ((GObject *) self, "ErrorControl");
}


const gchar* wixl_wix_service_install_get_Vital (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Vital;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Vital (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Vital);
	self->priv->_Vital = _tmp1_;
	g_object_notify ((GObject *) self, "Vital");
}


const gchar* wixl_wix_service_install_get_LoadOrderGroup (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_LoadOrderGroup;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_LoadOrderGroup (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_LoadOrderGroup);
	self->priv->_LoadOrderGroup = _tmp1_;
	g_object_notify ((GObject *) self, "LoadOrderGroup");
}


const gchar* wixl_wix_service_install_get_Account (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Account;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Account (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Account);
	self->priv->_Account = _tmp1_;
	g_object_notify ((GObject *) self, "Account");
}


const gchar* wixl_wix_service_install_get_Password (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Password;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Password (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Password);
	self->priv->_Password = _tmp1_;
	g_object_notify ((GObject *) self, "Password");
}


const gchar* wixl_wix_service_install_get_Arguments (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Arguments;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Arguments (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Arguments);
	self->priv->_Arguments = _tmp1_;
	g_object_notify ((GObject *) self, "Arguments");
}


const gchar* wixl_wix_service_install_get_Description (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_Description (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Description);
	self->priv->_Description = _tmp1_;
	g_object_notify ((GObject *) self, "Description");
}


const gchar* wixl_wix_service_install_get_EraseDescription (WixlWixServiceInstall* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EraseDescription;
	result = _tmp0_;
	return result;
}


void wixl_wix_service_install_set_EraseDescription (WixlWixServiceInstall* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_EraseDescription);
	self->priv->_EraseDescription = _tmp1_;
	g_object_notify ((GObject *) self, "EraseDescription");
}


static void wixl_wix_service_install_class_init (WixlWixServiceInstallClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_service_install_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixServiceInstallPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_service_install_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_service_install_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_service_install_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_service_install_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME, g_param_spec_string ("DisplayName", "DisplayName", "DisplayName", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_TYPE, g_param_spec_string ("Type", "Type", "Type", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_INTERACTIVE, g_param_spec_string ("Interactive", "Interactive", "Interactive", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_START, g_param_spec_string ("Start", "Start", "Start", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL, g_param_spec_string ("ErrorControl", "ErrorControl", "ErrorControl", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_VITAL, g_param_spec_string ("Vital", "Vital", "Vital", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP, g_param_spec_string ("LoadOrderGroup", "LoadOrderGroup", "LoadOrderGroup", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ACCOUNT, g_param_spec_string ("Account", "Account", "Account", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_PASSWORD, g_param_spec_string ("Password", "Password", "Password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ARGUMENTS, g_param_spec_string ("Arguments", "Arguments", "Arguments", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_DESCRIPTION, g_param_spec_string ("Description", "Description", "Description", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION, g_param_spec_string ("EraseDescription", "EraseDescription", "EraseDescription", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ServiceInstall");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_SERVICE_DEPENDENCY;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_service_install_instance_init (WixlWixServiceInstall * self) {
	self->priv = WIXL_WIX_SERVICE_INSTALL_GET_PRIVATE (self);
}


static void wixl_wix_service_install_finalize (GObject* obj) {
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_DisplayName);
	_g_free0 (self->priv->_Type);
	_g_free0 (self->priv->_Interactive);
	_g_free0 (self->priv->_Start);
	_g_free0 (self->priv->_ErrorControl);
	_g_free0 (self->priv->_Vital);
	_g_free0 (self->priv->_LoadOrderGroup);
	_g_free0 (self->priv->_Account);
	_g_free0 (self->priv->_Password);
	_g_free0 (self->priv->_Arguments);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_EraseDescription);
	G_OBJECT_CLASS (wixl_wix_service_install_parent_class)->finalize (obj);
}


GType wixl_wix_service_install_get_type (void) {
	static volatile gsize wixl_wix_service_install_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_service_install_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixServiceInstallClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_service_install_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixServiceInstall), 0, (GInstanceInitFunc) wixl_wix_service_install_instance_init, NULL };
		GType wixl_wix_service_install_type_id;
		wixl_wix_service_install_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixServiceInstall", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_service_install_type_id__volatile, wixl_wix_service_install_type_id);
	}
	return wixl_wix_service_install_type_id__volatile;
}


static void _vala_wixl_wix_service_install_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	switch (property_id) {
		case WIXL_WIX_SERVICE_INSTALL_NAME:
		g_value_set_string (value, wixl_wix_service_install_get_Name (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME:
		g_value_set_string (value, wixl_wix_service_install_get_DisplayName (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_TYPE:
		g_value_set_string (value, wixl_wix_service_install_get_Type (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_INTERACTIVE:
		g_value_set_string (value, wixl_wix_service_install_get_Interactive (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_START:
		g_value_set_string (value, wixl_wix_service_install_get_Start (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL:
		g_value_set_string (value, wixl_wix_service_install_get_ErrorControl (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_VITAL:
		g_value_set_string (value, wixl_wix_service_install_get_Vital (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP:
		g_value_set_string (value, wixl_wix_service_install_get_LoadOrderGroup (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ACCOUNT:
		g_value_set_string (value, wixl_wix_service_install_get_Account (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_PASSWORD:
		g_value_set_string (value, wixl_wix_service_install_get_Password (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ARGUMENTS:
		g_value_set_string (value, wixl_wix_service_install_get_Arguments (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DESCRIPTION:
		g_value_set_string (value, wixl_wix_service_install_get_Description (self));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION:
		g_value_set_string (value, wixl_wix_service_install_get_EraseDescription (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_service_install_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixServiceInstall * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_SERVICE_INSTALL, WixlWixServiceInstall);
	switch (property_id) {
		case WIXL_WIX_SERVICE_INSTALL_NAME:
		wixl_wix_service_install_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DISPLAY_NAME:
		wixl_wix_service_install_set_DisplayName (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_TYPE:
		wixl_wix_service_install_set_Type (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_INTERACTIVE:
		wixl_wix_service_install_set_Interactive (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_START:
		wixl_wix_service_install_set_Start (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERROR_CONTROL:
		wixl_wix_service_install_set_ErrorControl (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_VITAL:
		wixl_wix_service_install_set_Vital (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_LOAD_ORDER_GROUP:
		wixl_wix_service_install_set_LoadOrderGroup (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ACCOUNT:
		wixl_wix_service_install_set_Account (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_PASSWORD:
		wixl_wix_service_install_set_Password (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ARGUMENTS:
		wixl_wix_service_install_set_Arguments (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_DESCRIPTION:
		wixl_wix_service_install_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_SERVICE_INSTALL_ERASE_DESCRIPTION:
		wixl_wix_service_install_set_EraseDescription (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_verb_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixVerb * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixVerb*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_verb_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_verb (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixVerb* wixl_wix_verb_construct (GType object_type) {
	WixlWixVerb * self = NULL;
	self = (WixlWixVerb*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixVerb* wixl_wix_verb_new (void) {
	return wixl_wix_verb_construct (WIXL_TYPE_WIX_VERB);
}


const gchar* wixl_wix_verb_get_Command (WixlWixVerb* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Command;
	result = _tmp0_;
	return result;
}


void wixl_wix_verb_set_Command (WixlWixVerb* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Command);
	self->priv->_Command = _tmp1_;
	g_object_notify ((GObject *) self, "Command");
}


const gchar* wixl_wix_verb_get_TargetFile (WixlWixVerb* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_TargetFile;
	result = _tmp0_;
	return result;
}


void wixl_wix_verb_set_TargetFile (WixlWixVerb* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_TargetFile);
	self->priv->_TargetFile = _tmp1_;
	g_object_notify ((GObject *) self, "TargetFile");
}


const gchar* wixl_wix_verb_get_Argument (WixlWixVerb* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Argument;
	result = _tmp0_;
	return result;
}


void wixl_wix_verb_set_Argument (WixlWixVerb* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Argument);
	self->priv->_Argument = _tmp1_;
	g_object_notify ((GObject *) self, "Argument");
}


static void wixl_wix_verb_class_init (WixlWixVerbClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_verb_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixVerbPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_verb_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_verb_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_verb_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_verb_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_COMMAND, g_param_spec_string ("Command", "Command", "Command", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_TARGET_FILE, g_param_spec_string ("TargetFile", "TargetFile", "TargetFile", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_VERB_ARGUMENT, g_param_spec_string ("Argument", "Argument", "Argument", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Verb");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_verb_instance_init (WixlWixVerb * self) {
	self->priv = WIXL_WIX_VERB_GET_PRIVATE (self);
}


static void wixl_wix_verb_finalize (GObject* obj) {
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	_g_free0 (self->priv->_Command);
	_g_free0 (self->priv->_TargetFile);
	_g_free0 (self->priv->_Argument);
	G_OBJECT_CLASS (wixl_wix_verb_parent_class)->finalize (obj);
}


GType wixl_wix_verb_get_type (void) {
	static volatile gsize wixl_wix_verb_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_verb_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixVerbClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_verb_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixVerb), 0, (GInstanceInitFunc) wixl_wix_verb_instance_init, NULL };
		GType wixl_wix_verb_type_id;
		wixl_wix_verb_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixVerb", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_verb_type_id__volatile, wixl_wix_verb_type_id);
	}
	return wixl_wix_verb_type_id__volatile;
}


static void _vala_wixl_wix_verb_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	switch (property_id) {
		case WIXL_WIX_VERB_COMMAND:
		g_value_set_string (value, wixl_wix_verb_get_Command (self));
		break;
		case WIXL_WIX_VERB_TARGET_FILE:
		g_value_set_string (value, wixl_wix_verb_get_TargetFile (self));
		break;
		case WIXL_WIX_VERB_ARGUMENT:
		g_value_set_string (value, wixl_wix_verb_get_Argument (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_verb_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixVerb * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_VERB, WixlWixVerb);
	switch (property_id) {
		case WIXL_WIX_VERB_COMMAND:
		wixl_wix_verb_set_Command (self, g_value_get_string (value));
		break;
		case WIXL_WIX_VERB_TARGET_FILE:
		wixl_wix_verb_set_TargetFile (self, g_value_get_string (value));
		break;
		case WIXL_WIX_VERB_ARGUMENT:
		wixl_wix_verb_set_Argument (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_extension_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixExtension * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixExtension*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_extension_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_extension (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixExtension* wixl_wix_extension_construct (GType object_type) {
	WixlWixExtension * self = NULL;
	self = (WixlWixExtension*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixExtension* wixl_wix_extension_new (void) {
	return wixl_wix_extension_construct (WIXL_TYPE_WIX_EXTENSION);
}


const gchar* wixl_wix_extension_get_ContentType (WixlWixExtension* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ContentType;
	result = _tmp0_;
	return result;
}


void wixl_wix_extension_set_ContentType (WixlWixExtension* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_ContentType);
	self->priv->_ContentType = _tmp1_;
	g_object_notify ((GObject *) self, "ContentType");
}


const gchar* wixl_wix_extension_get_Advertise (WixlWixExtension* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}


void wixl_wix_extension_set_Advertise (WixlWixExtension* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Advertise);
	self->priv->_Advertise = _tmp1_;
	g_object_notify ((GObject *) self, "Advertise");
}


static void wixl_wix_extension_class_init (WixlWixExtensionClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_extension_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixExtensionPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_extension_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_extension_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_extension_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_extension_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_EXTENSION_CONTENT_TYPE, g_param_spec_string ("ContentType", "ContentType", "ContentType", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_EXTENSION_ADVERTISE, g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Extension");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_VERB;
	_tmp2_[1] = WIXL_TYPE_WIX_MIME;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_extension_instance_init (WixlWixExtension * self) {
	self->priv = WIXL_WIX_EXTENSION_GET_PRIVATE (self);
}


static void wixl_wix_extension_finalize (GObject* obj) {
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	_g_free0 (self->priv->_ContentType);
	_g_free0 (self->priv->_Advertise);
	G_OBJECT_CLASS (wixl_wix_extension_parent_class)->finalize (obj);
}


GType wixl_wix_extension_get_type (void) {
	static volatile gsize wixl_wix_extension_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_extension_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixExtensionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_extension_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixExtension), 0, (GInstanceInitFunc) wixl_wix_extension_instance_init, NULL };
		GType wixl_wix_extension_type_id;
		wixl_wix_extension_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixExtension", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_extension_type_id__volatile, wixl_wix_extension_type_id);
	}
	return wixl_wix_extension_type_id__volatile;
}


static void _vala_wixl_wix_extension_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	switch (property_id) {
		case WIXL_WIX_EXTENSION_CONTENT_TYPE:
		g_value_set_string (value, wixl_wix_extension_get_ContentType (self));
		break;
		case WIXL_WIX_EXTENSION_ADVERTISE:
		g_value_set_string (value, wixl_wix_extension_get_Advertise (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_extension_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixExtension * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_EXTENSION, WixlWixExtension);
	switch (property_id) {
		case WIXL_WIX_EXTENSION_CONTENT_TYPE:
		wixl_wix_extension_set_ContentType (self, g_value_get_string (value));
		break;
		case WIXL_WIX_EXTENSION_ADVERTISE:
		wixl_wix_extension_set_Advertise (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_prog_id_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixProgId * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixProgId*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_prog_id_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_progid (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixProgId* wixl_wix_prog_id_construct (GType object_type) {
	WixlWixProgId * self = NULL;
	self = (WixlWixProgId*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixProgId* wixl_wix_prog_id_new (void) {
	return wixl_wix_prog_id_construct (WIXL_TYPE_WIX_PROG_ID);
}


const gchar* wixl_wix_prog_id_get_Description (WixlWixProgId* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Description;
	result = _tmp0_;
	return result;
}


void wixl_wix_prog_id_set_Description (WixlWixProgId* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Description);
	self->priv->_Description = _tmp1_;
	g_object_notify ((GObject *) self, "Description");
}


const gchar* wixl_wix_prog_id_get_Advertise (WixlWixProgId* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Advertise;
	result = _tmp0_;
	return result;
}


void wixl_wix_prog_id_set_Advertise (WixlWixProgId* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Advertise);
	self->priv->_Advertise = _tmp1_;
	g_object_notify ((GObject *) self, "Advertise");
}


static void wixl_wix_prog_id_class_init (WixlWixProgIdClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_prog_id_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixProgIdPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_prog_id_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_prog_id_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_prog_id_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_prog_id_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PROG_ID_DESCRIPTION, g_param_spec_string ("Description", "Description", "Description", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PROG_ID_ADVERTISE, g_param_spec_string ("Advertise", "Advertise", "Advertise", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("ProgId");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_EXTENSION;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_prog_id_instance_init (WixlWixProgId * self) {
	self->priv = WIXL_WIX_PROG_ID_GET_PRIVATE (self);
}


static void wixl_wix_prog_id_finalize (GObject* obj) {
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	_g_free0 (self->priv->_Description);
	_g_free0 (self->priv->_Advertise);
	G_OBJECT_CLASS (wixl_wix_prog_id_parent_class)->finalize (obj);
}


GType wixl_wix_prog_id_get_type (void) {
	static volatile gsize wixl_wix_prog_id_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_prog_id_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixProgIdClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_prog_id_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProgId), 0, (GInstanceInitFunc) wixl_wix_prog_id_instance_init, NULL };
		GType wixl_wix_prog_id_type_id;
		wixl_wix_prog_id_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProgId", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_prog_id_type_id__volatile, wixl_wix_prog_id_type_id);
	}
	return wixl_wix_prog_id_type_id__volatile;
}


static void _vala_wixl_wix_prog_id_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	switch (property_id) {
		case WIXL_WIX_PROG_ID_DESCRIPTION:
		g_value_set_string (value, wixl_wix_prog_id_get_Description (self));
		break;
		case WIXL_WIX_PROG_ID_ADVERTISE:
		g_value_set_string (value, wixl_wix_prog_id_get_Advertise (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_prog_id_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixProgId * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PROG_ID, WixlWixProgId);
	switch (property_id) {
		case WIXL_WIX_PROG_ID_DESCRIPTION:
		wixl_wix_prog_id_set_Description (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PROG_ID_ADVERTISE:
		wixl_wix_prog_id_set_Advertise (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_action_real_load (WixlWixElement* base, xmlNode* node, GError** error) {
	WixlWixAction * self;
	xmlNode* _tmp0_ = NULL;
	xmlNode* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixAction*) base;
	_tmp0_ = node;
	WIXL_WIX_ELEMENT_CLASS (wixl_wix_action_parent_class)->load (G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		if (_inner_error_->domain == WIXL_ERROR) {
			g_propagate_error (error, _inner_error_);
			return;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	_tmp1_ = node;
	_tmp2_ = _tmp1_->name;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (self->name);
	self->name = _tmp3_;
}


static void wixl_wix_action_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixAction * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixAction*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_action (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixAction* wixl_wix_action_construct (GType object_type) {
	WixlWixAction * self = NULL;
	self = (WixlWixAction*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixAction* wixl_wix_action_new (void) {
	return wixl_wix_action_construct (WIXL_TYPE_WIX_ACTION);
}


const gchar* wixl_wix_action_get_After (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_After;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_After (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_After);
	self->priv->_After = _tmp1_;
	g_object_notify ((GObject *) self, "After");
}


const gchar* wixl_wix_action_get_Before (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Before;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_Before (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Before);
	self->priv->_Before = _tmp1_;
	g_object_notify ((GObject *) self, "Before");
}


const gchar* wixl_wix_action_get_Overridable (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Overridable;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_Overridable (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Overridable);
	self->priv->_Overridable = _tmp1_;
	g_object_notify ((GObject *) self, "Overridable");
}


const gchar* wixl_wix_action_get_Sequence (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Sequence;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_Sequence (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Sequence);
	self->priv->_Sequence = _tmp1_;
	g_object_notify ((GObject *) self, "Sequence");
}


const gchar* wixl_wix_action_get_Suppress (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Suppress;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_Suppress (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Suppress);
	self->priv->_Suppress = _tmp1_;
	g_object_notify ((GObject *) self, "Suppress");
}


const gchar* wixl_wix_action_get_Action (WixlWixAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Action;
	result = _tmp0_;
	return result;
}


void wixl_wix_action_set_Action (WixlWixAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Action);
	self->priv->_Action = _tmp1_;
	g_object_notify ((GObject *) self, "Action");
}


static void wixl_wix_action_class_init (WixlWixActionClass * klass) {
	wixl_wix_action_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixActionPrivate));
	((WixlWixElementClass *) klass)->load = (void (*)(WixlWixElement*, xmlNode*, GError**)) wixl_wix_action_real_load;
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_action_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_action_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_action_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_action_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_AFTER, g_param_spec_string ("After", "After", "After", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_BEFORE, g_param_spec_string ("Before", "Before", "Before", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_OVERRIDABLE, g_param_spec_string ("Overridable", "Overridable", "Overridable", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_SEQUENCE, g_param_spec_string ("Sequence", "Sequence", "Sequence", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_SUPPRESS, g_param_spec_string ("Suppress", "Suppress", "Suppress", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ACTION_ACTION, g_param_spec_string ("Action", "Action", "Action", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
}


static void wixl_wix_action_instance_init (WixlWixAction * self) {
	self->priv = WIXL_WIX_ACTION_GET_PRIVATE (self);
}


static void wixl_wix_action_finalize (GObject* obj) {
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	_g_free0 (self->name);
	_g_free0 (self->priv->_After);
	_g_free0 (self->priv->_Before);
	_g_free0 (self->priv->_Overridable);
	_g_free0 (self->priv->_Sequence);
	_g_free0 (self->priv->_Suppress);
	_g_free0 (self->priv->_Action);
	G_OBJECT_CLASS (wixl_wix_action_parent_class)->finalize (obj);
}


GType wixl_wix_action_get_type (void) {
	static volatile gsize wixl_wix_action_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_action_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAction), 0, (GInstanceInitFunc) wixl_wix_action_instance_init, NULL };
		GType wixl_wix_action_type_id;
		wixl_wix_action_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixAction", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_action_type_id__volatile, wixl_wix_action_type_id);
	}
	return wixl_wix_action_type_id__volatile;
}


static void _vala_wixl_wix_action_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	switch (property_id) {
		case WIXL_WIX_ACTION_AFTER:
		g_value_set_string (value, wixl_wix_action_get_After (self));
		break;
		case WIXL_WIX_ACTION_BEFORE:
		g_value_set_string (value, wixl_wix_action_get_Before (self));
		break;
		case WIXL_WIX_ACTION_OVERRIDABLE:
		g_value_set_string (value, wixl_wix_action_get_Overridable (self));
		break;
		case WIXL_WIX_ACTION_SEQUENCE:
		g_value_set_string (value, wixl_wix_action_get_Sequence (self));
		break;
		case WIXL_WIX_ACTION_SUPPRESS:
		g_value_set_string (value, wixl_wix_action_get_Suppress (self));
		break;
		case WIXL_WIX_ACTION_ACTION:
		g_value_set_string (value, wixl_wix_action_get_Action (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_action_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ACTION, WixlWixAction);
	switch (property_id) {
		case WIXL_WIX_ACTION_AFTER:
		wixl_wix_action_set_After (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_BEFORE:
		wixl_wix_action_set_Before (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_OVERRIDABLE:
		wixl_wix_action_set_Overridable (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_SEQUENCE:
		wixl_wix_action_set_Sequence (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_SUPPRESS:
		wixl_wix_action_set_Suppress (self, g_value_get_string (value));
		break;
		case WIXL_WIX_ACTION_ACTION:
		wixl_wix_action_set_Action (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_sequence_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixSequence * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixSequence*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_sequence_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_sequence (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixSequence* wixl_wix_sequence_construct (GType object_type) {
	WixlWixSequence * self = NULL;
	self = (WixlWixSequence*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixSequence* wixl_wix_sequence_new (void) {
	return wixl_wix_sequence_construct (WIXL_TYPE_WIX_SEQUENCE);
}


static void wixl_wix_sequence_class_init (WixlWixSequenceClass * klass) {
	wixl_wix_sequence_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_sequence_real_accept;
}


static void wixl_wix_sequence_instance_init (WixlWixSequence * self) {
}


GType wixl_wix_sequence_get_type (void) {
	static volatile gsize wixl_wix_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixSequence), 0, (GInstanceInitFunc) wixl_wix_sequence_instance_init, NULL };
		GType wixl_wix_sequence_type_id;
		wixl_wix_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_sequence_type_id__volatile, wixl_wix_sequence_type_id);
	}
	return wixl_wix_sequence_type_id__volatile;
}


WixlWixInstallExecuteSequence* wixl_wix_install_execute_sequence_construct (GType object_type) {
	WixlWixInstallExecuteSequence * self = NULL;
	self = (WixlWixInstallExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}


WixlWixInstallExecuteSequence* wixl_wix_install_execute_sequence_new (void) {
	return wixl_wix_install_execute_sequence_construct (WIXL_TYPE_WIX_INSTALL_EXECUTE_SEQUENCE);
}


static void wixl_wix_install_execute_sequence_class_init (WixlWixInstallExecuteSequenceClass * klass) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gchar* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	gchar* _tmp19_ = NULL;
	gchar* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gchar* _tmp22_ = NULL;
	gchar* _tmp23_ = NULL;
	gchar* _tmp24_ = NULL;
	gchar* _tmp25_ = NULL;
	gchar* _tmp26_ = NULL;
	gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* _tmp29_ = NULL;
	gchar* _tmp30_ = NULL;
	gchar* _tmp31_ = NULL;
	gchar* _tmp32_ = NULL;
	gchar* _tmp33_ = NULL;
	gchar* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	gchar* _tmp36_ = NULL;
	gchar* _tmp37_ = NULL;
	gchar* _tmp38_ = NULL;
	gchar* _tmp39_ = NULL;
	gchar* _tmp40_ = NULL;
	gchar* _tmp41_ = NULL;
	gchar* _tmp42_ = NULL;
	gchar* _tmp43_ = NULL;
	gchar* _tmp44_ = NULL;
	gchar* _tmp45_ = NULL;
	gchar* _tmp46_ = NULL;
	gchar* _tmp47_ = NULL;
	gchar* _tmp48_ = NULL;
	gchar* _tmp49_ = NULL;
	gchar* _tmp50_ = NULL;
	gchar* _tmp51_ = NULL;
	gchar* _tmp52_ = NULL;
	gchar* _tmp53_ = NULL;
	gchar* _tmp54_ = NULL;
	gchar* _tmp55_ = NULL;
	gchar* _tmp56_ = NULL;
	gchar* _tmp57_ = NULL;
	gchar* _tmp58_ = NULL;
	gchar* _tmp59_ = NULL;
	gchar* _tmp60_ = NULL;
	gchar* _tmp61_ = NULL;
	gchar* _tmp62_ = NULL;
	gchar* _tmp63_ = NULL;
	gchar* _tmp64_ = NULL;
	gchar* _tmp65_ = NULL;
	gchar* _tmp66_ = NULL;
	gchar* _tmp67_ = NULL;
	gchar* _tmp68_ = NULL;
	gchar* _tmp69_ = NULL;
	gchar* _tmp70_ = NULL;
	gchar* _tmp71_ = NULL;
	gchar* _tmp72_ = NULL;
	gchar* _tmp73_ = NULL;
	gchar** _tmp74_ = NULL;
	wixl_wix_install_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("InstallExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("AllocateRegistrySpace");
	_tmp2_ = g_strdup ("AppSearch");
	_tmp3_ = g_strdup ("BindImage");
	_tmp4_ = g_strdup ("CCPSearch");
	_tmp5_ = g_strdup ("CostFinalize");
	_tmp6_ = g_strdup ("CostInitialize");
	_tmp7_ = g_strdup ("CreateFolders");
	_tmp8_ = g_strdup ("CreateShortcuts");
	_tmp9_ = g_strdup ("Custom");
	_tmp10_ = g_strdup ("DeleteServices");
	_tmp11_ = g_strdup ("DisableRollback");
	_tmp12_ = g_strdup ("DuplicateFiles");
	_tmp13_ = g_strdup ("FileCost");
	_tmp14_ = g_strdup ("FindRelatedProducts");
	_tmp15_ = g_strdup ("ForceReboot");
	_tmp16_ = g_strdup ("InstallExecute");
	_tmp17_ = g_strdup ("InstallExecuteAgain");
	_tmp18_ = g_strdup ("InstallFiles");
	_tmp19_ = g_strdup ("InstallFinalize");
	_tmp20_ = g_strdup ("InstallInitialize");
	_tmp21_ = g_strdup ("InstallODBC");
	_tmp22_ = g_strdup ("InstallServices");
	_tmp23_ = g_strdup ("InstallValidate");
	_tmp24_ = g_strdup ("IsolateComponents");
	_tmp25_ = g_strdup ("LaunchConditions");
	_tmp26_ = g_strdup ("MigrateFeatureStates");
	_tmp27_ = g_strdup ("MoveFiles");
	_tmp28_ = g_strdup ("MsiPublishAssemblies");
	_tmp29_ = g_strdup ("MsiUnpublishAssemblies");
	_tmp30_ = g_strdup ("PatchFiles");
	_tmp31_ = g_strdup ("ProcessComponents");
	_tmp32_ = g_strdup ("PublishComponents");
	_tmp33_ = g_strdup ("PublishFeatures");
	_tmp34_ = g_strdup ("PublishProduct");
	_tmp35_ = g_strdup ("RegisterClassInfo");
	_tmp36_ = g_strdup ("RegisterComPlus");
	_tmp37_ = g_strdup ("RegisterExtensionInfo");
	_tmp38_ = g_strdup ("RegisterFonts");
	_tmp39_ = g_strdup ("RegisterMIMEInfo");
	_tmp40_ = g_strdup ("RegisterProduct");
	_tmp41_ = g_strdup ("RegisterProgIdInfo");
	_tmp42_ = g_strdup ("RegisterTypeLibraries");
	_tmp43_ = g_strdup ("RegisterUser");
	_tmp44_ = g_strdup ("RemoveDuplicateFiles");
	_tmp45_ = g_strdup ("RemoveEnvironmentStrings");
	_tmp46_ = g_strdup ("RemoveExistingProducts");
	_tmp47_ = g_strdup ("RemoveFiles");
	_tmp48_ = g_strdup ("RemoveFolders");
	_tmp49_ = g_strdup ("RemoveIniValues");
	_tmp50_ = g_strdup ("RemoveODBC");
	_tmp51_ = g_strdup ("RemoveRegistryValues");
	_tmp52_ = g_strdup ("RemoveShortcuts");
	_tmp53_ = g_strdup ("ResolveSource");
	_tmp54_ = g_strdup ("RMCCPSearch");
	_tmp55_ = g_strdup ("ScheduleReboot");
	_tmp56_ = g_strdup ("SelfRegModules");
	_tmp57_ = g_strdup ("SelfUnregModules");
	_tmp58_ = g_strdup ("SetODBCFolders");
	_tmp59_ = g_strdup ("StartServices");
	_tmp60_ = g_strdup ("StopServices");
	_tmp61_ = g_strdup ("UnpublishComponents");
	_tmp62_ = g_strdup ("UnpublishFeatures");
	_tmp63_ = g_strdup ("UnregisterClassInfo");
	_tmp64_ = g_strdup ("UnregisterComPlus");
	_tmp65_ = g_strdup ("UnregisterExtensionInfo");
	_tmp66_ = g_strdup ("UnregisterFonts");
	_tmp67_ = g_strdup ("UnregisterMIMEInfo");
	_tmp68_ = g_strdup ("UnregisterProgIdInfo");
	_tmp69_ = g_strdup ("UnregisterTypeLibraries");
	_tmp70_ = g_strdup ("ValidateProductID");
	_tmp71_ = g_strdup ("WriteEnvironmentStrings");
	_tmp72_ = g_strdup ("WriteIniValues");
	_tmp73_ = g_strdup ("WriteRegistryValues");
	_tmp74_ = g_new0 (gchar*, 73 + 1);
	_tmp74_[0] = _tmp1_;
	_tmp74_[1] = _tmp2_;
	_tmp74_[2] = _tmp3_;
	_tmp74_[3] = _tmp4_;
	_tmp74_[4] = _tmp5_;
	_tmp74_[5] = _tmp6_;
	_tmp74_[6] = _tmp7_;
	_tmp74_[7] = _tmp8_;
	_tmp74_[8] = _tmp9_;
	_tmp74_[9] = _tmp10_;
	_tmp74_[10] = _tmp11_;
	_tmp74_[11] = _tmp12_;
	_tmp74_[12] = _tmp13_;
	_tmp74_[13] = _tmp14_;
	_tmp74_[14] = _tmp15_;
	_tmp74_[15] = _tmp16_;
	_tmp74_[16] = _tmp17_;
	_tmp74_[17] = _tmp18_;
	_tmp74_[18] = _tmp19_;
	_tmp74_[19] = _tmp20_;
	_tmp74_[20] = _tmp21_;
	_tmp74_[21] = _tmp22_;
	_tmp74_[22] = _tmp23_;
	_tmp74_[23] = _tmp24_;
	_tmp74_[24] = _tmp25_;
	_tmp74_[25] = _tmp26_;
	_tmp74_[26] = _tmp27_;
	_tmp74_[27] = _tmp28_;
	_tmp74_[28] = _tmp29_;
	_tmp74_[29] = _tmp30_;
	_tmp74_[30] = _tmp31_;
	_tmp74_[31] = _tmp32_;
	_tmp74_[32] = _tmp33_;
	_tmp74_[33] = _tmp34_;
	_tmp74_[34] = _tmp35_;
	_tmp74_[35] = _tmp36_;
	_tmp74_[36] = _tmp37_;
	_tmp74_[37] = _tmp38_;
	_tmp74_[38] = _tmp39_;
	_tmp74_[39] = _tmp40_;
	_tmp74_[40] = _tmp41_;
	_tmp74_[41] = _tmp42_;
	_tmp74_[42] = _tmp43_;
	_tmp74_[43] = _tmp44_;
	_tmp74_[44] = _tmp45_;
	_tmp74_[45] = _tmp46_;
	_tmp74_[46] = _tmp47_;
	_tmp74_[47] = _tmp48_;
	_tmp74_[48] = _tmp49_;
	_tmp74_[49] = _tmp50_;
	_tmp74_[50] = _tmp51_;
	_tmp74_[51] = _tmp52_;
	_tmp74_[52] = _tmp53_;
	_tmp74_[53] = _tmp54_;
	_tmp74_[54] = _tmp55_;
	_tmp74_[55] = _tmp56_;
	_tmp74_[56] = _tmp57_;
	_tmp74_[57] = _tmp58_;
	_tmp74_[58] = _tmp59_;
	_tmp74_[59] = _tmp60_;
	_tmp74_[60] = _tmp61_;
	_tmp74_[61] = _tmp62_;
	_tmp74_[62] = _tmp63_;
	_tmp74_[63] = _tmp64_;
	_tmp74_[64] = _tmp65_;
	_tmp74_[65] = _tmp66_;
	_tmp74_[66] = _tmp67_;
	_tmp74_[67] = _tmp68_;
	_tmp74_[68] = _tmp69_;
	_tmp74_[69] = _tmp70_;
	_tmp74_[70] = _tmp71_;
	_tmp74_[71] = _tmp72_;
	_tmp74_[72] = _tmp73_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp74_;
		action_collection_length1 = 73;
		for (action_it = 0; action_it < 73; action_it = action_it + 1) {
			gchar* _tmp75_ = NULL;
			gchar* action = NULL;
			_tmp75_ = g_strdup (action_collection[action_it]);
			action = _tmp75_;
			{
				GHashTable* _tmp76_ = NULL;
				const gchar* _tmp77_ = NULL;
				gchar* _tmp78_ = NULL;
				_tmp76_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp77_ = action;
				_tmp78_ = g_strdup (_tmp77_);
				g_hash_table_insert (_tmp76_, _tmp78_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}


static void wixl_wix_install_execute_sequence_instance_init (WixlWixInstallExecuteSequence * self) {
}


GType wixl_wix_install_execute_sequence_get_type (void) {
	static volatile gsize wixl_wix_install_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_install_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixInstallExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_install_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixInstallExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_install_execute_sequence_instance_init, NULL };
		GType wixl_wix_install_execute_sequence_type_id;
		wixl_wix_install_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixInstallExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_install_execute_sequence_type_id__volatile, wixl_wix_install_execute_sequence_type_id);
	}
	return wixl_wix_install_execute_sequence_type_id__volatile;
}


WixlWixInstallUISequence* wixl_wix_install_ui_sequence_construct (GType object_type) {
	WixlWixInstallUISequence * self = NULL;
	self = (WixlWixInstallUISequence*) wixl_wix_sequence_construct (object_type);
	return self;
}


WixlWixInstallUISequence* wixl_wix_install_ui_sequence_new (void) {
	return wixl_wix_install_ui_sequence_construct (WIXL_TYPE_WIX_INSTALL_UI_SEQUENCE);
}


static void wixl_wix_install_ui_sequence_class_init (WixlWixInstallUISequenceClass * klass) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gchar** _tmp17_ = NULL;
	wixl_wix_install_ui_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("InstallUISequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("AppSearch");
	_tmp2_ = g_strdup ("CCPSearch");
	_tmp3_ = g_strdup ("CostFinalize");
	_tmp4_ = g_strdup ("CostInitialize");
	_tmp5_ = g_strdup ("Custom");
	_tmp6_ = g_strdup ("ExecuteAction");
	_tmp7_ = g_strdup ("FileCost");
	_tmp8_ = g_strdup ("FindRelatedProducts");
	_tmp9_ = g_strdup ("IsolateComponents");
	_tmp10_ = g_strdup ("LaunchConditions");
	_tmp11_ = g_strdup ("MigrateFeatureStates");
	_tmp12_ = g_strdup ("ResolveSource");
	_tmp13_ = g_strdup ("RMCCPSearch");
	_tmp14_ = g_strdup ("ScheduleReboot");
	_tmp15_ = g_strdup ("Show");
	_tmp16_ = g_strdup ("ValidateProductID");
	_tmp17_ = g_new0 (gchar*, 16 + 1);
	_tmp17_[0] = _tmp1_;
	_tmp17_[1] = _tmp2_;
	_tmp17_[2] = _tmp3_;
	_tmp17_[3] = _tmp4_;
	_tmp17_[4] = _tmp5_;
	_tmp17_[5] = _tmp6_;
	_tmp17_[6] = _tmp7_;
	_tmp17_[7] = _tmp8_;
	_tmp17_[8] = _tmp9_;
	_tmp17_[9] = _tmp10_;
	_tmp17_[10] = _tmp11_;
	_tmp17_[11] = _tmp12_;
	_tmp17_[12] = _tmp13_;
	_tmp17_[13] = _tmp14_;
	_tmp17_[14] = _tmp15_;
	_tmp17_[15] = _tmp16_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp17_;
		action_collection_length1 = 16;
		for (action_it = 0; action_it < 16; action_it = action_it + 1) {
			gchar* _tmp18_ = NULL;
			gchar* action = NULL;
			_tmp18_ = g_strdup (action_collection[action_it]);
			action = _tmp18_;
			{
				GHashTable* _tmp19_ = NULL;
				const gchar* _tmp20_ = NULL;
				gchar* _tmp21_ = NULL;
				_tmp19_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp20_ = action;
				_tmp21_ = g_strdup (_tmp20_);
				g_hash_table_insert (_tmp19_, _tmp21_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}


static void wixl_wix_install_ui_sequence_instance_init (WixlWixInstallUISequence * self) {
}


GType wixl_wix_install_ui_sequence_get_type (void) {
	static volatile gsize wixl_wix_install_ui_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_install_ui_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixInstallUISequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_install_ui_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixInstallUISequence), 0, (GInstanceInitFunc) wixl_wix_install_ui_sequence_instance_init, NULL };
		GType wixl_wix_install_ui_sequence_type_id;
		wixl_wix_install_ui_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixInstallUISequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_install_ui_sequence_type_id__volatile, wixl_wix_install_ui_sequence_type_id);
	}
	return wixl_wix_install_ui_sequence_type_id__volatile;
}


WixlWixAdminExecuteSequence* wixl_wix_admin_execute_sequence_construct (GType object_type) {
	WixlWixAdminExecuteSequence * self = NULL;
	self = (WixlWixAdminExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}


WixlWixAdminExecuteSequence* wixl_wix_admin_execute_sequence_new (void) {
	return wixl_wix_admin_execute_sequence_construct (WIXL_TYPE_WIX_ADMIN_EXECUTE_SEQUENCE);
}


static void wixl_wix_admin_execute_sequence_class_init (WixlWixAdminExecuteSequenceClass * klass) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar** _tmp13_ = NULL;
	wixl_wix_admin_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdminExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("Custom");
	_tmp4_ = g_strdup ("FileCost");
	_tmp5_ = g_strdup ("InstallAdminPackage");
	_tmp6_ = g_strdup ("InstallFiles");
	_tmp7_ = g_strdup ("InstallFinalize");
	_tmp8_ = g_strdup ("InstallInitialize");
	_tmp9_ = g_strdup ("InstallValidate");
	_tmp10_ = g_strdup ("LaunchConditions");
	_tmp11_ = g_strdup ("PatchFiles");
	_tmp12_ = g_strdup ("ResolveSource");
	_tmp13_ = g_new0 (gchar*, 12 + 1);
	_tmp13_[0] = _tmp1_;
	_tmp13_[1] = _tmp2_;
	_tmp13_[2] = _tmp3_;
	_tmp13_[3] = _tmp4_;
	_tmp13_[4] = _tmp5_;
	_tmp13_[5] = _tmp6_;
	_tmp13_[6] = _tmp7_;
	_tmp13_[7] = _tmp8_;
	_tmp13_[8] = _tmp9_;
	_tmp13_[9] = _tmp10_;
	_tmp13_[10] = _tmp11_;
	_tmp13_[11] = _tmp12_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp13_;
		action_collection_length1 = 12;
		for (action_it = 0; action_it < 12; action_it = action_it + 1) {
			gchar* _tmp14_ = NULL;
			gchar* action = NULL;
			_tmp14_ = g_strdup (action_collection[action_it]);
			action = _tmp14_;
			{
				GHashTable* _tmp15_ = NULL;
				const gchar* _tmp16_ = NULL;
				gchar* _tmp17_ = NULL;
				_tmp15_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp16_ = action;
				_tmp17_ = g_strdup (_tmp16_);
				g_hash_table_insert (_tmp15_, _tmp17_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}


static void wixl_wix_admin_execute_sequence_instance_init (WixlWixAdminExecuteSequence * self) {
}


GType wixl_wix_admin_execute_sequence_get_type (void) {
	static volatile gsize wixl_wix_admin_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_admin_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdminExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_admin_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdminExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_admin_execute_sequence_instance_init, NULL };
		GType wixl_wix_admin_execute_sequence_type_id;
		wixl_wix_admin_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdminExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_admin_execute_sequence_type_id__volatile, wixl_wix_admin_execute_sequence_type_id);
	}
	return wixl_wix_admin_execute_sequence_type_id__volatile;
}


WixlWixAdminUISequence* wixl_wix_admin_ui_sequence_construct (GType object_type) {
	WixlWixAdminUISequence * self = NULL;
	self = (WixlWixAdminUISequence*) wixl_wix_sequence_construct (object_type);
	return self;
}


WixlWixAdminUISequence* wixl_wix_admin_ui_sequence_new (void) {
	return wixl_wix_admin_ui_sequence_construct (WIXL_TYPE_WIX_ADMIN_UI_SEQUENCE);
}


static void wixl_wix_admin_ui_sequence_class_init (WixlWixAdminUISequenceClass * klass) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar** _tmp13_ = NULL;
	wixl_wix_admin_ui_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdminUISequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("Custom");
	_tmp4_ = g_strdup ("ExecuteAction");
	_tmp5_ = g_strdup ("FileCost");
	_tmp6_ = g_strdup ("InstallAdminPackage");
	_tmp7_ = g_strdup ("InstallFiles");
	_tmp8_ = g_strdup ("InstallFinalize");
	_tmp9_ = g_strdup ("InstallInitialize");
	_tmp10_ = g_strdup ("InstallValidate");
	_tmp11_ = g_strdup ("LaunchConditions");
	_tmp12_ = g_strdup ("Show");
	_tmp13_ = g_new0 (gchar*, 12 + 1);
	_tmp13_[0] = _tmp1_;
	_tmp13_[1] = _tmp2_;
	_tmp13_[2] = _tmp3_;
	_tmp13_[3] = _tmp4_;
	_tmp13_[4] = _tmp5_;
	_tmp13_[5] = _tmp6_;
	_tmp13_[6] = _tmp7_;
	_tmp13_[7] = _tmp8_;
	_tmp13_[8] = _tmp9_;
	_tmp13_[9] = _tmp10_;
	_tmp13_[10] = _tmp11_;
	_tmp13_[11] = _tmp12_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp13_;
		action_collection_length1 = 12;
		for (action_it = 0; action_it < 12; action_it = action_it + 1) {
			gchar* _tmp14_ = NULL;
			gchar* action = NULL;
			_tmp14_ = g_strdup (action_collection[action_it]);
			action = _tmp14_;
			{
				GHashTable* _tmp15_ = NULL;
				const gchar* _tmp16_ = NULL;
				gchar* _tmp17_ = NULL;
				_tmp15_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp16_ = action;
				_tmp17_ = g_strdup (_tmp16_);
				g_hash_table_insert (_tmp15_, _tmp17_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}


static void wixl_wix_admin_ui_sequence_instance_init (WixlWixAdminUISequence * self) {
}


GType wixl_wix_admin_ui_sequence_get_type (void) {
	static volatile gsize wixl_wix_admin_ui_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_admin_ui_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdminUISequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_admin_ui_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdminUISequence), 0, (GInstanceInitFunc) wixl_wix_admin_ui_sequence_instance_init, NULL };
		GType wixl_wix_admin_ui_sequence_type_id;
		wixl_wix_admin_ui_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdminUISequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_admin_ui_sequence_type_id__volatile, wixl_wix_admin_ui_sequence_type_id);
	}
	return wixl_wix_admin_ui_sequence_type_id__volatile;
}


WixlWixAdvertiseExecuteSequence* wixl_wix_advertise_execute_sequence_construct (GType object_type) {
	WixlWixAdvertiseExecuteSequence * self = NULL;
	self = (WixlWixAdvertiseExecuteSequence*) wixl_wix_sequence_construct (object_type);
	return self;
}


WixlWixAdvertiseExecuteSequence* wixl_wix_advertise_execute_sequence_new (void) {
	return wixl_wix_advertise_execute_sequence_construct (WIXL_TYPE_WIX_ADVERTISE_EXECUTE_SEQUENCE);
}


static void wixl_wix_advertise_execute_sequence_class_init (WixlWixAdvertiseExecuteSequenceClass * klass) {
	gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar** _tmp16_ = NULL;
	wixl_wix_advertise_execute_sequence_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("AdvertiseExecuteSequence");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = g_strdup ("CostFinalize");
	_tmp2_ = g_strdup ("CostInitialize");
	_tmp3_ = g_strdup ("CreateShortcuts");
	_tmp4_ = g_strdup ("Custom");
	_tmp5_ = g_strdup ("InstallFinalize");
	_tmp6_ = g_strdup ("InstallInitialize");
	_tmp7_ = g_strdup ("InstallValidate");
	_tmp8_ = g_strdup ("MsiPublishAssemblies");
	_tmp9_ = g_strdup ("PublishComponents");
	_tmp10_ = g_strdup ("PublishFeatures");
	_tmp11_ = g_strdup ("PublishProduct");
	_tmp12_ = g_strdup ("RegisterClassInfo");
	_tmp13_ = g_strdup ("RegisterExtensionInfo");
	_tmp14_ = g_strdup ("RegisterMIMEInfo");
	_tmp15_ = g_strdup ("RegisterProgIdInfo");
	_tmp16_ = g_new0 (gchar*, 15 + 1);
	_tmp16_[0] = _tmp1_;
	_tmp16_[1] = _tmp2_;
	_tmp16_[2] = _tmp3_;
	_tmp16_[3] = _tmp4_;
	_tmp16_[4] = _tmp5_;
	_tmp16_[5] = _tmp6_;
	_tmp16_[6] = _tmp7_;
	_tmp16_[7] = _tmp8_;
	_tmp16_[8] = _tmp9_;
	_tmp16_[9] = _tmp10_;
	_tmp16_[10] = _tmp11_;
	_tmp16_[11] = _tmp12_;
	_tmp16_[12] = _tmp13_;
	_tmp16_[13] = _tmp14_;
	_tmp16_[14] = _tmp15_;
	{
		gchar** action_collection = NULL;
		gint action_collection_length1 = 0;
		gint _action_collection_size_ = 0;
		gint action_it = 0;
		action_collection = _tmp16_;
		action_collection_length1 = 15;
		for (action_it = 0; action_it < 15; action_it = action_it + 1) {
			gchar* _tmp17_ = NULL;
			gchar* action = NULL;
			_tmp17_ = g_strdup (action_collection[action_it]);
			action = _tmp17_;
			{
				GHashTable* _tmp18_ = NULL;
				const gchar* _tmp19_ = NULL;
				gchar* _tmp20_ = NULL;
				_tmp18_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
				_tmp19_ = action;
				_tmp20_ = g_strdup (_tmp19_);
				g_hash_table_insert (_tmp18_, _tmp20_, (gpointer) ((gintptr) WIXL_TYPE_WIX_ACTION));
				_g_free0 (action);
			}
		}
		action_collection = (_vala_array_free (action_collection, action_collection_length1, (GDestroyNotify) g_free), NULL);
	}
}


static void wixl_wix_advertise_execute_sequence_instance_init (WixlWixAdvertiseExecuteSequence * self) {
}


GType wixl_wix_advertise_execute_sequence_get_type (void) {
	static volatile gsize wixl_wix_advertise_execute_sequence_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_advertise_execute_sequence_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixAdvertiseExecuteSequenceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_advertise_execute_sequence_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixAdvertiseExecuteSequence), 0, (GInstanceInitFunc) wixl_wix_advertise_execute_sequence_instance_init, NULL };
		GType wixl_wix_advertise_execute_sequence_type_id;
		wixl_wix_advertise_execute_sequence_type_id = g_type_register_static (WIXL_TYPE_WIX_SEQUENCE, "WixlWixAdvertiseExecuteSequence", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_advertise_execute_sequence_type_id__volatile, wixl_wix_advertise_execute_sequence_type_id);
	}
	return wixl_wix_advertise_execute_sequence_type_id__volatile;
}


static void wixl_wix_upgrade_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixUpgrade * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixUpgrade*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_upgrade_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_upgrade (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixUpgrade* wixl_wix_upgrade_construct (GType object_type) {
	WixlWixUpgrade * self = NULL;
	self = (WixlWixUpgrade*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixUpgrade* wixl_wix_upgrade_new (void) {
	return wixl_wix_upgrade_construct (WIXL_TYPE_WIX_UPGRADE);
}


static void wixl_wix_upgrade_class_init (WixlWixUpgradeClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_upgrade_parent_class = g_type_class_peek_parent (klass);
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_upgrade_real_accept;
	_tmp0_ = g_strdup ("Upgrade");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_UPGRADE_VERSION;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_upgrade_instance_init (WixlWixUpgrade * self) {
}


GType wixl_wix_upgrade_get_type (void) {
	static volatile gsize wixl_wix_upgrade_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_upgrade_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixUpgradeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_upgrade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixUpgrade), 0, (GInstanceInitFunc) wixl_wix_upgrade_instance_init, NULL };
		GType wixl_wix_upgrade_type_id;
		wixl_wix_upgrade_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixUpgrade", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_upgrade_type_id__volatile, wixl_wix_upgrade_type_id);
	}
	return wixl_wix_upgrade_type_id__volatile;
}


static void wixl_wix_upgrade_version_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixUpgradeVersion * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixUpgradeVersion*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_upgrade_version (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixUpgradeVersion* wixl_wix_upgrade_version_construct (GType object_type) {
	WixlWixUpgradeVersion * self = NULL;
	self = (WixlWixUpgradeVersion*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixUpgradeVersion* wixl_wix_upgrade_version_new (void) {
	return wixl_wix_upgrade_version_construct (WIXL_TYPE_WIX_UPGRADE_VERSION);
}


const gchar* wixl_wix_upgrade_version_get_Minimum (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Minimum;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_Minimum (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Minimum);
	self->priv->_Minimum = _tmp1_;
	g_object_notify ((GObject *) self, "Minimum");
}


const gchar* wixl_wix_upgrade_version_get_Maximum (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Maximum;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_Maximum (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Maximum);
	self->priv->_Maximum = _tmp1_;
	g_object_notify ((GObject *) self, "Maximum");
}


const gchar* wixl_wix_upgrade_version_get_IncludeMinimum (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IncludeMinimum;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_IncludeMinimum (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_IncludeMinimum);
	self->priv->_IncludeMinimum = _tmp1_;
	g_object_notify ((GObject *) self, "IncludeMinimum");
}


const gchar* wixl_wix_upgrade_version_get_IncludeMaximum (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_IncludeMaximum;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_IncludeMaximum (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_IncludeMaximum);
	self->priv->_IncludeMaximum = _tmp1_;
	g_object_notify ((GObject *) self, "IncludeMaximum");
}


const gchar* wixl_wix_upgrade_version_get_OnlyDetect (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_OnlyDetect;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_OnlyDetect (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_OnlyDetect);
	self->priv->_OnlyDetect = _tmp1_;
	g_object_notify ((GObject *) self, "OnlyDetect");
}


const gchar* wixl_wix_upgrade_version_get_Property (WixlWixUpgradeVersion* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Property;
	result = _tmp0_;
	return result;
}


void wixl_wix_upgrade_version_set_Property (WixlWixUpgradeVersion* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Property);
	self->priv->_Property = _tmp1_;
	g_object_notify ((GObject *) self, "Property");
}


static void wixl_wix_upgrade_version_class_init (WixlWixUpgradeVersionClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_upgrade_version_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixUpgradeVersionPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_upgrade_version_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_upgrade_version_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_upgrade_version_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_upgrade_version_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_MINIMUM, g_param_spec_string ("Minimum", "Minimum", "Minimum", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_MAXIMUM, g_param_spec_string ("Maximum", "Maximum", "Maximum", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM, g_param_spec_string ("IncludeMinimum", "IncludeMinimum", "IncludeMinimum", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM, g_param_spec_string ("IncludeMaximum", "IncludeMaximum", "IncludeMaximum", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT, g_param_spec_string ("OnlyDetect", "OnlyDetect", "OnlyDetect", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_UPGRADE_VERSION_PROPERTY, g_param_spec_string ("Property", "Property", "Property", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("UpgradeVersion");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_upgrade_version_instance_init (WixlWixUpgradeVersion * self) {
	self->priv = WIXL_WIX_UPGRADE_VERSION_GET_PRIVATE (self);
}


static void wixl_wix_upgrade_version_finalize (GObject* obj) {
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	_g_free0 (self->priv->_Minimum);
	_g_free0 (self->priv->_Maximum);
	_g_free0 (self->priv->_IncludeMinimum);
	_g_free0 (self->priv->_IncludeMaximum);
	_g_free0 (self->priv->_OnlyDetect);
	_g_free0 (self->priv->_Property);
	G_OBJECT_CLASS (wixl_wix_upgrade_version_parent_class)->finalize (obj);
}


GType wixl_wix_upgrade_version_get_type (void) {
	static volatile gsize wixl_wix_upgrade_version_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_upgrade_version_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixUpgradeVersionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_upgrade_version_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixUpgradeVersion), 0, (GInstanceInitFunc) wixl_wix_upgrade_version_instance_init, NULL };
		GType wixl_wix_upgrade_version_type_id;
		wixl_wix_upgrade_version_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixUpgradeVersion", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_upgrade_version_type_id__volatile, wixl_wix_upgrade_version_type_id);
	}
	return wixl_wix_upgrade_version_type_id__volatile;
}


static void _vala_wixl_wix_upgrade_version_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	switch (property_id) {
		case WIXL_WIX_UPGRADE_VERSION_MINIMUM:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Minimum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_MAXIMUM:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Maximum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM:
		g_value_set_string (value, wixl_wix_upgrade_version_get_IncludeMinimum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM:
		g_value_set_string (value, wixl_wix_upgrade_version_get_IncludeMaximum (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT:
		g_value_set_string (value, wixl_wix_upgrade_version_get_OnlyDetect (self));
		break;
		case WIXL_WIX_UPGRADE_VERSION_PROPERTY:
		g_value_set_string (value, wixl_wix_upgrade_version_get_Property (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_upgrade_version_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixUpgradeVersion * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_UPGRADE_VERSION, WixlWixUpgradeVersion);
	switch (property_id) {
		case WIXL_WIX_UPGRADE_VERSION_MINIMUM:
		wixl_wix_upgrade_version_set_Minimum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_MAXIMUM:
		wixl_wix_upgrade_version_set_Maximum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MINIMUM:
		wixl_wix_upgrade_version_set_IncludeMinimum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_INCLUDE_MAXIMUM:
		wixl_wix_upgrade_version_set_IncludeMaximum (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_ONLY_DETECT:
		wixl_wix_upgrade_version_set_OnlyDetect (self, g_value_get_string (value));
		break;
		case WIXL_WIX_UPGRADE_VERSION_PROPERTY:
		wixl_wix_upgrade_version_set_Property (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_custom_action_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixCustomAction * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixCustomAction*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_custom_action (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixCustomAction* wixl_wix_custom_action_construct (GType object_type) {
	WixlWixCustomAction * self = NULL;
	self = (WixlWixCustomAction*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixCustomAction* wixl_wix_custom_action_new (void) {
	return wixl_wix_custom_action_construct (WIXL_TYPE_WIX_CUSTOM_ACTION);
}


const gchar* wixl_wix_custom_action_get_Property (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Property;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_Property (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Property);
	self->priv->_Property = _tmp1_;
	g_object_notify ((GObject *) self, "Property");
}


const gchar* wixl_wix_custom_action_get_Execute (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Execute;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_Execute (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Execute);
	self->priv->_Execute = _tmp1_;
	g_object_notify ((GObject *) self, "Execute");
}


const gchar* wixl_wix_custom_action_get_ExeCommand (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_ExeCommand;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_ExeCommand (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_ExeCommand);
	self->priv->_ExeCommand = _tmp1_;
	g_object_notify ((GObject *) self, "ExeCommand");
}


const gchar* wixl_wix_custom_action_get_Impersonate (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Impersonate;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_Impersonate (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Impersonate);
	self->priv->_Impersonate = _tmp1_;
	g_object_notify ((GObject *) self, "Impersonate");
}


const gchar* wixl_wix_custom_action_get_Return (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Return;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_Return (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Return);
	self->priv->_Return = _tmp1_;
	g_object_notify ((GObject *) self, "Return");
}


const gchar* wixl_wix_custom_action_get_BinaryKey (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_BinaryKey;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_BinaryKey (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_BinaryKey);
	self->priv->_BinaryKey = _tmp1_;
	g_object_notify ((GObject *) self, "BinaryKey");
}


const gchar* wixl_wix_custom_action_get_DllEntry (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DllEntry;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_DllEntry (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_DllEntry);
	self->priv->_DllEntry = _tmp1_;
	g_object_notify ((GObject *) self, "DllEntry");
}


const gchar* wixl_wix_custom_action_get_HideTarget (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_HideTarget;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_HideTarget (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_HideTarget);
	self->priv->_HideTarget = _tmp1_;
	g_object_notify ((GObject *) self, "HideTarget");
}


const gchar* wixl_wix_custom_action_get_JScriptCall (WixlWixCustomAction* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_JScriptCall;
	result = _tmp0_;
	return result;
}


void wixl_wix_custom_action_set_JScriptCall (WixlWixCustomAction* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_JScriptCall);
	self->priv->_JScriptCall = _tmp1_;
	g_object_notify ((GObject *) self, "JScriptCall");
}


static void wixl_wix_custom_action_class_init (WixlWixCustomActionClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_custom_action_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixCustomActionPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_custom_action_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_custom_action_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_custom_action_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_custom_action_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_PROPERTY, g_param_spec_string ("Property", "Property", "Property", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_EXECUTE, g_param_spec_string ("Execute", "Execute", "Execute", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND, g_param_spec_string ("ExeCommand", "ExeCommand", "ExeCommand", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_IMPERSONATE, g_param_spec_string ("Impersonate", "Impersonate", "Impersonate", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_RETURN, g_param_spec_string ("Return", "Return", "Return", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_BINARY_KEY, g_param_spec_string ("BinaryKey", "BinaryKey", "BinaryKey", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY, g_param_spec_string ("DllEntry", "DllEntry", "DllEntry", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET, g_param_spec_string ("HideTarget", "HideTarget", "HideTarget", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL, g_param_spec_string ("JScriptCall", "JScriptCall", "JScriptCall", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("CustomAction");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_custom_action_instance_init (WixlWixCustomAction * self) {
	self->priv = WIXL_WIX_CUSTOM_ACTION_GET_PRIVATE (self);
}


static void wixl_wix_custom_action_finalize (GObject* obj) {
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	_g_free0 (self->priv->_Property);
	_g_free0 (self->priv->_Execute);
	_g_free0 (self->priv->_ExeCommand);
	_g_free0 (self->priv->_Impersonate);
	_g_free0 (self->priv->_Return);
	_g_free0 (self->priv->_BinaryKey);
	_g_free0 (self->priv->_DllEntry);
	_g_free0 (self->priv->_HideTarget);
	_g_free0 (self->priv->_JScriptCall);
	G_OBJECT_CLASS (wixl_wix_custom_action_parent_class)->finalize (obj);
}


GType wixl_wix_custom_action_get_type (void) {
	static volatile gsize wixl_wix_custom_action_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_custom_action_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixCustomActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_custom_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixCustomAction), 0, (GInstanceInitFunc) wixl_wix_custom_action_instance_init, NULL };
		GType wixl_wix_custom_action_type_id;
		wixl_wix_custom_action_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixCustomAction", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_custom_action_type_id__volatile, wixl_wix_custom_action_type_id);
	}
	return wixl_wix_custom_action_type_id__volatile;
}


static void _vala_wixl_wix_custom_action_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	switch (property_id) {
		case WIXL_WIX_CUSTOM_ACTION_PROPERTY:
		g_value_set_string (value, wixl_wix_custom_action_get_Property (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXECUTE:
		g_value_set_string (value, wixl_wix_custom_action_get_Execute (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND:
		g_value_set_string (value, wixl_wix_custom_action_get_ExeCommand (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_IMPERSONATE:
		g_value_set_string (value, wixl_wix_custom_action_get_Impersonate (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_RETURN:
		g_value_set_string (value, wixl_wix_custom_action_get_Return (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_BINARY_KEY:
		g_value_set_string (value, wixl_wix_custom_action_get_BinaryKey (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY:
		g_value_set_string (value, wixl_wix_custom_action_get_DllEntry (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET:
		g_value_set_string (value, wixl_wix_custom_action_get_HideTarget (self));
		break;
		case WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL:
		g_value_set_string (value, wixl_wix_custom_action_get_JScriptCall (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_custom_action_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixCustomAction * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_CUSTOM_ACTION, WixlWixCustomAction);
	switch (property_id) {
		case WIXL_WIX_CUSTOM_ACTION_PROPERTY:
		wixl_wix_custom_action_set_Property (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXECUTE:
		wixl_wix_custom_action_set_Execute (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_EXE_COMMAND:
		wixl_wix_custom_action_set_ExeCommand (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_IMPERSONATE:
		wixl_wix_custom_action_set_Impersonate (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_RETURN:
		wixl_wix_custom_action_set_Return (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_BINARY_KEY:
		wixl_wix_custom_action_set_BinaryKey (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_DLL_ENTRY:
		wixl_wix_custom_action_set_DllEntry (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_HIDE_TARGET:
		wixl_wix_custom_action_set_HideTarget (self, g_value_get_string (value));
		break;
		case WIXL_WIX_CUSTOM_ACTION_JSCRIPT_CALL:
		wixl_wix_custom_action_set_JScriptCall (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_binary_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixBinary * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixBinary*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_binary (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixBinary* wixl_wix_binary_construct (GType object_type) {
	WixlWixBinary * self = NULL;
	self = (WixlWixBinary*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixBinary* wixl_wix_binary_new (void) {
	return wixl_wix_binary_construct (WIXL_TYPE_WIX_BINARY);
}


const gchar* wixl_wix_binary_get_SourceFile (WixlWixBinary* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_SourceFile;
	result = _tmp0_;
	return result;
}


void wixl_wix_binary_set_SourceFile (WixlWixBinary* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_SourceFile);
	self->priv->_SourceFile = _tmp1_;
	g_object_notify ((GObject *) self, "SourceFile");
}


static void wixl_wix_binary_class_init (WixlWixBinaryClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_binary_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixBinaryPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_binary_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_binary_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_binary_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_binary_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_BINARY_SOURCE_FILE, g_param_spec_string ("SourceFile", "SourceFile", "SourceFile", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Binary");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_binary_instance_init (WixlWixBinary * self) {
	self->priv = WIXL_WIX_BINARY_GET_PRIVATE (self);
}


static void wixl_wix_binary_finalize (GObject* obj) {
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	_g_free0 (self->priv->_SourceFile);
	_g_object_unref0 (self->file);
	G_OBJECT_CLASS (wixl_wix_binary_parent_class)->finalize (obj);
}


GType wixl_wix_binary_get_type (void) {
	static volatile gsize wixl_wix_binary_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_binary_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixBinaryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_binary_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixBinary), 0, (GInstanceInitFunc) wixl_wix_binary_instance_init, NULL };
		GType wixl_wix_binary_type_id;
		wixl_wix_binary_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixBinary", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_binary_type_id__volatile, wixl_wix_binary_type_id);
	}
	return wixl_wix_binary_type_id__volatile;
}


static void _vala_wixl_wix_binary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	switch (property_id) {
		case WIXL_WIX_BINARY_SOURCE_FILE:
		g_value_set_string (value, wixl_wix_binary_get_SourceFile (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_binary_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixBinary * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_BINARY, WixlWixBinary);
	switch (property_id) {
		case WIXL_WIX_BINARY_SOURCE_FILE:
		wixl_wix_binary_set_SourceFile (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_major_upgrade_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixMajorUpgrade * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixMajorUpgrade*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_major_upgrade (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixMajorUpgrade* wixl_wix_major_upgrade_construct (GType object_type) {
	WixlWixMajorUpgrade * self = NULL;
	self = (WixlWixMajorUpgrade*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixMajorUpgrade* wixl_wix_major_upgrade_new (void) {
	return wixl_wix_major_upgrade_construct (WIXL_TYPE_WIX_MAJOR_UPGRADE);
}


const gchar* wixl_wix_major_upgrade_get_DowngradeErrorMessage (WixlWixMajorUpgrade* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DowngradeErrorMessage;
	result = _tmp0_;
	return result;
}


void wixl_wix_major_upgrade_set_DowngradeErrorMessage (WixlWixMajorUpgrade* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_DowngradeErrorMessage);
	self->priv->_DowngradeErrorMessage = _tmp1_;
	g_object_notify ((GObject *) self, "DowngradeErrorMessage");
}


static void wixl_wix_major_upgrade_class_init (WixlWixMajorUpgradeClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_major_upgrade_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixMajorUpgradePrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_major_upgrade_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_major_upgrade_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_major_upgrade_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_major_upgrade_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE, g_param_spec_string ("DowngradeErrorMessage", "DowngradeErrorMessage", "DowngradeErrorMessage", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MajorUpgrade");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_major_upgrade_instance_init (WixlWixMajorUpgrade * self) {
	self->priv = WIXL_WIX_MAJOR_UPGRADE_GET_PRIVATE (self);
}


static void wixl_wix_major_upgrade_finalize (GObject* obj) {
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	_g_free0 (self->priv->_DowngradeErrorMessage);
	G_OBJECT_CLASS (wixl_wix_major_upgrade_parent_class)->finalize (obj);
}


GType wixl_wix_major_upgrade_get_type (void) {
	static volatile gsize wixl_wix_major_upgrade_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_major_upgrade_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMajorUpgradeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_major_upgrade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMajorUpgrade), 0, (GInstanceInitFunc) wixl_wix_major_upgrade_instance_init, NULL };
		GType wixl_wix_major_upgrade_type_id;
		wixl_wix_major_upgrade_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMajorUpgrade", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_major_upgrade_type_id__volatile, wixl_wix_major_upgrade_type_id);
	}
	return wixl_wix_major_upgrade_type_id__volatile;
}


static void _vala_wixl_wix_major_upgrade_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	switch (property_id) {
		case WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE:
		g_value_set_string (value, wixl_wix_major_upgrade_get_DowngradeErrorMessage (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_major_upgrade_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixMajorUpgrade * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MAJOR_UPGRADE, WixlWixMajorUpgrade);
	switch (property_id) {
		case WIXL_WIX_MAJOR_UPGRADE_DOWNGRADE_ERROR_MESSAGE:
		wixl_wix_major_upgrade_set_DowngradeErrorMessage (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_media_template_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixMediaTemplate * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixMediaTemplate*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_media_template (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixMediaTemplate* wixl_wix_media_template_construct (GType object_type) {
	WixlWixMediaTemplate * self = NULL;
	self = (WixlWixMediaTemplate*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixMediaTemplate* wixl_wix_media_template_new (void) {
	return wixl_wix_media_template_construct (WIXL_TYPE_WIX_MEDIA_TEMPLATE);
}


const gchar* wixl_wix_media_template_get_EmbedCab (WixlWixMediaTemplate* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EmbedCab;
	result = _tmp0_;
	return result;
}


void wixl_wix_media_template_set_EmbedCab (WixlWixMediaTemplate* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_EmbedCab);
	self->priv->_EmbedCab = _tmp1_;
	g_object_notify ((GObject *) self, "EmbedCab");
}


static void wixl_wix_media_template_class_init (WixlWixMediaTemplateClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_media_template_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixMediaTemplatePrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_media_template_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_media_template_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_media_template_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_media_template_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB, g_param_spec_string ("EmbedCab", "EmbedCab", "EmbedCab", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("MediaTemplate");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_media_template_instance_init (WixlWixMediaTemplate * self) {
	self->priv = WIXL_WIX_MEDIA_TEMPLATE_GET_PRIVATE (self);
}


static void wixl_wix_media_template_finalize (GObject* obj) {
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	_g_free0 (self->priv->_EmbedCab);
	G_OBJECT_CLASS (wixl_wix_media_template_parent_class)->finalize (obj);
}


GType wixl_wix_media_template_get_type (void) {
	static volatile gsize wixl_wix_media_template_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_media_template_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMediaTemplateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_media_template_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMediaTemplate), 0, (GInstanceInitFunc) wixl_wix_media_template_instance_init, NULL };
		GType wixl_wix_media_template_type_id;
		wixl_wix_media_template_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMediaTemplate", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_media_template_type_id__volatile, wixl_wix_media_template_type_id);
	}
	return wixl_wix_media_template_type_id__volatile;
}


static void _vala_wixl_wix_media_template_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	switch (property_id) {
		case WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB:
		g_value_set_string (value, wixl_wix_media_template_get_EmbedCab (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_media_template_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixMediaTemplate * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA_TEMPLATE, WixlWixMediaTemplate);
	switch (property_id) {
		case WIXL_WIX_MEDIA_TEMPLATE_EMBED_CAB:
		wixl_wix_media_template_set_EmbedCab (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


WixlWixProduct* wixl_wix_product_construct (GType object_type) {
	WixlWixProduct * self = NULL;
	self = (WixlWixProduct*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixProduct* wixl_wix_product_new (void) {
	return wixl_wix_product_construct (WIXL_TYPE_WIX_PRODUCT);
}


static void wixl_wix_product_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixProduct * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixProduct*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_product_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_product (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


const gchar* wixl_wix_product_get_Name (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_Name (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


const gchar* wixl_wix_product_get_UpgradeCode (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_UpgradeCode;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_UpgradeCode (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_UpgradeCode);
	self->priv->_UpgradeCode = _tmp1_;
	g_object_notify ((GObject *) self, "UpgradeCode");
}


const gchar* wixl_wix_product_get_Language (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Language;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_Language (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Language);
	self->priv->_Language = _tmp1_;
	g_object_notify ((GObject *) self, "Language");
}


const gchar* wixl_wix_product_get_Codepage (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Codepage;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_Codepage (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Codepage);
	self->priv->_Codepage = _tmp1_;
	g_object_notify ((GObject *) self, "Codepage");
}


const gchar* wixl_wix_product_get_Version (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Version;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_Version (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Version);
	self->priv->_Version = _tmp1_;
	g_object_notify ((GObject *) self, "Version");
}


const gchar* wixl_wix_product_get_Manufacturer (WixlWixProduct* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Manufacturer;
	result = _tmp0_;
	return result;
}


void wixl_wix_product_set_Manufacturer (WixlWixProduct* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Manufacturer);
	self->priv->_Manufacturer = _tmp1_;
	g_object_notify ((GObject *) self, "Manufacturer");
}


static void wixl_wix_product_class_init (WixlWixProductClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_product_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixProductPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_product_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_product_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_product_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_product_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_UPGRADE_CODE, g_param_spec_string ("UpgradeCode", "UpgradeCode", "UpgradeCode", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_LANGUAGE, g_param_spec_string ("Language", "Language", "Language", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_CODEPAGE, g_param_spec_string ("Codepage", "Codepage", "Codepage", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_VERSION, g_param_spec_string ("Version", "Version", "Version", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_PRODUCT_MANUFACTURER, g_param_spec_string ("Manufacturer", "Manufacturer", "Manufacturer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Product");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 18);
	_tmp2_[0] = WIXL_TYPE_WIX_CONDITION;
	_tmp2_[1] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[2] = WIXL_TYPE_WIX_DIRECTORY_REF;
	_tmp2_[3] = WIXL_TYPE_WIX_FEATURE;
	_tmp2_[4] = WIXL_TYPE_WIX_ICON;
	_tmp2_[5] = WIXL_TYPE_WIX_INSTALL_EXECUTE_SEQUENCE;
	_tmp2_[6] = WIXL_TYPE_WIX_INSTALL_UI_SEQUENCE;
	_tmp2_[7] = WIXL_TYPE_WIX_ADMIN_EXECUTE_SEQUENCE;
	_tmp2_[8] = WIXL_TYPE_WIX_ADMIN_UI_SEQUENCE;
	_tmp2_[9] = WIXL_TYPE_WIX_ADVERTISE_EXECUTE_SEQUENCE;
	_tmp2_[10] = WIXL_TYPE_WIX_MEDIA;
	_tmp2_[11] = WIXL_TYPE_WIX_PACKAGE;
	_tmp2_[12] = WIXL_TYPE_WIX_PROPERTY;
	_tmp2_[13] = WIXL_TYPE_WIX_UPGRADE;
	_tmp2_[14] = WIXL_TYPE_WIX_CUSTOM_ACTION;
	_tmp2_[15] = WIXL_TYPE_WIX_BINARY;
	_tmp2_[16] = WIXL_TYPE_WIX_MAJOR_UPGRADE;
	_tmp2_[17] = WIXL_TYPE_WIX_MEDIA_TEMPLATE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 18;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 18);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_product_instance_init (WixlWixProduct * self) {
	self->priv = WIXL_WIX_PRODUCT_GET_PRIVATE (self);
}


static void wixl_wix_product_finalize (GObject* obj) {
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	_g_free0 (self->priv->_Name);
	_g_free0 (self->priv->_UpgradeCode);
	_g_free0 (self->priv->_Language);
	_g_free0 (self->priv->_Codepage);
	_g_free0 (self->priv->_Version);
	_g_free0 (self->priv->_Manufacturer);
	G_OBJECT_CLASS (wixl_wix_product_parent_class)->finalize (obj);
}


GType wixl_wix_product_get_type (void) {
	static volatile gsize wixl_wix_product_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_product_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixProductClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_product_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixProduct), 0, (GInstanceInitFunc) wixl_wix_product_instance_init, NULL };
		GType wixl_wix_product_type_id;
		wixl_wix_product_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixProduct", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_product_type_id__volatile, wixl_wix_product_type_id);
	}
	return wixl_wix_product_type_id__volatile;
}


static void _vala_wixl_wix_product_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	switch (property_id) {
		case WIXL_WIX_PRODUCT_NAME:
		g_value_set_string (value, wixl_wix_product_get_Name (self));
		break;
		case WIXL_WIX_PRODUCT_UPGRADE_CODE:
		g_value_set_string (value, wixl_wix_product_get_UpgradeCode (self));
		break;
		case WIXL_WIX_PRODUCT_LANGUAGE:
		g_value_set_string (value, wixl_wix_product_get_Language (self));
		break;
		case WIXL_WIX_PRODUCT_CODEPAGE:
		g_value_set_string (value, wixl_wix_product_get_Codepage (self));
		break;
		case WIXL_WIX_PRODUCT_VERSION:
		g_value_set_string (value, wixl_wix_product_get_Version (self));
		break;
		case WIXL_WIX_PRODUCT_MANUFACTURER:
		g_value_set_string (value, wixl_wix_product_get_Manufacturer (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_product_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixProduct * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_PRODUCT, WixlWixProduct);
	switch (property_id) {
		case WIXL_WIX_PRODUCT_NAME:
		wixl_wix_product_set_Name (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_UPGRADE_CODE:
		wixl_wix_product_set_UpgradeCode (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_LANGUAGE:
		wixl_wix_product_set_Language (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_CODEPAGE:
		wixl_wix_product_set_Codepage (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_VERSION:
		wixl_wix_product_set_Version (self, g_value_get_string (value));
		break;
		case WIXL_WIX_PRODUCT_MANUFACTURER:
		wixl_wix_product_set_Manufacturer (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_media_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixMedia * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixMedia*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_media (_tmp0_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


WixlWixMedia* wixl_wix_media_construct (GType object_type) {
	WixlWixMedia * self = NULL;
	self = (WixlWixMedia*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixMedia* wixl_wix_media_new (void) {
	return wixl_wix_media_construct (WIXL_TYPE_WIX_MEDIA);
}


const gchar* wixl_wix_media_get_Cabinet (WixlWixMedia* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Cabinet;
	result = _tmp0_;
	return result;
}


void wixl_wix_media_set_Cabinet (WixlWixMedia* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Cabinet);
	self->priv->_Cabinet = _tmp1_;
	g_object_notify ((GObject *) self, "Cabinet");
}


const gchar* wixl_wix_media_get_EmbedCab (WixlWixMedia* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_EmbedCab;
	result = _tmp0_;
	return result;
}


void wixl_wix_media_set_EmbedCab (WixlWixMedia* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_EmbedCab);
	self->priv->_EmbedCab = _tmp1_;
	g_object_notify ((GObject *) self, "EmbedCab");
}


const gchar* wixl_wix_media_get_DiskPrompt (WixlWixMedia* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_DiskPrompt;
	result = _tmp0_;
	return result;
}


void wixl_wix_media_set_DiskPrompt (WixlWixMedia* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_DiskPrompt);
	self->priv->_DiskPrompt = _tmp1_;
	g_object_notify ((GObject *) self, "DiskPrompt");
}


static void wixl_wix_media_class_init (WixlWixMediaClass * klass) {
	gchar* _tmp0_ = NULL;
	wixl_wix_media_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixMediaPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_media_real_accept;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_media_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_media_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_media_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_CABINET, g_param_spec_string ("Cabinet", "Cabinet", "Cabinet", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_EMBED_CAB, g_param_spec_string ("EmbedCab", "EmbedCab", "EmbedCab", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_MEDIA_DISK_PROMPT, g_param_spec_string ("DiskPrompt", "DiskPrompt", "DiskPrompt", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Media");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
}


static void wixl_wix_media_instance_init (WixlWixMedia * self) {
	self->priv = WIXL_WIX_MEDIA_GET_PRIVATE (self);
}


static void wixl_wix_media_finalize (GObject* obj) {
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	_g_free0 (self->priv->_Cabinet);
	_g_free0 (self->priv->_EmbedCab);
	_g_free0 (self->priv->_DiskPrompt);
	_g_object_unref0 (self->record);
	G_OBJECT_CLASS (wixl_wix_media_parent_class)->finalize (obj);
}


GType wixl_wix_media_get_type (void) {
	static volatile gsize wixl_wix_media_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_media_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixMediaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_media_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixMedia), 0, (GInstanceInitFunc) wixl_wix_media_instance_init, NULL };
		GType wixl_wix_media_type_id;
		wixl_wix_media_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixMedia", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_media_type_id__volatile, wixl_wix_media_type_id);
	}
	return wixl_wix_media_type_id__volatile;
}


static void _vala_wixl_wix_media_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	switch (property_id) {
		case WIXL_WIX_MEDIA_CABINET:
		g_value_set_string (value, wixl_wix_media_get_Cabinet (self));
		break;
		case WIXL_WIX_MEDIA_EMBED_CAB:
		g_value_set_string (value, wixl_wix_media_get_EmbedCab (self));
		break;
		case WIXL_WIX_MEDIA_DISK_PROMPT:
		g_value_set_string (value, wixl_wix_media_get_DiskPrompt (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_media_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixMedia * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_MEDIA, WixlWixMedia);
	switch (property_id) {
		case WIXL_WIX_MEDIA_CABINET:
		wixl_wix_media_set_Cabinet (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MEDIA_EMBED_CAB:
		wixl_wix_media_set_EmbedCab (self, g_value_get_string (value));
		break;
		case WIXL_WIX_MEDIA_DISK_PROMPT:
		wixl_wix_media_set_DiskPrompt (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


WixlWixRegistryKey* wixl_wix_registry_key_construct (GType object_type) {
	WixlWixRegistryKey * self = NULL;
	self = (WixlWixRegistryKey*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixRegistryKey* wixl_wix_registry_key_new (void) {
	return wixl_wix_registry_key_construct (WIXL_TYPE_WIX_REGISTRY_KEY);
}


const gchar* wixl_wix_registry_key_get_Key (WixlWixRegistryKey* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Key;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_key_set_Key (WixlWixRegistryKey* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Key);
	self->priv->_Key = _tmp1_;
	g_object_notify ((GObject *) self, "Key");
}


const gchar* wixl_wix_registry_key_get_Root (WixlWixRegistryKey* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Root;
	result = _tmp0_;
	return result;
}


void wixl_wix_registry_key_set_Root (WixlWixRegistryKey* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Root);
	self->priv->_Root = _tmp1_;
	g_object_notify ((GObject *) self, "Root");
}


static void wixl_wix_registry_key_class_init (WixlWixRegistryKeyClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_registry_key_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixRegistryKeyPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_registry_key_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_registry_key_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_registry_key_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_KEY_KEY, g_param_spec_string ("Key", "Key", "Key", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_REGISTRY_KEY_ROOT, g_param_spec_string ("Root", "Root", "Root", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("RegistryKey");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 1);
	_tmp2_[0] = WIXL_TYPE_WIX_REGISTRY_VALUE;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 1;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 1);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_registry_key_instance_init (WixlWixRegistryKey * self) {
	self->priv = WIXL_WIX_REGISTRY_KEY_GET_PRIVATE (self);
}


static void wixl_wix_registry_key_finalize (GObject* obj) {
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	_g_free0 (self->priv->_Key);
	_g_free0 (self->priv->_Root);
	G_OBJECT_CLASS (wixl_wix_registry_key_parent_class)->finalize (obj);
}


GType wixl_wix_registry_key_get_type (void) {
	static volatile gsize wixl_wix_registry_key_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_registry_key_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRegistryKeyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_registry_key_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRegistryKey), 0, (GInstanceInitFunc) wixl_wix_registry_key_instance_init, NULL };
		GType wixl_wix_registry_key_type_id;
		wixl_wix_registry_key_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRegistryKey", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_registry_key_type_id__volatile, wixl_wix_registry_key_type_id);
	}
	return wixl_wix_registry_key_type_id__volatile;
}


static void _vala_wixl_wix_registry_key_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_KEY_KEY:
		g_value_set_string (value, wixl_wix_registry_key_get_Key (self));
		break;
		case WIXL_WIX_REGISTRY_KEY_ROOT:
		g_value_set_string (value, wixl_wix_registry_key_get_Root (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_registry_key_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixRegistryKey * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_REGISTRY_KEY, WixlWixRegistryKey);
	switch (property_id) {
		case WIXL_WIX_REGISTRY_KEY_KEY:
		wixl_wix_registry_key_set_Key (self, g_value_get_string (value));
		break;
		case WIXL_WIX_REGISTRY_KEY_ROOT:
		wixl_wix_registry_key_set_Root (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_component_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixComponent * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	WixlWixNodeVisitor* _tmp2_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponent*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	wixl_wix_node_visitor_visit_component (_tmp0_, self, WIXL_VISIT_STATE_ENTER, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_component_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp1_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = visitor;
	wixl_wix_node_visitor_visit_component (_tmp2_, self, WIXL_VISIT_STATE_LEAVE, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


static gchar* wixl_wix_component_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixComponent * self;
	gchar* result = NULL;
	WixlWixKeyElement* _tmp0_ = NULL;
	gchar* _tmp2_ = NULL;
	WixlWixResolver* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	WixlWixKeyElement* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixComponent*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp0_ = self->key;
	if (_tmp0_ == NULL) {
		GError* _tmp1_ = NULL;
		_tmp1_ = g_error_new_literal (WIXL_ERROR, WIXL_ERROR_FAILED, "a child is needed to generate a component GUID");
		_inner_error_ = _tmp1_;
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp3_ = r;
	_tmp4_ = WIXL_WIX_ELEMENT_CLASS (wixl_wix_component_parent_class)->full_path (G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp3_, &_inner_error_);
	_tmp2_ = _tmp4_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp6_ = self->key;
	_tmp7_ = wixl_wix_key_element_path_name (_tmp6_, &_inner_error_);
	_tmp5_ = _tmp7_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		_g_free0 (_tmp2_);
		return NULL;
	}
	_tmp8_ = _tmp2_;
	_tmp2_ = NULL;
	_tmp9_ = _tmp8_;
	_tmp10_ = g_strconcat (_tmp9_, "/", NULL);
	_tmp11_ = _tmp10_;
	_tmp12_ = _tmp5_;
	_tmp5_ = NULL;
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp11_, _tmp13_, NULL);
	_tmp15_ = _tmp14_;
	_g_free0 (_tmp13_);
	_g_free0 (_tmp11_);
	_g_free0 (_tmp9_);
	result = _tmp15_;
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	return result;
}


WixlWixComponent* wixl_wix_component_construct (GType object_type) {
	WixlWixComponent * self = NULL;
	self = (WixlWixComponent*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixComponent* wixl_wix_component_new (void) {
	return wixl_wix_component_construct (WIXL_TYPE_WIX_COMPONENT);
}


const gchar* wixl_wix_component_get_Guid (WixlWixComponent* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Guid;
	result = _tmp0_;
	return result;
}


void wixl_wix_component_set_Guid (WixlWixComponent* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Guid);
	self->priv->_Guid = _tmp1_;
	g_object_notify ((GObject *) self, "Guid");
}


const gchar* wixl_wix_component_get_Win64 (WixlWixComponent* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Win64;
	result = _tmp0_;
	return result;
}


void wixl_wix_component_set_Win64 (WixlWixComponent* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Win64);
	self->priv->_Win64 = _tmp1_;
	g_object_notify ((GObject *) self, "Win64");
}


static void wixl_wix_component_class_init (WixlWixComponentClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_component_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixComponentPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_component_real_accept;
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_component_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_component_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_component_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_component_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_GUID, g_param_spec_string ("Guid", "Guid", "Guid", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_COMPONENT_WIN64, g_param_spec_string ("Win64", "Win64", "Win64", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Component");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 9);
	_tmp2_[0] = WIXL_TYPE_WIX_CREATE_FOLDER;
	_tmp2_[1] = WIXL_TYPE_WIX_REMOVE_FOLDER;
	_tmp2_[2] = WIXL_TYPE_WIX_REGISTRY_VALUE;
	_tmp2_[3] = WIXL_TYPE_WIX_FILE;
	_tmp2_[4] = WIXL_TYPE_WIX_SHORTCUT;
	_tmp2_[5] = WIXL_TYPE_WIX_PROG_ID;
	_tmp2_[6] = WIXL_TYPE_WIX_REGISTRY_KEY;
	_tmp2_[7] = WIXL_TYPE_WIX_SERVICE_CONTROL;
	_tmp2_[8] = WIXL_TYPE_WIX_SERVICE_INSTALL;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 9;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 9);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_component_instance_init (WixlWixComponent * self) {
	self->priv = WIXL_WIX_COMPONENT_GET_PRIVATE (self);
}


static void wixl_wix_component_finalize (GObject* obj) {
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	_g_free0 (self->priv->_Guid);
	_g_free0 (self->priv->_Win64);
	_g_object_unref0 (self->key);
	__g_list_free__g_object_unref0_0 (self->in_feature);
	G_OBJECT_CLASS (wixl_wix_component_parent_class)->finalize (obj);
}


GType wixl_wix_component_get_type (void) {
	static volatile gsize wixl_wix_component_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_component_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixComponentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_component_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixComponent), 0, (GInstanceInitFunc) wixl_wix_component_instance_init, NULL };
		GType wixl_wix_component_type_id;
		wixl_wix_component_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixComponent", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_component_type_id__volatile, wixl_wix_component_type_id);
	}
	return wixl_wix_component_type_id__volatile;
}


static void _vala_wixl_wix_component_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GUID:
		g_value_set_string (value, wixl_wix_component_get_Guid (self));
		break;
		case WIXL_WIX_COMPONENT_WIN64:
		g_value_set_string (value, wixl_wix_component_get_Win64 (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_component_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixComponent * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_COMPONENT, WixlWixComponent);
	switch (property_id) {
		case WIXL_WIX_COMPONENT_GUID:
		wixl_wix_component_set_Guid (self, g_value_get_string (value));
		break;
		case WIXL_WIX_COMPONENT_WIN64:
		wixl_wix_component_set_Win64 (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void wixl_wix_directory_real_accept (WixlWixNode* base, WixlWixNodeVisitor* visitor, GError** error) {
	WixlWixDirectory * self;
	WixlWixNodeVisitor* _tmp0_ = NULL;
	WixlWixNodeVisitor* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixDirectory*) base;
	g_return_if_fail (visitor != NULL);
	_tmp0_ = visitor;
	WIXL_WIX_NODE_CLASS (wixl_wix_directory_parent_class)->accept ((WixlWixNode*) G_TYPE_CHECK_INSTANCE_CAST (self, WIXL_TYPE_WIX_ELEMENT, WixlWixElement), _tmp0_, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp1_ = visitor;
	wixl_wix_node_visitor_visit_directory (_tmp1_, self, &_inner_error_);
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return;
	}
}


gchar* wixl_wix_directory_path_name (WixlWixDirectory* self) {
	gchar* result = NULL;
	const gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp4_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp1_ = self->priv->_Name;
	_tmp0_ = _tmp1_;
	if (_tmp0_ == NULL) {
		const gchar* _tmp2_ = NULL;
		const gchar* _tmp3_ = NULL;
		_tmp2_ = wixl_wix_element_get_Id ((WixlWixElement*) self);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_;
	}
	_tmp4_ = g_strdup (_tmp0_);
	result = _tmp4_;
	return result;
}


static gchar* wixl_wix_directory_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixDirectory * self;
	gchar* result = NULL;
	gboolean _tmp0_ = FALSE;
	WixlWixElement* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixDirectory*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = ((WixlWixNode*) self)->parent;
	if (_tmp1_ != NULL) {
		gboolean _tmp2_ = FALSE;
		WixlWixElement* _tmp3_ = NULL;
		_tmp3_ = ((WixlWixNode*) self)->parent;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, WIXL_TYPE_WIX_DIRECTORY)) {
			_tmp2_ = TRUE;
		} else {
			WixlWixElement* _tmp4_ = NULL;
			_tmp4_ = ((WixlWixNode*) self)->parent;
			_tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_DIRECTORY_REF);
		}
		_tmp0_ = _tmp2_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar* _tmp5_ = NULL;
		WixlWixElement* _tmp6_ = NULL;
		WixlWixResolver* _tmp7_ = NULL;
		gchar* _tmp8_ = NULL;
		gchar* _tmp9_ = NULL;
		gchar* _tmp10_ = NULL;
		gchar* _tmp11_ = NULL;
		gchar* _tmp12_ = NULL;
		gchar* _tmp13_ = NULL;
		gchar* _tmp14_ = NULL;
		gchar* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
		_tmp6_ = ((WixlWixNode*) self)->parent;
		_tmp7_ = r;
		_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
		_tmp5_ = _tmp8_;
		if (G_UNLIKELY (_inner_error_ != NULL)) {
			g_propagate_error (error, _inner_error_);
			return NULL;
		}
		_tmp9_ = _tmp5_;
		_tmp5_ = NULL;
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strconcat (_tmp10_, "/", NULL);
		_tmp12_ = _tmp11_;
		_tmp13_ = wixl_wix_directory_path_name (self);
		_tmp14_ = _tmp13_;
		_tmp15_ = g_strconcat (_tmp12_, _tmp14_, NULL);
		_tmp16_ = _tmp15_;
		_g_free0 (_tmp14_);
		_g_free0 (_tmp12_);
		_g_free0 (_tmp10_);
		result = _tmp16_;
		_g_free0 (_tmp5_);
		return result;
	} else {
		gchar* _tmp17_ = NULL;
		_tmp17_ = wixl_wix_directory_path_name (self);
		result = _tmp17_;
		return result;
	}
}


WixlWixDirectory* wixl_wix_directory_construct (GType object_type) {
	WixlWixDirectory * self = NULL;
	self = (WixlWixDirectory*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixDirectory* wixl_wix_directory_new (void) {
	return wixl_wix_directory_construct (WIXL_TYPE_WIX_DIRECTORY);
}


const gchar* wixl_wix_directory_get_Name (WixlWixDirectory* self) {
	const gchar* result;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_Name;
	result = _tmp0_;
	return result;
}


void wixl_wix_directory_set_Name (WixlWixDirectory* self, const gchar* value) {
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 (self->priv->_Name);
	self->priv->_Name = _tmp1_;
	g_object_notify ((GObject *) self, "Name");
}


static void wixl_wix_directory_class_init (WixlWixDirectoryClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_directory_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixDirectoryPrivate));
	((WixlWixNodeClass *) klass)->accept = (void (*)(WixlWixNode*, WixlWixNodeVisitor*, GError**)) wixl_wix_directory_real_accept;
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_directory_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_directory_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_directory_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_directory_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_DIRECTORY_NAME, g_param_spec_string ("Name", "Name", "Name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("Directory");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_directory_instance_init (WixlWixDirectory * self) {
	self->priv = WIXL_WIX_DIRECTORY_GET_PRIVATE (self);
}


static void wixl_wix_directory_finalize (GObject* obj) {
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	_g_free0 (self->priv->_Name);
	G_OBJECT_CLASS (wixl_wix_directory_parent_class)->finalize (obj);
}


GType wixl_wix_directory_get_type (void) {
	static volatile gsize wixl_wix_directory_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_directory_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixDirectoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_directory_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixDirectory), 0, (GInstanceInitFunc) wixl_wix_directory_instance_init, NULL };
		GType wixl_wix_directory_type_id;
		wixl_wix_directory_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixDirectory", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_directory_type_id__volatile, wixl_wix_directory_type_id);
	}
	return wixl_wix_directory_type_id__volatile;
}


static void _vala_wixl_wix_directory_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	switch (property_id) {
		case WIXL_WIX_DIRECTORY_NAME:
		g_value_set_string (value, wixl_wix_directory_get_Name (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_directory_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixDirectory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_DIRECTORY, WixlWixDirectory);
	switch (property_id) {
		case WIXL_WIX_DIRECTORY_NAME:
		wixl_wix_directory_set_Name (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_element_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixElementRef * self;
	gchar* result = NULL;
	gpointer _tmp0_ = NULL;
	WixlWixResolver* _tmp1_ = NULL;
	gpointer _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	gpointer _tmp4_ = NULL;
	WixlWixElement* _tmp5_ = NULL;
	WixlWixElement* _tmp6_ = NULL;
	WixlWixResolver* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixElementRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = r;
	_tmp2_ = wixl_wix_resolver_resolve (_tmp1_, self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, (GDestroyNotify) self->priv->g_destroy_func, (WixlWixElement*) self, &_inner_error_);
	_tmp0_ = _tmp2_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp4_ = _tmp0_;
	_tmp0_ = NULL;
	_tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		((_tmp4_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp4_ = (self->priv->g_destroy_func (_tmp4_), NULL));
	}
	_tmp6_ = _tmp5_;
	_tmp7_ = r;
	_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
	_tmp9_ = _tmp8_;
	_g_object_unref0 (_tmp6_);
	_tmp3_ = _tmp9_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		((_tmp0_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->g_destroy_func (_tmp0_), NULL));
		return NULL;
	}
	_tmp10_ = _tmp3_;
	_tmp3_ = NULL;
	result = _tmp10_;
	_g_free0 (_tmp3_);
	((_tmp0_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->g_destroy_func (_tmp0_), NULL));
	return result;
}


WixlWixElementRef* wixl_wix_element_ref_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func) {
	WixlWixElementRef * self = NULL;
	self = (WixlWixElementRef*) wixl_wix_element_construct (object_type);
	self->priv->g_type = g_type;
	self->priv->g_dup_func = g_dup_func;
	self->priv->g_destroy_func = g_destroy_func;
	return self;
}


WixlWixElementRef* wixl_wix_element_ref_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func) {
	return wixl_wix_element_ref_construct (WIXL_TYPE_WIX_ELEMENT_REF, g_type, g_dup_func, g_destroy_func);
}


static void wixl_wix_element_ref_class_init (WixlWixElementRefClass * klass) {
	wixl_wix_element_ref_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (WixlWixElementRefPrivate));
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_element_ref_real_full_path;
	G_OBJECT_CLASS (klass)->get_property = _vala_wixl_wix_element_ref_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_wixl_wix_element_ref_set_property;
	G_OBJECT_CLASS (klass)->finalize = wixl_wix_element_ref_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}


static void wixl_wix_element_ref_instance_init (WixlWixElementRef * self) {
	self->priv = WIXL_WIX_ELEMENT_REF_GET_PRIVATE (self);
}


static void wixl_wix_element_ref_finalize (GObject* obj) {
	WixlWixElementRef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRef);
	((self->resolved == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->resolved = (self->priv->g_destroy_func (self->resolved), NULL));
	G_OBJECT_CLASS (wixl_wix_element_ref_parent_class)->finalize (obj);
}


GType wixl_wix_element_ref_get_type (void) {
	static volatile gsize wixl_wix_element_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_element_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixElementRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_element_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixElementRef), 0, (GInstanceInitFunc) wixl_wix_element_ref_instance_init, NULL };
		GType wixl_wix_element_ref_type_id;
		wixl_wix_element_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixElementRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_element_ref_type_id__volatile, wixl_wix_element_ref_type_id);
	}
	return wixl_wix_element_ref_type_id__volatile;
}


static void _vala_wixl_wix_element_ref_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	WixlWixElementRef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRef);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_wixl_wix_element_ref_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	WixlWixElementRef * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, WIXL_TYPE_WIX_ELEMENT_REF, WixlWixElementRef);
	switch (property_id) {
		case WIXL_WIX_ELEMENT_REF_G_TYPE:
		self->priv->g_type = g_value_get_gtype (value);
		break;
		case WIXL_WIX_ELEMENT_REF_G_DUP_FUNC:
		self->priv->g_dup_func = g_value_get_pointer (value);
		break;
		case WIXL_WIX_ELEMENT_REF_G_DESTROY_FUNC:
		self->priv->g_destroy_func = g_value_get_pointer (value);
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static gchar* wixl_wix_directory_ref_real_full_path (WixlWixElement* base, WixlWixResolver* r, GError** error) {
	WixlWixDirectoryRef * self;
	gchar* result = NULL;
	WixlWixDirectory* _tmp0_ = NULL;
	WixlWixResolver* _tmp1_ = NULL;
	gpointer _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	WixlWixDirectory* _tmp4_ = NULL;
	WixlWixElement* _tmp5_ = NULL;
	WixlWixElement* _tmp6_ = NULL;
	WixlWixResolver* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	GError * _inner_error_ = NULL;
	self = (WixlWixDirectoryRef*) base;
	g_return_val_if_fail (r != NULL, NULL);
	_tmp1_ = r;
	_tmp2_ = wixl_wix_resolver_resolve (_tmp1_, WIXL_TYPE_WIX_DIRECTORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, (WixlWixElement*) self, &_inner_error_);
	_tmp0_ = (WixlWixDirectory*) _tmp2_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		return NULL;
	}
	_tmp4_ = _tmp0_;
	_tmp0_ = NULL;
	_tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, WIXL_TYPE_WIX_ELEMENT) ? ((WixlWixElement*) _tmp4_) : NULL;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (_tmp4_);
	}
	_tmp6_ = _tmp5_;
	_tmp7_ = r;
	_tmp8_ = wixl_wix_element_full_path (_tmp6_, _tmp7_, &_inner_error_);
	_tmp9_ = _tmp8_;
	_g_object_unref0 (_tmp6_);
	_tmp3_ = _tmp9_;
	if (G_UNLIKELY (_inner_error_ != NULL)) {
		g_propagate_error (error, _inner_error_);
		_g_object_unref0 (_tmp0_);
		return NULL;
	}
	_tmp10_ = _tmp3_;
	_tmp3_ = NULL;
	result = _tmp10_;
	_g_free0 (_tmp3_);
	_g_object_unref0 (_tmp0_);
	return result;
}


WixlWixDirectoryRef* wixl_wix_directory_ref_construct (GType object_type) {
	WixlWixDirectoryRef * self = NULL;
	self = (WixlWixDirectoryRef*) wixl_wix_element_ref_construct (object_type, WIXL_TYPE_WIX_DIRECTORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	return self;
}


WixlWixDirectoryRef* wixl_wix_directory_ref_new (void) {
	return wixl_wix_directory_ref_construct (WIXL_TYPE_WIX_DIRECTORY_REF);
}


static void wixl_wix_directory_ref_class_init (WixlWixDirectoryRefClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_directory_ref_parent_class = g_type_class_peek_parent (klass);
	((WixlWixElementClass *) klass)->full_path = (gchar* (*)(WixlWixElement*, WixlWixResolver*, GError**)) wixl_wix_directory_ref_real_full_path;
	_tmp0_ = g_strdup ("DirectoryRef");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	WIXL_WIX_ELEMENT_REF_CLASS (klass)->ref_type = WIXL_TYPE_WIX_DIRECTORY;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_DIRECTORY;
	_tmp2_[1] = WIXL_TYPE_WIX_COMPONENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_directory_ref_instance_init (WixlWixDirectoryRef * self) {
}


GType wixl_wix_directory_ref_get_type (void) {
	static volatile gsize wixl_wix_directory_ref_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_directory_ref_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixDirectoryRefClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_directory_ref_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixDirectoryRef), 0, (GInstanceInitFunc) wixl_wix_directory_ref_instance_init, NULL };
		GType wixl_wix_directory_ref_type_id;
		wixl_wix_directory_ref_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT_REF, "WixlWixDirectoryRef", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_directory_ref_type_id__volatile, wixl_wix_directory_ref_type_id);
	}
	return wixl_wix_directory_ref_type_id__volatile;
}


WixlWixRoot* wixl_wix_root_construct (GType object_type) {
	WixlWixRoot * self = NULL;
	self = (WixlWixRoot*) wixl_wix_element_construct (object_type);
	return self;
}


WixlWixRoot* wixl_wix_root_new (void) {
	return wixl_wix_root_construct (WIXL_TYPE_WIX_ROOT);
}


static void wixl_wix_root_class_init (WixlWixRootClass * klass) {
	gchar* _tmp0_ = NULL;
	GHashTable* _tmp1_ = NULL;
	GType* _tmp2_ = NULL;
	GType* _tmp3_ = NULL;
	gint _tmp3__length1 = 0;
	wixl_wix_root_parent_class = g_type_class_peek_parent (klass);
	_tmp0_ = g_strdup ("Wix");
	_g_free0 (WIXL_WIX_ELEMENT_CLASS (klass)->name);
	WIXL_WIX_ELEMENT_CLASS (klass)->name = _tmp0_;
	_tmp1_ = WIXL_WIX_ELEMENT_CLASS (klass)->child_types;
	_tmp2_ = g_new0 (GType, 2);
	_tmp2_[0] = WIXL_TYPE_WIX_PRODUCT;
	_tmp2_[1] = WIXL_TYPE_WIX_FRAGMENT;
	_tmp3_ = _tmp2_;
	_tmp3__length1 = 2;
	wixl_wix_element_add_child_types (WIXL_WIX_ELEMENT_CLASS (klass), _tmp1_, _tmp3_, 2);
	_tmp3_ = (g_free (_tmp3_), NULL);
}


static void wixl_wix_root_instance_init (WixlWixRoot * self) {
}


GType wixl_wix_root_get_type (void) {
	static volatile gsize wixl_wix_root_type_id__volatile = 0;
	if (g_once_init_enter (&wixl_wix_root_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (WixlWixRootClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) wixl_wix_root_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WixlWixRoot), 0, (GInstanceInitFunc) wixl_wix_root_instance_init, NULL };
		GType wixl_wix_root_type_id;
		wixl_wix_root_type_id = g_type_register_static (WIXL_TYPE_WIX_ELEMENT, "WixlWixRoot", &g_define_type_info, 0);
		g_once_init_leave (&wixl_wix_root_type_id__volatile, wixl_wix_root_type_id);
	}
	return wixl_wix_root_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



