/* wizard.c generated by valac 0.15.0.38-5123-dirty, the Vala compiler
 * generated from wizard.vala, do not modify */

/* This file is part of GNOME Boxes. License: LGPLv2+*/

#include <glib.h>
#include <glib-object.h>
#include <clutter/clutter.h>
#include <clutter-gtk/clutter-gtk.h>
#include <gtk/gtk.h>
#include <gudev/gudev.h>
#include <osinfo/osinfo.h>
#include <gio/gio.h>
#include <libvirt-gobject/libvirt-gobject.h>
#include <stdlib.h>
#include <string.h>
#include <libxml/uri.h>
#include <glib/gi18n-lib.h>
#include <gdk/gdk.h>


#define BOXES_TYPE_WIZARD_PAGE (boxes_wizard_page_get_type ())

#define BOXES_TYPE_UI (boxes_ui_get_type ())
#define BOXES_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UI, BoxesUI))
#define BOXES_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_UI, BoxesUIClass))
#define BOXES_IS_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UI))
#define BOXES_IS_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_UI))
#define BOXES_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_UI, BoxesUIClass))

typedef struct _BoxesUI BoxesUI;
typedef struct _BoxesUIClass BoxesUIClass;
typedef struct _BoxesUIPrivate BoxesUIPrivate;

#define BOXES_TYPE_UI_STATE (boxes_ui_state_get_type ())

#define BOXES_TYPE_WIZARD (boxes_wizard_get_type ())
#define BOXES_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD, BoxesWizard))
#define BOXES_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD, BoxesWizardClass))
#define BOXES_IS_WIZARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD))
#define BOXES_IS_WIZARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD))
#define BOXES_WIZARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD, BoxesWizardClass))

typedef struct _BoxesWizard BoxesWizard;
typedef struct _BoxesWizardClass BoxesWizardClass;
typedef struct _BoxesWizardPrivate BoxesWizardPrivate;

#define BOXES_TYPE_APP (boxes_app_get_type ())
#define BOXES_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_APP, BoxesApp))
#define BOXES_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_APP, BoxesAppClass))
#define BOXES_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_APP))
#define BOXES_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_APP))
#define BOXES_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_APP, BoxesAppClass))

typedef struct _BoxesApp BoxesApp;
typedef struct _BoxesAppClass BoxesAppClass;

#define BOXES_TYPE_WIZARD_SOURCE (boxes_wizard_source_get_type ())
#define BOXES_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSource))
#define BOXES_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))
#define BOXES_IS_WIZARD_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_IS_WIZARD_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_WIZARD_SOURCE))
#define BOXES_WIZARD_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_WIZARD_SOURCE, BoxesWizardSourceClass))

typedef struct _BoxesWizardSource BoxesWizardSource;
typedef struct _BoxesWizardSourceClass BoxesWizardSourceClass;

#define BOXES_WIZARD_TYPE_WIZARD_SUMMARY (boxes_wizard_wizard_summary_get_type ())
#define BOXES_WIZARD_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummary))
#define BOXES_WIZARD_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_IS_WIZARD_SUMMARY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_WIZARD_TYPE_WIZARD_SUMMARY))
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryClass))

typedef struct _BoxesWizardWizardSummary BoxesWizardWizardSummary;
typedef struct _BoxesWizardWizardSummaryClass BoxesWizardWizardSummaryClass;

#define BOXES_TYPE_COLLECTION_SOURCE (boxes_collection_source_get_type ())
#define BOXES_COLLECTION_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSource))
#define BOXES_COLLECTION_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSourceClass))
#define BOXES_IS_COLLECTION_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_SOURCE))
#define BOXES_IS_COLLECTION_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_SOURCE))
#define BOXES_COLLECTION_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_SOURCE, BoxesCollectionSourceClass))

typedef struct _BoxesCollectionSource BoxesCollectionSource;
typedef struct _BoxesCollectionSourceClass BoxesCollectionSourceClass;

#define BOXES_TYPE_OS_DATABASE (boxes_os_database_get_type ())
#define BOXES_OS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_OS_DATABASE, BoxesOSDatabase))
#define BOXES_OS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_OS_DATABASE, BoxesOSDatabaseClass))
#define BOXES_IS_OS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_OS_DATABASE))
#define BOXES_IS_OS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_OS_DATABASE))
#define BOXES_OS_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_OS_DATABASE, BoxesOSDatabaseClass))

typedef struct _BoxesOSDatabase BoxesOSDatabase;
typedef struct _BoxesOSDatabaseClass BoxesOSDatabaseClass;

#define BOXES_TYPE_VM_CREATOR (boxes_vm_creator_get_type ())
#define BOXES_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreator))
#define BOXES_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))
#define BOXES_IS_VM_CREATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_VM_CREATOR))
#define BOXES_IS_VM_CREATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_VM_CREATOR))
#define BOXES_VM_CREATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_VM_CREATOR, BoxesVMCreatorClass))

typedef struct _BoxesVMCreator BoxesVMCreator;
typedef struct _BoxesVMCreatorClass BoxesVMCreatorClass;

#define BOXES_TYPE_INSTALLER_MEDIA (boxes_installer_media_get_type ())
#define BOXES_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMedia))
#define BOXES_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))
#define BOXES_IS_INSTALLER_MEDIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_IS_INSTALLER_MEDIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_INSTALLER_MEDIA))
#define BOXES_INSTALLER_MEDIA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_INSTALLER_MEDIA, BoxesInstallerMediaClass))

typedef struct _BoxesInstallerMedia BoxesInstallerMedia;
typedef struct _BoxesInstallerMediaClass BoxesInstallerMediaClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_ptr_array_unref0(var) ((var == NULL) ? NULL : (var = (g_ptr_array_unref (var), NULL)))
#define _boxes_os_database_unref0(var) ((var == NULL) ? NULL : (var = (boxes_os_database_unref (var), NULL)))
#define _boxes_vm_creator_unref0(var) ((var == NULL) ? NULL : (var = (boxes_vm_creator_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define BOXES_TYPE_ICONFIG (boxes_iconfig_get_type ())
#define BOXES_ICONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_ICONFIG, BoxesIConfig))
#define BOXES_IS_ICONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_ICONFIG))
#define BOXES_ICONFIG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BOXES_TYPE_ICONFIG, BoxesIConfigIface))

typedef struct _BoxesIConfig BoxesIConfig;
typedef struct _BoxesIConfigIface BoxesIConfigIface;
typedef struct _BoxesWizardCreateData BoxesWizardCreateData;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _xmlFreeURI0(var) ((var == NULL) ? NULL : (var = (xmlFreeURI (var), NULL)))
typedef struct _BoxesInstallerMediaPrivate BoxesInstallerMediaPrivate;

#define BOXES_TYPE_SOURCE_PAGE (boxes_source_page_get_type ())
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))

#define BOXES_TYPE_UNATTENDED_INSTALLER (boxes_unattended_installer_get_type ())
#define BOXES_UNATTENDED_INSTALLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstaller))
#define BOXES_UNATTENDED_INSTALLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstallerClass))
#define BOXES_IS_UNATTENDED_INSTALLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_UNATTENDED_INSTALLER))
#define BOXES_IS_UNATTENDED_INSTALLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_UNATTENDED_INSTALLER))
#define BOXES_UNATTENDED_INSTALLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_UNATTENDED_INSTALLER, BoxesUnattendedInstallerClass))

typedef struct _BoxesUnattendedInstaller BoxesUnattendedInstaller;
typedef struct _BoxesUnattendedInstallerClass BoxesUnattendedInstallerClass;

#define BOXES_TYPE_QUERY (boxes_query_get_type ())
#define BOXES_QUERY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_QUERY, BoxesQuery))
#define BOXES_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_QUERY, BoxesQueryClass))
#define BOXES_IS_QUERY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_QUERY))
#define BOXES_IS_QUERY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_QUERY))
#define BOXES_QUERY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_QUERY, BoxesQueryClass))

typedef struct _BoxesQuery BoxesQuery;
typedef struct _BoxesQueryClass BoxesQueryClass;
typedef struct _BoxesAppPrivate BoxesAppPrivate;

#define BOXES_TYPE_COLLECTION_ITEM (boxes_collection_item_get_type ())
#define BOXES_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItem))
#define BOXES_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))
#define BOXES_IS_COLLECTION_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_IS_COLLECTION_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION_ITEM))
#define BOXES_COLLECTION_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION_ITEM, BoxesCollectionItemClass))

typedef struct _BoxesCollectionItem BoxesCollectionItem;
typedef struct _BoxesCollectionItemClass BoxesCollectionItemClass;

#define BOXES_TYPE_TOPBAR (boxes_topbar_get_type ())
#define BOXES_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_TOPBAR, BoxesTopbar))
#define BOXES_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_TOPBAR, BoxesTopbarClass))
#define BOXES_IS_TOPBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_TOPBAR))
#define BOXES_IS_TOPBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_TOPBAR))
#define BOXES_TOPBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_TOPBAR, BoxesTopbarClass))

typedef struct _BoxesTopbar BoxesTopbar;
typedef struct _BoxesTopbarClass BoxesTopbarClass;

#define BOXES_TYPE_NOTIFICATIONBAR (boxes_notificationbar_get_type ())
#define BOXES_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbar))
#define BOXES_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))
#define BOXES_IS_NOTIFICATIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_IS_NOTIFICATIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_NOTIFICATIONBAR))
#define BOXES_NOTIFICATIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_NOTIFICATIONBAR, BoxesNotificationbarClass))

typedef struct _BoxesNotificationbar BoxesNotificationbar;
typedef struct _BoxesNotificationbarClass BoxesNotificationbarClass;

#define BOXES_TYPE_SIDEBAR (boxes_sidebar_get_type ())
#define BOXES_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebar))
#define BOXES_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))
#define BOXES_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SIDEBAR))
#define BOXES_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SIDEBAR))
#define BOXES_SIDEBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SIDEBAR, BoxesSidebarClass))

typedef struct _BoxesSidebar BoxesSidebar;
typedef struct _BoxesSidebarClass BoxesSidebarClass;

#define BOXES_TYPE_SELECTIONBAR (boxes_selectionbar_get_type ())
#define BOXES_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbar))
#define BOXES_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))
#define BOXES_IS_SELECTIONBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_SELECTIONBAR))
#define BOXES_IS_SELECTIONBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_SELECTIONBAR))
#define BOXES_SELECTIONBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_SELECTIONBAR, BoxesSelectionbarClass))

typedef struct _BoxesSelectionbar BoxesSelectionbar;
typedef struct _BoxesSelectionbarClass BoxesSelectionbarClass;

#define BOXES_TYPE_PROPERTIES (boxes_properties_get_type ())
#define BOXES_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_PROPERTIES, BoxesProperties))
#define BOXES_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))
#define BOXES_IS_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_PROPERTIES))
#define BOXES_IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_PROPERTIES))
#define BOXES_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_PROPERTIES, BoxesPropertiesClass))

typedef struct _BoxesProperties BoxesProperties;
typedef struct _BoxesPropertiesClass BoxesPropertiesClass;

#define BOXES_TYPE_DISPLAY_PAGE (boxes_display_page_get_type ())
#define BOXES_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPage))
#define BOXES_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))
#define BOXES_IS_DISPLAY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_IS_DISPLAY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_DISPLAY_PAGE))
#define BOXES_DISPLAY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_DISPLAY_PAGE, BoxesDisplayPageClass))

typedef struct _BoxesDisplayPage BoxesDisplayPage;
typedef struct _BoxesDisplayPageClass BoxesDisplayPageClass;

#define BOXES_TYPE_COLLECTION (boxes_collection_get_type ())
#define BOXES_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_COLLECTION, BoxesCollection))
#define BOXES_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_COLLECTION, BoxesCollectionClass))
#define BOXES_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_COLLECTION))
#define BOXES_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_COLLECTION))
#define BOXES_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_COLLECTION, BoxesCollectionClass))

typedef struct _BoxesCollection BoxesCollection;
typedef struct _BoxesCollectionClass BoxesCollectionClass;
typedef struct _BoxesSidebarPrivate BoxesSidebarPrivate;

#define BOXES_TYPE_CATEGORY (boxes_category_get_type ())
#define BOXES_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BOXES_TYPE_CATEGORY, BoxesCategory))
#define BOXES_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BOXES_TYPE_CATEGORY, BoxesCategoryClass))
#define BOXES_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BOXES_TYPE_CATEGORY))
#define BOXES_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BOXES_TYPE_CATEGORY))
#define BOXES_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BOXES_TYPE_CATEGORY, BoxesCategoryClass))

typedef struct _BoxesCategory BoxesCategory;
typedef struct _BoxesCategoryClass BoxesCategoryClass;

#define BOXES_TYPE_SIDEBAR_PAGE (boxes_sidebar_page_get_type ())
typedef struct _BoxesTopbarPrivate BoxesTopbarPrivate;

#define BOXES_TYPE_TOPBAR_PAGE (boxes_topbar_page_get_type ())
typedef struct _BoxesWizardSourcePrivate BoxesWizardSourcePrivate;
typedef struct _BoxesWizardWizardSummaryPrivate BoxesWizardWizardSummaryPrivate;

typedef enum  {
	BOXES_WIZARD_PAGE_INTRODUCTION,
	BOXES_WIZARD_PAGE_SOURCE,
	BOXES_WIZARD_PAGE_PREPARATION,
	BOXES_WIZARD_PAGE_SETUP,
	BOXES_WIZARD_PAGE_REVIEW,
	BOXES_WIZARD_PAGE_LAST
} BoxesWizardPage;

typedef enum  {
	BOXES_UI_STATE_NONE,
	BOXES_UI_STATE_COLLECTION,
	BOXES_UI_STATE_CREDS,
	BOXES_UI_STATE_DISPLAY,
	BOXES_UI_STATE_SETTINGS,
	BOXES_UI_STATE_WIZARD,
	BOXES_UI_STATE_PROPERTIES
} BoxesUIState;

struct _BoxesUI {
	GObject parent_instance;
	BoxesUIPrivate * priv;
	BoxesUIState previous_ui_state;
};

struct _BoxesUIClass {
	GObjectClass parent_class;
	void (*ui_state_changed) (BoxesUI* self);
	ClutterActor* (*get_actor) (BoxesUI* self);
};

struct _BoxesWizard {
	BoxesUI parent_instance;
	BoxesWizardPrivate * priv;
};

struct _BoxesWizardClass {
	BoxesUIClass parent_class;
};

struct _BoxesWizardPrivate {
	GtkClutterActor* gtk_actor;
	BoxesApp* app;
	GPtrArray* steps;
	GtkNotebook* notebook;
	GtkButton* back_button;
	GtkButton* next_button;
	BoxesWizardSource* wizard_source;
	BoxesWizardWizardSummary* summary;
	BoxesCollectionSource* source;
	GtkProgressBar* prep_progress;
	GtkVBox* setup_vbox;
	BoxesOSDatabase* os_db;
	BoxesVMCreator* vm_creator;
	GUdevClient* client;
	BoxesInstallerMedia* install_media;
	OsinfoResources* resources;
	BoxesWizardPage _page;
};

struct _BoxesIConfigIface {
	GTypeInterface parent_iface;
	GKeyFile* (*get_keyfile) (BoxesIConfig* self);
	const gchar* (*get_filename) (BoxesIConfig* self);
	void (*set_filename) (BoxesIConfig* self, const gchar* value);
	gboolean (*get_has_file) (BoxesIConfig* self);
	void (*set_has_file) (BoxesIConfig* self, gboolean value);
};

struct _BoxesWizardCreateData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	BoxesWizard* self;
	gboolean result;
	BoxesCollectionSource* _tmp0_;
	BoxesInstallerMedia* _tmp1_;
	GtkButton* _tmp2_;
	BoxesVMCreator* _tmp3_;
	BoxesInstallerMedia* _tmp4_;
	OsinfoResources* _tmp5_;
	GVirDomain* _tmp6_;
	GVirDomain* _tmp7_;
	GError* cancel_error;
	GError* _error_;
	GError* _tmp8_;
	const gchar* _tmp9_;
	BoxesWizardSource* _tmp10_;
	BoxesCollectionSource* _tmp11_;
	BoxesApp* _tmp12_;
	BoxesCollectionSource* _tmp13_;
	GError * _inner_error_;
};

typedef enum  {
	BOXES_ERROR_INVALID
} BoxesError;
#define BOXES_ERROR boxes_error_quark ()
struct _BoxesInstallerMedia {
	GObject parent_instance;
	BoxesInstallerMediaPrivate * priv;
	OsinfoOs* os;
	OsinfoMedia* os_media;
	gchar* label;
	gchar* device_file;
	gchar* mount_point;
	gboolean from_image;
};

struct _BoxesInstallerMediaClass {
	GObjectClass parent_class;
};

typedef enum  {
	BOXES_SOURCE_PAGE_MAIN,
	BOXES_SOURCE_PAGE_URL,
	BOXES_SOURCE_PAGE_FILE,
	BOXES_SOURCE_PAGE_LAST
} BoxesSourcePage;

struct _BoxesApp {
	BoxesUI parent_instance;
	BoxesAppPrivate * priv;
	GtkApplicationWindow* window;
	GtkNotebook* notebook;
	GtkClutterEmbed* embed;
	ClutterStage* stage;
	ClutterState* state;
	ClutterBox* box;
	BoxesCollectionItem* current_item;
	BoxesTopbar* topbar;
	BoxesNotificationbar* notificationbar;
	BoxesSidebar* sidebar;
	BoxesSelectionbar* selectionbar;
	guint duration;
	GSettings* settings;
	BoxesWizard* wizard;
	BoxesProperties* properties;
	BoxesDisplayPage* display_page;
	BoxesCollection* collection;
	GSimpleAction* action_properties;
	GSimpleAction* action_fullscreen;
};

struct _BoxesAppClass {
	BoxesUIClass parent_class;
};

struct _BoxesSidebar {
	BoxesUI parent_instance;
	BoxesSidebarPrivate * priv;
	GtkNotebook* notebook;
	GtkTreeView* default_tree_view;
	GtkTreeView* user_tree_view;
	BoxesCategory* category;
};

struct _BoxesSidebarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_SIDEBAR_PAGE_COLLECTION,
	BOXES_SIDEBAR_PAGE_WIZARD,
	BOXES_SIDEBAR_PAGE_PROPERTIES
} BoxesSidebarPage;

struct _BoxesTopbar {
	BoxesUI parent_instance;
	BoxesTopbarPrivate * priv;
	GtkLabel* label;
	GtkNotebook* notebook;
};

struct _BoxesTopbarClass {
	BoxesUIClass parent_class;
};

typedef enum  {
	BOXES_TOPBAR_PAGE_COLLECTION,
	BOXES_TOPBAR_PAGE_SELECTION,
	BOXES_TOPBAR_PAGE_WIZARD,
	BOXES_TOPBAR_PAGE_PROPERTIES
} BoxesTopbarPage;

struct _BoxesWizardSource {
	GObject parent_instance;
	BoxesWizardSourcePrivate * priv;
	GtkEntry* url_entry;
};

struct _BoxesWizardSourceClass {
	GObjectClass parent_class;
};

struct _BoxesWizardWizardSummary {
	GObject parent_instance;
	BoxesWizardWizardSummaryPrivate * priv;
};

struct _BoxesWizardWizardSummaryClass {
	GObjectClass parent_class;
};

struct _BoxesWizardWizardSummaryPrivate {
	GtkTable* table;
	guint current_row;
};


static gpointer boxes_wizard_parent_class = NULL;
static gpointer boxes_wizard_wizard_summary_parent_class = NULL;

GType boxes_wizard_page_get_type (void) G_GNUC_CONST;
GType boxes_ui_get_type (void) G_GNUC_CONST;
GType boxes_ui_state_get_type (void) G_GNUC_CONST;
GType boxes_wizard_get_type (void) G_GNUC_CONST;
GType boxes_app_get_type (void) G_GNUC_CONST;
GType boxes_wizard_source_get_type (void) G_GNUC_CONST;
static GType boxes_wizard_wizard_summary_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
GType boxes_collection_source_get_type (void) G_GNUC_CONST;
gpointer boxes_os_database_ref (gpointer instance);
void boxes_os_database_unref (gpointer instance);
GParamSpec* boxes_param_spec_os_database (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void boxes_value_set_os_database (GValue* value, gpointer v_object);
void boxes_value_take_os_database (GValue* value, gpointer v_object);
gpointer boxes_value_get_os_database (const GValue* value);
GType boxes_os_database_get_type (void) G_GNUC_CONST;
gpointer boxes_vm_creator_ref (gpointer instance);
void boxes_vm_creator_unref (gpointer instance);
GParamSpec* boxes_param_spec_vm_creator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void boxes_value_set_vm_creator (GValue* value, gpointer v_object);
void boxes_value_take_vm_creator (GValue* value, gpointer v_object);
gpointer boxes_value_get_vm_creator (const GValue* value);
GType boxes_vm_creator_get_type (void) G_GNUC_CONST;
GType boxes_installer_media_get_type (void) G_GNUC_CONST;
#define BOXES_WIZARD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_TYPE_WIZARD, BoxesWizardPrivate))
enum  {
	BOXES_WIZARD_DUMMY_PROPERTY,
	BOXES_WIZARD_ACTOR
};
BoxesWizard* boxes_wizard_new (BoxesApp* app);
BoxesWizard* boxes_wizard_construct (GType object_type, BoxesApp* app);
BoxesUI* boxes_ui_construct (GType object_type);
static void boxes_wizard_setup_ui (BoxesWizard* self);
static void boxes_wizard_create_data_free (gpointer _data);
static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_);
static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_);
void boxes_vm_creator_create_and_launch_vm (BoxesVMCreator* self, BoxesInstallerMedia* install_media, OsinfoResources* resources, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
GVirDomain* boxes_vm_creator_create_and_launch_vm_finish (BoxesVMCreator* self, GAsyncResult* _res_, GError** error);
static void boxes_wizard_create_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void boxes_wizard_source_set_uri (BoxesWizardSource* self, const gchar* value);
GType boxes_iconfig_get_type (void) G_GNUC_CONST;
void boxes_iconfig_save (BoxesIConfig* self);
void boxes_app_add_collection_source (BoxesApp* self, BoxesCollectionSource* source, GAsyncReadyCallback _callback_, gpointer _user_data_);
void boxes_app_add_collection_source_finish (BoxesApp* self, GAsyncResult* _res_);
static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error);
GQuark boxes_error_quark (void);
static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error);
static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error);
BoxesCollectionSource* boxes_collection_source_new (const gchar* name, const gchar* source_type, const gchar* uri);
BoxesCollectionSource* boxes_collection_source_construct (GType object_type, const gchar* name, const gchar* source_type, const gchar* uri);
BoxesOSDatabase* boxes_os_database_new (GError** error);
BoxesOSDatabase* boxes_os_database_construct (GType object_type, GError** error);
BoxesVMCreator* boxes_vm_creator_new (BoxesApp* app, GError** error);
BoxesVMCreator* boxes_vm_creator_construct (GType object_type, BoxesApp* app, GError** error);
void boxes_installer_media_instantiate (const gchar* path, BoxesOSDatabase* os_db, GUdevClient* client, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
BoxesInstallerMedia* boxes_installer_media_instantiate_finish (GAsyncResult* _res_, GError** error);
static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_);
static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
OsinfoResources* boxes_os_database_get_resources_for_os (BoxesOSDatabase* self, OsinfoOs* os, const gchar* architecture);
static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self);
static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value);
static void boxes_wizard_prepare (BoxesWizard* self, GError** error);
GType boxes_source_page_get_type (void) G_GNUC_CONST;
BoxesSourcePage boxes_wizard_source_get_page (BoxesWizardSource* self);
const gchar* boxes_wizard_source_get_uri (BoxesWizardSource* self);
static gboolean boxes_wizard_setup (BoxesWizard* self);
gboolean boxes_installer_media_get_live (BoxesInstallerMedia* self);
GType boxes_unattended_installer_get_type (void) G_GNUC_CONST;
void boxes_unattended_installer_populate_setup_vbox (BoxesUnattendedInstaller* self, GtkVBox* setup_vbox);
static void boxes_wizard_review (BoxesWizard* self);
static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self);
gchar* boxes_collection_source_get_uri (BoxesCollectionSource* self);
static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value);
BoxesQuery* boxes_query_new (const gchar* query);
BoxesQuery* boxes_query_construct (GType object_type, const gchar* query);
GType boxes_query_get_type (void) G_GNUC_CONST;
gchar* boxes_query_get (BoxesQuery* self, const gchar* key);
gboolean boxes_unattended_installer_get_express_install (BoxesUnattendedInstaller* self);
const gchar* boxes_unattended_installer_get_username (BoxesUnattendedInstaller* self);
gchar* boxes_unattended_installer_get_hidden_password (BoxesUnattendedInstaller* self);
static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page);
GType boxes_collection_item_get_type (void) G_GNUC_CONST;
GType boxes_topbar_get_type (void) G_GNUC_CONST;
GType boxes_notificationbar_get_type (void) G_GNUC_CONST;
GType boxes_sidebar_get_type (void) G_GNUC_CONST;
GType boxes_selectionbar_get_type (void) G_GNUC_CONST;
GType boxes_properties_get_type (void) G_GNUC_CONST;
GType boxes_display_page_get_type (void) G_GNUC_CONST;
GType boxes_collection_get_type (void) G_GNUC_CONST;
GType boxes_category_get_type (void) G_GNUC_CONST;
GType boxes_sidebar_page_get_type (void) G_GNUC_CONST;
static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page);
gchar* boxes_get_pixmap (const gchar* file_name);
GtkWidget* boxes_wizard_source_get_widget (BoxesWizardSource* self);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void);
static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type);
static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self);
GType boxes_topbar_page_get_type (void) G_GNUC_CONST;
static void __lambda54_ (BoxesWizard* self);
void boxes_ui_set_ui_state (BoxesUI* self, BoxesUIState value);
static void ___lambda54__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda55_ (BoxesWizard* self);
static void ___lambda55__gtk_button_clicked (GtkButton* _sender, gpointer self);
static void __lambda72_ (BoxesWizard* self);
static void ___lambda72__gtk_button_clicked (GtkButton* _sender, gpointer self);
void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri);
void boxes_wizard_source_set_page (BoxesWizardSource* self, BoxesSourcePage value);
static void boxes_wizard_real_ui_state_changed (BoxesUI* base);
BoxesUIState boxes_ui_get_ui_state (BoxesUI* self);
static void _boxes_wizard_page_____lambda71_ (BoxesWizard* self, GObject* source, GAsyncResult* _result_);
static void __boxes_wizard_page_____lambda71__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
void boxes_get_color (const gchar* desc, GdkColor* result);
static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static void _g_object_unref0_ (gpointer var);
BoxesWizardSource* boxes_wizard_source_new (void);
BoxesWizardSource* boxes_wizard_source_construct (GType object_type);
static void _boxes_wizard___lambda73_ (BoxesWizard* self);
static void __boxes_wizard___lambda73__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _boxes_wizard___lambda74_ (BoxesWizard* self);
gchar* boxes_collection_source_get_source_type (BoxesCollectionSource* self);
void boxes_wizard_source_update_url_page (BoxesWizardSource* self, const gchar* title, const gchar* text, const gchar* icon_name);
static void __boxes_wizard___lambda74__gtk_editable_changed (GtkEditable* _sender, gpointer self);
static void _boxes_wizard___lambda75_ (BoxesWizard* self);
static void __boxes_wizard___lambda75__gtk_entry_activate (GtkEntry* _sender, gpointer self);
#define BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BOXES_WIZARD_TYPE_WIZARD_SUMMARY, BoxesWizardWizardSummaryPrivate))
enum  {
	BOXES_WIZARD_WIZARD_SUMMARY_DUMMY_PROPERTY,
	BOXES_WIZARD_WIZARD_SUMMARY_WIDGET
};
static void boxes_wizard_wizard_summary_finalize (GObject* obj);
static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void boxes_wizard_finalize (GObject* obj);
ClutterActor* boxes_ui_get_actor (BoxesUI* self);
static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
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);


GType boxes_wizard_page_get_type (void) {
	static volatile gsize boxes_wizard_page_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_page_type_id__volatile)) {
		static const GEnumValue values[] = {{BOXES_WIZARD_PAGE_INTRODUCTION, "BOXES_WIZARD_PAGE_INTRODUCTION", "introduction"}, {BOXES_WIZARD_PAGE_SOURCE, "BOXES_WIZARD_PAGE_SOURCE", "source"}, {BOXES_WIZARD_PAGE_PREPARATION, "BOXES_WIZARD_PAGE_PREPARATION", "preparation"}, {BOXES_WIZARD_PAGE_SETUP, "BOXES_WIZARD_PAGE_SETUP", "setup"}, {BOXES_WIZARD_PAGE_REVIEW, "BOXES_WIZARD_PAGE_REVIEW", "review"}, {BOXES_WIZARD_PAGE_LAST, "BOXES_WIZARD_PAGE_LAST", "last"}, {0, NULL, NULL}};
		GType boxes_wizard_page_type_id;
		boxes_wizard_page_type_id = g_enum_register_static ("BoxesWizardPage", values);
		g_once_init_leave (&boxes_wizard_page_type_id__volatile, boxes_wizard_page_type_id);
	}
	return boxes_wizard_page_type_id__volatile;
}


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


BoxesWizard* boxes_wizard_construct (GType object_type, BoxesApp* app) {
	BoxesWizard * self = NULL;
	BoxesApp* _tmp0_;
	BoxesApp* _tmp1_;
	g_return_val_if_fail (app != NULL, NULL);
	self = (BoxesWizard*) boxes_ui_construct (object_type);
	_tmp0_ = app;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (self->priv->app);
	self->priv->app = _tmp1_;
	boxes_wizard_setup_ui (self);
	return self;
}


BoxesWizard* boxes_wizard_new (BoxesApp* app) {
	return boxes_wizard_construct (BOXES_TYPE_WIZARD, app);
}


static void boxes_wizard_create_data_free (gpointer _data) {
	BoxesWizardCreateData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (BoxesWizardCreateData, _data_);
}


static void boxes_wizard_create (BoxesWizard* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	BoxesWizardCreateData* _data_;
	BoxesWizard* _tmp0_;
	_data_ = g_slice_new0 (BoxesWizardCreateData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, boxes_wizard_create);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, boxes_wizard_create_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	boxes_wizard_create_co (_data_);
}


static gboolean boxes_wizard_create_finish (BoxesWizard* self, GAsyncResult* _res_) {
	gboolean result;
	BoxesWizardCreateData* _data_;
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	result = _data_->result;
	return result;
}


static void boxes_wizard_create_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	BoxesWizardCreateData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	boxes_wizard_create_co (_data_);
}


static gboolean boxes_wizard_create_co (BoxesWizardCreateData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->self->priv->source;
	if (_data_->_tmp0_ == NULL) {
		_data_->_tmp1_ = _data_->self->priv->install_media;
		if (_data_->_tmp1_ == NULL) {
			_data_->result = FALSE;
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		_data_->_tmp2_ = _data_->self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _data_->_tmp2_, FALSE);
		{
			_data_->_tmp3_ = _data_->self->priv->vm_creator;
			_data_->_tmp4_ = _data_->self->priv->install_media;
			_data_->_tmp5_ = _data_->self->priv->resources;
			_data_->_state_ = 1;
			boxes_vm_creator_create_and_launch_vm (_data_->_tmp3_, _data_->_tmp4_, _data_->_tmp5_, NULL, boxes_wizard_create_ready, _data_);
			return FALSE;
			_state_1:
			_data_->_tmp6_ = NULL;
			_data_->_tmp6_ = boxes_vm_creator_create_and_launch_vm_finish (_data_->_tmp3_, _data_->_res_, &_data_->_inner_error_);
			_data_->_tmp7_ = _data_->_tmp6_;
			_g_object_unref0 (_data_->_tmp7_);
			if (_data_->_inner_error_ != NULL) {
				if (g_error_matches (_data_->_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
					goto __catch46_g_io_error_cancelled;
				}
				goto __catch46_g_error;
			}
		}
		goto __finally46;
		__catch46_g_io_error_cancelled:
		{
			_data_->cancel_error = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_g_error_free0 (_data_->cancel_error);
		}
		goto __finally46;
		__catch46_g_error:
		{
			_data_->_error_ = _data_->_inner_error_;
			_data_->_inner_error_ = NULL;
			_data_->_tmp8_ = _data_->_error_;
			_data_->_tmp9_ = _data_->_tmp8_->message;
			g_warning ("wizard.vala:153: %s", _data_->_tmp9_);
			_data_->result = FALSE;
			_g_error_free0 (_data_->_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		}
		__finally46:
		if (_data_->_inner_error_ != NULL) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
		_g_object_unref0 (_data_->self->priv->install_media);
		_data_->self->priv->install_media = NULL;
		_g_object_unref0 (_data_->self->priv->resources);
		_data_->self->priv->resources = NULL;
		_data_->_tmp10_ = _data_->self->priv->wizard_source;
		boxes_wizard_source_set_uri (_data_->_tmp10_, "");
		_data_->result = TRUE;
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp11_ = _data_->self->priv->source;
	boxes_iconfig_save ((BoxesIConfig*) _data_->_tmp11_);
	_data_->_tmp12_ = _data_->self->priv->app;
	_data_->_tmp13_ = _data_->self->priv->source;
	boxes_app_add_collection_source (_data_->_tmp12_, _data_->_tmp13_, NULL, NULL);
	_data_->result = TRUE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


static void boxes_wizard_prepare_for_location (BoxesWizard* self, const gchar* location, gboolean probing, GError** error) {
	const gchar* _tmp0_;
	const gchar* _tmp2_;
	GFile* _tmp3_ = NULL;
	GFile* file;
	GFile* _tmp4_;
	gboolean _tmp5_ = FALSE;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (location != NULL);
	_g_object_unref0 (self->priv->source);
	self->priv->source = NULL;
	_tmp0_ = location;
	if (g_strcmp0 (_tmp0_, "") == 0) {
		GError* _tmp1_;
		_tmp1_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, "empty location");
		_inner_error_ = _tmp1_;
		g_propagate_error (error, _inner_error_);
		return;
	}
	_tmp2_ = location;
	_tmp3_ = g_file_new_for_commandline_arg (_tmp2_);
	file = _tmp3_;
	_tmp4_ = file;
	_tmp5_ = g_file_is_native (_tmp4_);
	if (_tmp5_) {
		gboolean _tmp6_;
		_tmp6_ = probing;
		if (!_tmp6_) {
			GFile* _tmp7_;
			gchar* _tmp8_ = NULL;
			gchar* _tmp9_;
			_tmp7_ = file;
			_tmp8_ = g_file_get_path (_tmp7_);
			_tmp9_ = _tmp8_;
			boxes_wizard_prepare_for_installer (self, _tmp9_, &_inner_error_);
			_g_free0 (_tmp9_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_object_unref0 (file);
				return;
			}
		}
	} else {
		gboolean uncertain = FALSE;
		GFile* _tmp10_;
		gchar* _tmp11_ = NULL;
		gchar* uri;
		const gchar* _tmp12_;
		gboolean _tmp13_ = FALSE;
		gchar* _tmp14_ = NULL;
		gchar* mimetype;
		gboolean _tmp15_;
		_tmp10_ = file;
		_tmp11_ = g_file_get_uri (_tmp10_);
		uri = _tmp11_;
		_tmp12_ = uri;
		_tmp14_ = g_content_type_guess (_tmp12_, NULL, 0, &_tmp13_);
		uncertain = _tmp13_;
		mimetype = _tmp14_;
		_tmp15_ = uncertain;
		if (_tmp15_) {
			const gchar* _tmp16_;
			_tmp16_ = uri;
			boxes_wizard_prepare_for_uri (self, _tmp16_, &_inner_error_);
			if (_inner_error_ != NULL) {
				g_propagate_error (error, _inner_error_);
				_g_free0 (mimetype);
				_g_free0 (uri);
				_g_object_unref0 (file);
				return;
			}
		} else {
			const gchar* _tmp17_;
			gchar* _tmp18_ = NULL;
			gchar* _tmp19_;
			_tmp17_ = mimetype;
			_tmp18_ = g_strdup_printf ("FIXME: %s", _tmp17_);
			_tmp19_ = _tmp18_;
			g_debug ("wizard.vala:190: %s", _tmp19_);
			_g_free0 (_tmp19_);
		}
		_g_free0 (mimetype);
		_g_free0 (uri);
	}
	_g_object_unref0 (file);
}


static void boxes_wizard_prepare_for_uri (BoxesWizard* self, const gchar* uri_as_text, GError** error) {
	const gchar* _tmp0_;
	xmlURI* _tmp1_ = NULL;
	xmlURI* uri;
	gboolean _tmp2_ = FALSE;
	xmlURI* _tmp3_;
	gboolean _tmp6_;
	xmlURI* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp15_;
	xmlURI* _tmp16_;
	const gchar* _tmp17_;
	const gchar* _tmp18_;
	BoxesCollectionSource* _tmp19_;
	gboolean _tmp20_ = FALSE;
	xmlURI* _tmp21_;
	const gchar* _tmp22_;
	gboolean _tmp25_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri_as_text != NULL);
	_tmp0_ = uri_as_text;
	_tmp1_ = xmlParseURI (_tmp0_);
	uri = _tmp1_;
	_tmp3_ = uri;
	if (_tmp3_ == NULL) {
		_tmp2_ = TRUE;
	} else {
		xmlURI* _tmp4_;
		const gchar* _tmp5_;
		_tmp4_ = uri;
		_tmp5_ = _tmp4_->server;
		_tmp2_ = _tmp5_ == NULL;
	}
	_tmp6_ = _tmp2_;
	if (_tmp6_) {
		GError* _tmp7_;
		_tmp7_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, "the URI is invalid");
		_inner_error_ = _tmp7_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_xmlFreeURI0 (uri);
			return;
		} else {
			_xmlFreeURI0 (uri);
			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;
		}
	}
	_tmp8_ = uri;
	_tmp9_ = _tmp8_->server;
	_tmp10_ = g_strdup (_tmp9_);
	_tmp11_ = _tmp10_;
	_tmp12_ = _tmp11_;
	if (_tmp12_ == NULL) {
		const gchar* _tmp13_;
		gchar* _tmp14_;
		_tmp13_ = uri_as_text;
		_tmp14_ = g_strdup (_tmp13_);
		_g_free0 (_tmp11_);
		_tmp11_ = _tmp14_;
	}
	_tmp15_ = _tmp11_;
	_tmp16_ = uri;
	_tmp17_ = _tmp16_->scheme;
	_tmp18_ = uri_as_text;
	_tmp19_ = boxes_collection_source_new (_tmp15_, _tmp17_, _tmp18_);
	_g_object_unref0 (self->priv->source);
	self->priv->source = _tmp19_;
	_tmp21_ = uri;
	_tmp22_ = _tmp21_->scheme;
	if (g_strcmp0 (_tmp22_, "spice") == 0) {
		_tmp20_ = TRUE;
	} else {
		xmlURI* _tmp23_;
		const gchar* _tmp24_;
		_tmp23_ = uri;
		_tmp24_ = _tmp23_->scheme;
		_tmp20_ = g_strcmp0 (_tmp24_, "vnc") == 0;
	}
	_tmp25_ = _tmp20_;
	if (_tmp25_) {
	} else {
		xmlURI* _tmp26_;
		const gchar* _tmp27_;
		gchar* _tmp28_ = NULL;
		gchar* _tmp29_;
		GError* _tmp30_;
		GError* _tmp31_;
		_tmp26_ = uri;
		_tmp27_ = _tmp26_->scheme;
		_tmp28_ = g_strdup_printf ("Unsupported protocol %s", _tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = g_error_new_literal (BOXES_ERROR, BOXES_ERROR_INVALID, _tmp29_);
		_tmp31_ = _tmp30_;
		_g_free0 (_tmp29_);
		_inner_error_ = _tmp31_;
		if (_inner_error_->domain == BOXES_ERROR) {
			g_propagate_error (error, _inner_error_);
			_g_free0 (_tmp11_);
			_xmlFreeURI0 (uri);
			return;
		} else {
			_g_free0 (_tmp11_);
			_xmlFreeURI0 (uri);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
			g_clear_error (&_inner_error_);
			return;
		}
	}
	_g_free0 (_tmp11_);
	_xmlFreeURI0 (uri);
}


static void _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	boxes_wizard_on_installer_media_instantiated (self, source_object, res);
	g_object_unref (self);
}


static void boxes_wizard_prepare_for_installer (BoxesWizard* self, const gchar* path, GError** error) {
	GUdevClient* _tmp0_;
	GtkButton* _tmp10_;
	const gchar* _tmp11_;
	BoxesOSDatabase* _tmp12_;
	GUdevClient* _tmp13_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (path != NULL);
	_tmp0_ = self->priv->client;
	if (_tmp0_ == NULL) {
		gchar* _tmp1_;
		gchar** _tmp2_ = NULL;
		gchar** _tmp3_;
		gint _tmp3__length1;
		GUdevClient* _tmp4_;
		BoxesOSDatabase* _tmp5_;
		BoxesOSDatabase* _tmp6_;
		BoxesApp* _tmp7_;
		BoxesVMCreator* _tmp8_;
		BoxesVMCreator* _tmp9_;
		_tmp1_ = g_strdup ("block");
		_tmp2_ = g_new0 (gchar*, 1 + 1);
		_tmp2_[0] = _tmp1_;
		_tmp3_ = _tmp2_;
		_tmp3__length1 = 1;
		_tmp4_ = g_udev_client_new (_tmp3_);
		_g_object_unref0 (self->priv->client);
		self->priv->client = _tmp4_;
		_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
		_tmp5_ = boxes_os_database_new (&_inner_error_);
		_tmp6_ = _tmp5_;
		if (_inner_error_ != NULL) {
			g_propagate_error (error, _inner_error_);
			return;
		}
		_boxes_os_database_unref0 (self->priv->os_db);
		self->priv->os_db = _tmp6_;
		_tmp7_ = self->priv->app;
		_tmp8_ = boxes_vm_creator_new (_tmp7_, &_inner_error_);
		_tmp9_ = _tmp8_;
		if (_inner_error_ != NULL) {
			g_propagate_error (error, _inner_error_);
			return;
		}
		_boxes_vm_creator_unref0 (self->priv->vm_creator);
		self->priv->vm_creator = _tmp9_;
	}
	_tmp10_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp10_, FALSE);
	_tmp11_ = path;
	_tmp12_ = self->priv->os_db;
	_tmp13_ = self->priv->client;
	boxes_installer_media_instantiate (_tmp11_, _tmp12_, _tmp13_, NULL, _boxes_wizard_on_installer_media_instantiated_gasync_ready_callback, g_object_ref (self));
}


static void boxes_wizard_on_installer_media_instantiated (BoxesWizard* self, GObject* source_object, GAsyncResult* _result_) {
	GtkButton* _tmp0_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, TRUE);
	{
		GAsyncResult* _tmp1_;
		BoxesInstallerMedia* _tmp2_ = NULL;
		BoxesInstallerMedia* _tmp3_;
		gchar* _tmp4_ = NULL;
		BoxesInstallerMedia* _tmp5_;
		OsinfoMedia* _tmp6_;
		const gchar* _tmp12_;
		gchar* _tmp13_;
		gchar* architecture;
		BoxesOSDatabase* _tmp14_;
		BoxesInstallerMedia* _tmp15_;
		OsinfoOs* _tmp16_;
		const gchar* _tmp17_;
		OsinfoResources* _tmp18_ = NULL;
		GtkProgressBar* _tmp19_;
		BoxesWizardPage _tmp20_;
		BoxesWizardPage _tmp21_;
		_tmp1_ = _result_;
		_tmp2_ = boxes_installer_media_instantiate_finish (_tmp1_, &_inner_error_);
		_tmp3_ = _tmp2_;
		if (_inner_error_ != NULL) {
			if (g_error_matches (_inner_error_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch47_g_io_error_cancelled;
			}
			goto __catch47_g_error;
		}
		_g_object_unref0 (self->priv->install_media);
		self->priv->install_media = _tmp3_;
		_tmp5_ = self->priv->install_media;
		_tmp6_ = _tmp5_->os_media;
		if (_tmp6_ != NULL) {
			BoxesInstallerMedia* _tmp7_;
			OsinfoMedia* _tmp8_;
			gchar* _tmp9_ = NULL;
			gchar* _tmp10_;
			_tmp7_ = self->priv->install_media;
			_tmp8_ = _tmp7_->os_media;
			g_object_get (_tmp8_, "architecture", &_tmp9_, NULL);
			_tmp10_ = _tmp9_;
			_g_free0 (_tmp4_);
			_tmp4_ = _tmp10_;
		} else {
			gchar* _tmp11_;
			_tmp11_ = g_strdup ("i686");
			_g_free0 (_tmp4_);
			_tmp4_ = _tmp11_;
		}
		_tmp12_ = _tmp4_;
		_tmp13_ = g_strdup (_tmp12_);
		architecture = _tmp13_;
		_tmp14_ = self->priv->os_db;
		_tmp15_ = self->priv->install_media;
		_tmp16_ = _tmp15_->os;
		_tmp17_ = architecture;
		_tmp18_ = boxes_os_database_get_resources_for_os (_tmp14_, _tmp16_, _tmp17_);
		_g_object_unref0 (self->priv->resources);
		self->priv->resources = _tmp18_;
		_tmp19_ = self->priv->prep_progress;
		gtk_progress_bar_set_fraction (_tmp19_, 1.0);
		_tmp20_ = boxes_wizard_get_page (self);
		_tmp21_ = _tmp20_;
		boxes_wizard_set_page (self, _tmp21_ + 1);
		_g_free0 (architecture);
		_g_free0 (_tmp4_);
	}
	goto __finally47;
	__catch47_g_io_error_cancelled:
	{
		GError* cancel_error = NULL;
		cancel_error = _inner_error_;
		_inner_error_ = NULL;
		_g_error_free0 (cancel_error);
	}
	goto __finally47;
	__catch47_g_error:
	{
		GError* _error_ = NULL;
		GError* _tmp22_;
		const gchar* _tmp23_;
		gchar* _tmp24_ = NULL;
		gchar* _tmp25_;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_tmp22_ = _error_;
		_tmp23_ = _tmp22_->message;
		_tmp24_ = g_strdup_printf ("Fixme: %s", _tmp23_);
		_tmp25_ = _tmp24_;
		g_warning ("wizard.vala:232: %s", _tmp25_);
		_g_free0 (_tmp25_);
		_g_error_free0 (_error_);
	}
	__finally47:
	if (_inner_error_ != NULL) {
		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;
	}
}


static void boxes_wizard_prepare (BoxesWizard* self, GError** error) {
	gboolean _tmp0_ = FALSE;
	BoxesWizardSource* _tmp1_;
	BoxesSourcePage _tmp2_;
	BoxesSourcePage _tmp3_;
	gboolean _tmp7_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_page (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == BOXES_SOURCE_PAGE_URL) {
		_tmp0_ = TRUE;
	} else {
		BoxesWizardSource* _tmp4_;
		BoxesSourcePage _tmp5_;
		BoxesSourcePage _tmp6_;
		_tmp4_ = self->priv->wizard_source;
		_tmp5_ = boxes_wizard_source_get_page (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp0_ = _tmp6_ == BOXES_SOURCE_PAGE_FILE;
	}
	_tmp7_ = _tmp0_;
	if (_tmp7_) {
		BoxesWizardSource* _tmp8_;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		_tmp8_ = self->priv->wizard_source;
		_tmp9_ = boxes_wizard_source_get_uri (_tmp8_);
		_tmp10_ = _tmp9_;
		boxes_wizard_prepare_for_location (self, _tmp10_, FALSE, &_inner_error_);
		if (_inner_error_ != NULL) {
			g_propagate_error (error, _inner_error_);
			return;
		}
	}
}


static gboolean boxes_wizard_setup (BoxesWizard* self) {
	gboolean result = FALSE;
	BoxesCollectionSource* _tmp0_;
	GtkVBox* _tmp1_;
	GList* _tmp2_ = NULL;
	BoxesWizardPage _tmp5_;
	BoxesWizardPage _tmp6_;
	BoxesWizardPage skip_to;
	gboolean _tmp7_ = FALSE;
	BoxesInstallerMedia* _tmp8_;
	gboolean _tmp12_;
	BoxesWizardPage _tmp14_;
	BoxesWizardPage _tmp15_;
	BoxesWizardPage _tmp16_;
	BoxesInstallerMedia* _tmp18_;
	BoxesUnattendedInstaller* _tmp19_;
	BoxesUnattendedInstaller* installer;
	BoxesUnattendedInstaller* _tmp20_;
	GtkVBox* _tmp21_;
	GtkVBox* _tmp22_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->source;
	if (_tmp0_ != NULL) {
		result = TRUE;
		return result;
	}
	_tmp1_ = self->priv->setup_vbox;
	_tmp2_ = gtk_container_get_children ((GtkContainer*) _tmp1_);
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp2_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			GtkWidget* child = NULL;
			child = (GtkWidget*) child_it->data;
			{
				GtkVBox* _tmp3_;
				GtkWidget* _tmp4_;
				_tmp3_ = self->priv->setup_vbox;
				_tmp4_ = child;
				gtk_container_remove ((GtkContainer*) _tmp3_, _tmp4_);
			}
		}
		_g_list_free0 (child_collection);
	}
	_tmp5_ = boxes_wizard_get_page (self);
	_tmp6_ = _tmp5_;
	skip_to = _tmp6_;
	_tmp8_ = self->priv->install_media;
	if (_tmp8_ == NULL) {
		_tmp7_ = TRUE;
	} else {
		BoxesInstallerMedia* _tmp9_;
		gboolean _tmp10_;
		gboolean _tmp11_;
		_tmp9_ = self->priv->install_media;
		_tmp10_ = boxes_installer_media_get_live (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp7_ = _tmp11_;
	}
	_tmp12_ = _tmp7_;
	if (_tmp12_) {
		skip_to = BOXES_WIZARD_PAGE_LAST;
	} else {
		BoxesInstallerMedia* _tmp13_;
		_tmp13_ = self->priv->install_media;
		if (!BOXES_IS_UNATTENDED_INSTALLER (_tmp13_)) {
			skip_to = BOXES_WIZARD_PAGE_REVIEW;
		}
	}
	_tmp14_ = skip_to;
	_tmp15_ = boxes_wizard_get_page (self);
	_tmp16_ = _tmp15_;
	if (_tmp14_ != _tmp16_) {
		BoxesWizardPage _tmp17_;
		_tmp17_ = skip_to;
		boxes_wizard_set_page (self, _tmp17_);
		result = FALSE;
		return result;
	}
	_tmp18_ = self->priv->install_media;
	_tmp19_ = _g_object_ref0 (BOXES_IS_UNATTENDED_INSTALLER (_tmp18_) ? ((BoxesUnattendedInstaller*) _tmp18_) : NULL);
	installer = _tmp19_;
	_tmp20_ = installer;
	_tmp21_ = self->priv->setup_vbox;
	boxes_unattended_installer_populate_setup_vbox (_tmp20_, _tmp21_);
	_tmp22_ = self->priv->setup_vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp22_);
	result = TRUE;
	_g_object_unref0 (installer);
	return result;
}


static void boxes_wizard_review (BoxesWizard* self) {
	BoxesWizardWizardSummary* _tmp0_;
	BoxesCollectionSource* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->summary;
	boxes_wizard_wizard_summary_clear (_tmp0_);
	_tmp1_ = self->priv->source;
	if (_tmp1_ != NULL) {
		BoxesCollectionSource* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		gchar* _tmp5_;
		xmlURI* _tmp6_ = NULL;
		xmlURI* _tmp7_;
		xmlURI* uri;
		BoxesWizardWizardSummary* _tmp8_;
		const gchar* _tmp9_ = NULL;
		xmlURI* _tmp10_;
		const gchar* _tmp11_;
		gchar* _tmp12_ = NULL;
		gchar* _tmp13_;
		BoxesWizardWizardSummary* _tmp14_;
		const gchar* _tmp15_ = NULL;
		xmlURI* _tmp16_;
		const gchar* _tmp17_;
		gchar* _tmp18_ = NULL;
		gchar* _tmp19_;
		xmlURI* _tmp20_;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		GQuark _tmp24_ = 0U;
		static GQuark _tmp23_label0 = 0;
		static GQuark _tmp23_label1 = 0;
		_tmp2_ = self->priv->source;
		_tmp3_ = boxes_collection_source_get_uri (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp5_ = _tmp4_;
		_tmp6_ = xmlParseURI (_tmp5_);
		_tmp7_ = _tmp6_;
		_g_free0 (_tmp5_);
		uri = _tmp7_;
		_tmp8_ = self->priv->summary;
		_tmp9_ = _ ("Type");
		_tmp10_ = uri;
		_tmp11_ = _tmp10_->scheme;
		_tmp12_ = g_utf8_strup (_tmp11_, (gssize) (-1));
		_tmp13_ = _tmp12_;
		boxes_wizard_wizard_summary_add_property (_tmp8_, _tmp9_, _tmp13_);
		_g_free0 (_tmp13_);
		_tmp14_ = self->priv->summary;
		_tmp15_ = _ ("Host");
		_tmp16_ = uri;
		_tmp17_ = _tmp16_->server;
		_tmp18_ = g_utf8_strdown (_tmp17_, (gssize) (-1));
		_tmp19_ = _tmp18_;
		boxes_wizard_wizard_summary_add_property (_tmp14_, _tmp15_, _tmp19_);
		_g_free0 (_tmp19_);
		_tmp20_ = uri;
		_tmp21_ = _tmp20_->scheme;
		_tmp22_ = _tmp21_;
		_tmp24_ = (NULL == _tmp22_) ? 0 : g_quark_from_string (_tmp22_);
		if (_tmp24_ == ((0 != _tmp23_label0) ? _tmp23_label0 : (_tmp23_label0 = g_quark_from_static_string ("spice")))) {
			switch (0) {
				default:
				{
					xmlURI* _tmp25_;
					const gchar* _tmp26_;
					gchar* _tmp27_;
					gchar* _tmp28_;
					const gchar* _tmp29_;
					const gchar* _tmp33_;
					BoxesQuery* _tmp34_;
					BoxesQuery* query;
					BoxesWizardWizardSummary* _tmp35_;
					const gchar* _tmp36_ = NULL;
					BoxesQuery* _tmp37_;
					gchar* _tmp38_ = NULL;
					gchar* _tmp39_;
					BoxesWizardWizardSummary* _tmp40_;
					const gchar* _tmp41_ = NULL;
					BoxesQuery* _tmp42_;
					gchar* _tmp43_ = NULL;
					gchar* _tmp44_;
					_tmp25_ = uri;
					_tmp26_ = _tmp25_->query_raw;
					_tmp27_ = g_strdup (_tmp26_);
					_tmp28_ = _tmp27_;
					_tmp29_ = _tmp28_;
					if (_tmp29_ == NULL) {
						xmlURI* _tmp30_;
						const gchar* _tmp31_;
						gchar* _tmp32_;
						_tmp30_ = uri;
						_tmp31_ = _tmp30_->query;
						_tmp32_ = g_strdup (_tmp31_);
						_g_free0 (_tmp28_);
						_tmp28_ = _tmp32_;
					}
					_tmp33_ = _tmp28_;
					_tmp34_ = boxes_query_new (_tmp33_);
					query = _tmp34_;
					_tmp35_ = self->priv->summary;
					_tmp36_ = _ ("Port");
					_tmp37_ = query;
					_tmp38_ = boxes_query_get (_tmp37_, "port");
					_tmp39_ = _tmp38_;
					boxes_wizard_wizard_summary_add_property (_tmp35_, _tmp36_, _tmp39_);
					_g_free0 (_tmp39_);
					_tmp40_ = self->priv->summary;
					_tmp41_ = _ ("TLS Port");
					_tmp42_ = query;
					_tmp43_ = boxes_query_get (_tmp42_, "tls-port");
					_tmp44_ = _tmp43_;
					boxes_wizard_wizard_summary_add_property (_tmp40_, _tmp41_, _tmp44_);
					_g_free0 (_tmp44_);
					_g_object_unref0 (query);
					_g_free0 (_tmp28_);
					break;
				}
			}
		} else if (_tmp24_ == ((0 != _tmp23_label1) ? _tmp23_label1 : (_tmp23_label1 = g_quark_from_static_string ("vnc")))) {
			switch (0) {
				default:
				{
					xmlURI* _tmp45_;
					gint _tmp46_;
					_tmp45_ = uri;
					_tmp46_ = _tmp45_->port;
					if (_tmp46_ > 0) {
						BoxesWizardWizardSummary* _tmp47_;
						const gchar* _tmp48_ = NULL;
						xmlURI* _tmp49_;
						gint _tmp50_;
						gchar* _tmp51_ = NULL;
						gchar* _tmp52_;
						_tmp47_ = self->priv->summary;
						_tmp48_ = _ ("Port");
						_tmp49_ = uri;
						_tmp50_ = _tmp49_->port;
						_tmp51_ = g_strdup_printf ("%i", _tmp50_);
						_tmp52_ = _tmp51_;
						boxes_wizard_wizard_summary_add_property (_tmp47_, _tmp48_, _tmp52_);
						_g_free0 (_tmp52_);
					}
					break;
				}
			}
		}
		_xmlFreeURI0 (uri);
	} else {
		BoxesInstallerMedia* _tmp53_;
		_tmp53_ = self->priv->install_media;
		if (_tmp53_ != NULL) {
			BoxesWizardWizardSummary* _tmp54_;
			const gchar* _tmp55_ = NULL;
			BoxesInstallerMedia* _tmp56_;
			const gchar* _tmp57_;
			OsinfoResources* _tmp58_;
			gint64 _tmp59_;
			gint64 _tmp60_;
			gchar* _tmp61_ = NULL;
			gchar* memory;
			BoxesInstallerMedia* _tmp62_;
			BoxesWizardWizardSummary* _tmp79_;
			const gchar* _tmp80_ = NULL;
			const gchar* _tmp81_;
			OsinfoResources* _tmp82_;
			gint64 _tmp83_;
			gint64 _tmp84_;
			gchar* _tmp85_ = NULL;
			BoxesWizardWizardSummary* _tmp86_;
			const gchar* _tmp87_ = NULL;
			const gchar* _tmp88_;
			gchar* _tmp89_ = NULL;
			gchar* _tmp90_;
			const gchar* _tmp91_ = NULL;
			_tmp54_ = self->priv->summary;
			_tmp55_ = _ ("System");
			_tmp56_ = self->priv->install_media;
			_tmp57_ = _tmp56_->label;
			boxes_wizard_wizard_summary_add_property (_tmp54_, _tmp55_, _tmp57_);
			_tmp58_ = self->priv->resources;
			_tmp59_ = osinfo_resources_get_ram (_tmp58_);
			_tmp60_ = _tmp59_;
			_tmp61_ = g_format_size_full ((guint64) _tmp60_, G_FORMAT_SIZE_IEC_UNITS);
			memory = _tmp61_;
			_tmp62_ = self->priv->install_media;
			if (BOXES_IS_UNATTENDED_INSTALLER (_tmp62_)) {
				BoxesInstallerMedia* _tmp63_;
				BoxesUnattendedInstaller* _tmp64_;
				BoxesUnattendedInstaller* media;
				BoxesUnattendedInstaller* _tmp65_;
				gboolean _tmp66_;
				gboolean _tmp67_;
				_tmp63_ = self->priv->install_media;
				_tmp64_ = _g_object_ref0 (BOXES_IS_UNATTENDED_INSTALLER (_tmp63_) ? ((BoxesUnattendedInstaller*) _tmp63_) : NULL);
				media = _tmp64_;
				_tmp65_ = media;
				_tmp66_ = boxes_unattended_installer_get_express_install (_tmp65_);
				_tmp67_ = _tmp66_;
				if (_tmp67_) {
					BoxesWizardWizardSummary* _tmp68_;
					const gchar* _tmp69_ = NULL;
					BoxesUnattendedInstaller* _tmp70_;
					const gchar* _tmp71_;
					const gchar* _tmp72_;
					BoxesWizardWizardSummary* _tmp73_;
					const gchar* _tmp74_ = NULL;
					BoxesUnattendedInstaller* _tmp75_;
					gchar* _tmp76_;
					gchar* _tmp77_;
					gchar* _tmp78_;
					_tmp68_ = self->priv->summary;
					_tmp69_ = _ ("Username");
					_tmp70_ = media;
					_tmp71_ = boxes_unattended_installer_get_username (_tmp70_);
					_tmp72_ = _tmp71_;
					boxes_wizard_wizard_summary_add_property (_tmp68_, _tmp69_, _tmp72_);
					_tmp73_ = self->priv->summary;
					_tmp74_ = _ ("Password");
					_tmp75_ = media;
					_tmp76_ = boxes_unattended_installer_get_hidden_password (_tmp75_);
					_tmp77_ = _tmp76_;
					_tmp78_ = _tmp77_;
					boxes_wizard_wizard_summary_add_property (_tmp73_, _tmp74_, _tmp78_);
					_g_free0 (_tmp78_);
				}
				_g_object_unref0 (media);
			}
			_tmp79_ = self->priv->summary;
			_tmp80_ = _ ("Memory");
			_tmp81_ = memory;
			boxes_wizard_wizard_summary_add_property (_tmp79_, _tmp80_, _tmp81_);
			_tmp82_ = self->priv->resources;
			_tmp83_ = osinfo_resources_get_storage (_tmp82_);
			_tmp84_ = _tmp83_;
			_tmp85_ = g_format_size_full ((guint64) _tmp84_, G_FORMAT_SIZE_IEC_UNITS);
			_g_free0 (memory);
			memory = _tmp85_;
			_tmp86_ = self->priv->summary;
			_tmp87_ = _ ("Disk");
			_tmp88_ = memory;
			_tmp89_ = g_strdup_printf ("%s maximum", _tmp88_);
			_tmp90_ = _tmp89_;
			_tmp91_ = _ (_tmp90_);
			boxes_wizard_wizard_summary_add_property (_tmp86_, _tmp87_, _tmp91_);
			_g_free0 (_tmp90_);
			_g_free0 (memory);
		}
	}
}


static void g_ptr_array_set (GPtrArray* self, guint index, gpointer data) {
	gpointer _tmp0_;
	guint _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = data;
	data = NULL;
	g_ptr_array_add (self, _tmp0_);
	_tmp1_ = index;
	g_ptr_array_remove_index_fast (self, _tmp1_);
}


static void boxes_wizard_add_step (BoxesWizard* self, GtkWidget* widget, const gchar* title, BoxesWizardPage page) {
	GtkNotebook* _tmp0_;
	GtkWidget* _tmp1_;
	BoxesApp* _tmp2_;
	BoxesSidebar* _tmp3_;
	GtkNotebook* _tmp4_;
	GtkWidget* _tmp5_ = NULL;
	GtkVBox* _tmp6_;
	GtkVBox* vbox;
	const gchar* _tmp7_;
	GtkLabel* _tmp8_;
	GtkLabel* _tmp9_;
	GtkLabel* label;
	GtkStyleContext* _tmp10_ = NULL;
	GPtrArray* _tmp11_;
	BoxesWizardPage _tmp12_;
	GtkLabel* _tmp13_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (widget != NULL);
	g_return_if_fail (title != NULL);
	_tmp0_ = self->priv->notebook;
	_tmp1_ = widget;
	gtk_notebook_append_page (_tmp0_, _tmp1_, NULL);
	_tmp2_ = self->priv->app;
	_tmp3_ = _tmp2_->sidebar;
	_tmp4_ = _tmp3_->notebook;
	_tmp5_ = gtk_notebook_get_nth_page (_tmp4_, (gint) BOXES_SIDEBAR_PAGE_WIZARD);
	_tmp6_ = _g_object_ref0 (GTK_IS_VBOX (_tmp5_) ? ((GtkVBox*) _tmp5_) : NULL);
	vbox = _tmp6_;
	_tmp7_ = title;
	_tmp8_ = (GtkLabel*) gtk_label_new (_tmp7_);
	_tmp9_ = g_object_ref_sink (_tmp8_);
	label = _tmp9_;
	gtk_widget_set_margin_left ((GtkWidget*) label, 25);
	_tmp10_ = gtk_widget_get_style_context ((GtkWidget*) label);
	gtk_style_context_add_class (_tmp10_, "boxes-step-label");
	gtk_widget_set_halign ((GtkWidget*) label, GTK_ALIGN_START);
	gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 10);
	gtk_widget_show_all ((GtkWidget*) vbox);
	_tmp11_ = self->priv->steps;
	_tmp12_ = page;
	_tmp13_ = _g_object_ref0 (label);
	g_ptr_array_set (_tmp11_, (guint) _tmp12_, _tmp13_);
	_g_object_unref0 (label);
	_g_object_unref0 (vbox);
}


static gboolean boxes_wizard_skip_page (BoxesWizard* self, BoxesWizardPage page) {
	gboolean result = FALSE;
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	gboolean backwards;
	gboolean _tmp3_ = FALSE;
	BoxesCollectionSource* _tmp4_;
	gboolean _tmp7_;
	gboolean _tmp8_ = FALSE;
	gboolean _tmp9_;
	gboolean _tmp11_;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = page;
	_tmp1_ = boxes_wizard_get_page (self);
	_tmp2_ = _tmp1_;
	backwards = _tmp0_ < _tmp2_;
	_tmp4_ = self->priv->source;
	if (_tmp4_ != NULL) {
		BoxesWizardPage _tmp5_;
		BoxesWizardPage _tmp6_;
		_tmp5_ = page;
		_tmp6_ = _tmp5_;
		_tmp3_ = (BOXES_WIZARD_PAGE_SOURCE < _tmp6_) && (_tmp6_ < BOXES_WIZARD_PAGE_REVIEW);
	} else {
		_tmp3_ = FALSE;
	}
	_tmp7_ = _tmp3_;
	if (_tmp7_) {
		result = TRUE;
		return result;
	}
	_tmp9_ = backwards;
	if (_tmp9_) {
		BoxesWizardPage _tmp10_;
		_tmp10_ = page;
		_tmp8_ = _tmp10_ == BOXES_WIZARD_PAGE_PREPARATION;
	} else {
		_tmp8_ = FALSE;
	}
	_tmp11_ = _tmp8_;
	if (_tmp11_) {
		result = TRUE;
		return result;
	}
	result = FALSE;
	return result;
}


static void __lambda54_ (BoxesWizard* self) {
	BoxesApp* _tmp0_;
	_tmp0_ = self->priv->app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp0_, BOXES_UI_STATE_COLLECTION);
}


static void ___lambda54__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda54_ (self);
}


static void __lambda55_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ - 1);
}


static void ___lambda55__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda55_ (self);
}


static void __lambda72_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ + 1);
}


static void ___lambda72__gtk_button_clicked (GtkButton* _sender, gpointer self) {
	__lambda72_ (self);
}


static void boxes_wizard_setup_ui (BoxesWizard* self) {
	GtkNotebook* _tmp0_;
	GtkNotebook* _tmp1_;
	GtkNotebook* _tmp2_;
	GtkNotebook* _tmp3_;
	GtkStyleContext* _tmp4_ = NULL;
	GtkNotebook* _tmp5_;
	GtkClutterActor* _tmp6_;
	GtkClutterActor* _tmp7_;
	GtkHBox* _tmp8_;
	GtkHBox* _tmp9_;
	GtkHBox* hbox;
	GtkHBox* _tmp10_;
	const gchar* _tmp11_ = NULL;
	GtkHBox* _tmp12_;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_;
	GtkImage* _tmp15_;
	GtkImage* _tmp16_;
	GtkLabel* _tmp17_;
	GtkLabel* _tmp18_;
	GtkLabel* label;
	GtkLabel* _tmp19_;
	GtkStyleContext* _tmp20_ = NULL;
	GtkLabel* _tmp21_;
	const gchar* _tmp22_ = NULL;
	GtkLabel* _tmp23_;
	GtkLabel* _tmp24_;
	GtkLabel* _tmp25_;
	GtkHBox* _tmp26_;
	GtkLabel* _tmp27_;
	GtkHBox* _tmp28_;
	GtkVBox* _tmp29_;
	GtkVBox* _tmp30_;
	GtkVBox* vbox;
	GtkVBox* _tmp31_;
	GtkVBox* _tmp32_;
	GtkVBox* _tmp33_;
	GtkVBox* _tmp34_;
	const gchar* _tmp35_ = NULL;
	const gchar* _tmp36_ = NULL;
	GtkLabel* _tmp37_;
	GtkLabel* _tmp38_;
	GtkLabel* _tmp39_;
	GtkStyleContext* _tmp40_ = NULL;
	GtkLabel* _tmp41_;
	GtkLabel* _tmp42_;
	GtkVBox* _tmp43_;
	GtkLabel* _tmp44_;
	GtkVBox* _tmp45_;
	BoxesWizardSource* _tmp46_;
	GtkWidget* _tmp47_;
	GtkWidget* _tmp48_;
	BoxesWizardSource* _tmp49_;
	GtkWidget* _tmp50_;
	GtkWidget* _tmp51_;
	BoxesWizardSource* _tmp52_;
	GtkWidget* _tmp53_;
	GtkWidget* _tmp54_;
	GtkVBox* _tmp55_;
	GtkVBox* _tmp56_;
	GtkVBox* _tmp57_;
	GtkVBox* _tmp58_;
	GtkVBox* _tmp59_;
	GtkVBox* _tmp60_;
	GtkVBox* _tmp61_;
	const gchar* _tmp62_ = NULL;
	const gchar* _tmp63_ = NULL;
	GtkLabel* _tmp64_;
	GtkLabel* _tmp65_;
	GtkLabel* _tmp66_;
	GtkStyleContext* _tmp67_ = NULL;
	GtkLabel* _tmp68_;
	GtkLabel* _tmp69_;
	GtkVBox* _tmp70_;
	GtkLabel* _tmp71_;
	GtkHBox* _tmp72_;
	GtkHBox* _tmp73_;
	GtkHBox* _tmp74_;
	GtkHBox* _tmp75_;
	GtkVBox* _tmp76_;
	GtkHBox* _tmp77_;
	GtkImage* _tmp78_;
	GtkImage* _tmp79_;
	GtkImage* image;
	GtkHBox* _tmp80_;
	GtkVBox* _tmp81_;
	GtkVBox* _tmp82_;
	GtkVBox* prep_vbox;
	GtkHBox* _tmp83_;
	const gchar* _tmp84_ = NULL;
	GtkLabel* _tmp85_;
	GtkLabel* _tmp86_;
	GtkLabel* _tmp87_;
	GtkStyleContext* _tmp88_ = NULL;
	GtkLabel* _tmp89_;
	GtkProgressBar* _tmp90_;
	GtkProgressBar* _tmp91_;
	GtkProgressBar* _tmp92_;
	GtkVBox* _tmp93_;
	GtkVBox* _tmp94_;
	GtkVBox* _tmp95_;
	GtkVBox* _tmp96_;
	GtkVBox* _tmp97_;
	GtkVBox* _tmp98_;
	const gchar* _tmp99_ = NULL;
	GtkVBox* _tmp100_;
	GtkVBox* _tmp101_;
	GtkVBox* _tmp102_;
	GtkVBox* _tmp103_;
	GtkVBox* _tmp104_;
	GtkVBox* _tmp105_;
	const gchar* _tmp106_ = NULL;
	const gchar* _tmp107_ = NULL;
	GtkLabel* _tmp108_;
	GtkLabel* _tmp109_;
	GtkLabel* _tmp110_;
	GtkStyleContext* _tmp111_ = NULL;
	GtkLabel* _tmp112_;
	GtkVBox* _tmp113_;
	GtkLabel* _tmp114_;
	BoxesWizardWizardSummary* _tmp115_;
	GtkVBox* _tmp116_;
	BoxesWizardWizardSummary* _tmp117_;
	GtkWidget* _tmp118_;
	GtkWidget* _tmp119_;
	GtkVBox* _tmp120_;
	BoxesApp* _tmp121_;
	BoxesTopbar* _tmp122_;
	GtkNotebook* _tmp123_;
	GtkWidget* _tmp124_ = NULL;
	GtkHBox* _tmp125_;
	GtkToolbar* _tmp126_;
	GtkToolbar* _tmp127_;
	GtkToolbar* toolbar;
	GtkStyleContext* _tmp128_ = NULL;
	GtkHBox* _tmp129_;
	const gchar* _tmp130_ = NULL;
	GtkLabel* _tmp131_;
	GtkLabel* _tmp132_;
	GtkLabel* _tmp133_;
	GtkLabel* _tmp134_;
	GtkLabel* _tmp135_;
	GtkToolItem* _tmp136_;
	GtkToolItem* _tmp137_;
	GtkToolItem* tool_item;
	GtkToolItem* _tmp138_;
	GtkToolItem* _tmp139_;
	GtkLabel* _tmp140_;
	GtkToolItem* _tmp141_;
	GtkButton* _tmp142_;
	GtkButton* _tmp143_;
	GtkButton* cancel;
	GtkToolItem* _tmp144_;
	GtkToolItem* _tmp145_;
	GtkToolItem* _tmp146_;
	GtkToolItem* _tmp147_;
	GtkButton* _tmp148_;
	GtkButton* _tmp149_;
	GtkToolItem* _tmp150_;
	GtkToolItem* _tmp151_;
	GtkToolItem* _tmp152_;
	GtkButton* _tmp153_;
	GtkToolItem* _tmp154_;
	GtkToolItem* _tmp155_;
	GtkButton* _tmp156_;
	const gchar* _tmp157_ = NULL;
	GtkButton* _tmp158_;
	GtkButton* _tmp159_;
	GtkToolItem* _tmp160_;
	GtkToolItem* _tmp161_;
	GtkToolItem* _tmp162_;
	GtkButton* _tmp163_;
	GtkToolItem* _tmp164_;
	GtkToolItem* _tmp165_;
	GtkButton* _tmp166_;
	GtkStyleContext* _tmp167_ = NULL;
	GtkButton* _tmp168_;
	GtkHBox* _tmp169_;
	GtkNotebook* _tmp170_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (GtkNotebook*) gtk_notebook_new ();
	_tmp1_ = g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->notebook);
	self->priv->notebook = _tmp1_;
	_tmp2_ = self->priv->notebook;
	gtk_notebook_set_show_tabs (_tmp2_, FALSE);
	_tmp3_ = self->priv->notebook;
	_tmp4_ = gtk_widget_get_style_context ((GtkWidget*) _tmp3_);
	gtk_style_context_add_class (_tmp4_, "boxes-bg");
	_tmp5_ = self->priv->notebook;
	_tmp6_ = (GtkClutterActor*) gtk_clutter_actor_new_with_contents ((GtkWidget*) _tmp5_);
	_tmp7_ = g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->priv->gtk_actor);
	self->priv->gtk_actor = _tmp7_;
	_tmp8_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	_tmp9_ = g_object_ref_sink (_tmp8_);
	hbox = _tmp9_;
	_tmp10_ = hbox;
	_tmp11_ = _ ("Introduction");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp10_, _tmp11_, BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp12_ = hbox;
	_tmp13_ = boxes_get_pixmap ("boxes-create.png");
	_tmp14_ = _tmp13_;
	_tmp15_ = (GtkImage*) gtk_image_new_from_file (_tmp14_);
	_tmp16_ = g_object_ref_sink (_tmp15_);
	gtk_container_add ((GtkContainer*) _tmp12_, (GtkWidget*) _tmp16_);
	_g_object_unref0 (_tmp16_);
	_g_free0 (_tmp14_);
	_tmp17_ = (GtkLabel*) gtk_label_new (NULL);
	_tmp18_ = g_object_ref_sink (_tmp17_);
	label = _tmp18_;
	_tmp19_ = label;
	_tmp20_ = gtk_widget_get_style_context ((GtkWidget*) _tmp19_);
	gtk_style_context_add_class (_tmp20_, "boxes-wizard-label");
	_tmp21_ = label;
	_tmp22_ = _ ("Creating a Box will allow you to use another operating system directly" \
" from your existing login.\n" \
"\n" \
"You may connect to an existing machine <b><i>over the network</i></b> " \
"or create a <b><i>virtual machine</i></b> that runs locally on your ow" \
"n.");
	gtk_label_set_markup (_tmp21_, _tmp22_);
	_tmp23_ = label;
	gtk_label_set_use_markup (_tmp23_, TRUE);
	_tmp24_ = label;
	g_object_set (_tmp24_, "wrap", TRUE, NULL);
	_tmp25_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp25_, GTK_ALIGN_START);
	_tmp26_ = hbox;
	_tmp27_ = label;
	gtk_container_add ((GtkContainer*) _tmp26_, (GtkWidget*) _tmp27_);
	_tmp28_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp28_);
	_tmp29_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp30_ = g_object_ref_sink (_tmp29_);
	vbox = _tmp30_;
	_tmp31_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp31_, GTK_ALIGN_CENTER);
	_tmp32_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp32_, GTK_ALIGN_CENTER);
	_tmp33_ = vbox;
	g_object_set ((GtkWidget*) _tmp33_, "margin", 15, NULL);
	_tmp34_ = vbox;
	_tmp35_ = _ ("Source Selection");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp34_, _tmp35_, BOXES_WIZARD_PAGE_SOURCE);
	_tmp36_ = _ ("Insert operating system installation media or select a source below");
	_tmp37_ = (GtkLabel*) gtk_label_new (_tmp36_);
	_tmp38_ = g_object_ref_sink (_tmp37_);
	_g_object_unref0 (label);
	label = _tmp38_;
	_tmp39_ = label;
	_tmp40_ = gtk_widget_get_style_context ((GtkWidget*) _tmp39_);
	gtk_style_context_add_class (_tmp40_, "boxes-wizard-label");
	_tmp41_ = label;
	g_object_set (_tmp41_, "wrap", TRUE, NULL);
	_tmp42_ = label;
	g_object_set ((GtkMisc*) _tmp42_, "xalign", 0.0f, NULL);
	_tmp43_ = vbox;
	_tmp44_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp43_, (GtkWidget*) _tmp44_, FALSE, FALSE, (guint) 0);
	_tmp45_ = vbox;
	_tmp46_ = self->priv->wizard_source;
	_tmp47_ = boxes_wizard_source_get_widget (_tmp46_);
	_tmp48_ = _tmp47_;
	gtk_box_pack_start ((GtkBox*) _tmp45_, _tmp48_, FALSE, FALSE, (guint) 0);
	_tmp49_ = self->priv->wizard_source;
	_tmp50_ = boxes_wizard_source_get_widget (_tmp49_);
	_tmp51_ = _tmp50_;
	gtk_widget_set_hexpand (_tmp51_, TRUE);
	_tmp52_ = self->priv->wizard_source;
	_tmp53_ = boxes_wizard_source_get_widget (_tmp52_);
	_tmp54_ = _tmp53_;
	gtk_widget_set_halign (_tmp54_, GTK_ALIGN_CENTER);
	_tmp55_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp55_);
	_tmp56_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp57_ = g_object_ref_sink (_tmp56_);
	_g_object_unref0 (vbox);
	vbox = _tmp57_;
	_tmp58_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp58_, GTK_ALIGN_CENTER);
	_tmp59_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp59_, GTK_ALIGN_CENTER);
	_tmp60_ = vbox;
	g_object_set ((GtkWidget*) _tmp60_, "margin", 15, NULL);
	_tmp61_ = vbox;
	_tmp62_ = _ ("Preparation");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp61_, _tmp62_, BOXES_WIZARD_PAGE_PREPARATION);
	_tmp63_ = _ ("Preparing to create new box");
	_tmp64_ = (GtkLabel*) gtk_label_new (_tmp63_);
	_tmp65_ = g_object_ref_sink (_tmp64_);
	_g_object_unref0 (label);
	label = _tmp65_;
	_tmp66_ = label;
	_tmp67_ = gtk_widget_get_style_context ((GtkWidget*) _tmp66_);
	gtk_style_context_add_class (_tmp67_, "boxes-wizard-label");
	_tmp68_ = label;
	g_object_set (_tmp68_, "wrap", TRUE, NULL);
	_tmp69_ = label;
	g_object_set ((GtkMisc*) _tmp69_, "xalign", 0.0f, NULL);
	_tmp70_ = vbox;
	_tmp71_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp70_, (GtkWidget*) _tmp71_, FALSE, FALSE, (guint) 0);
	_tmp72_ = (GtkHBox*) gtk_hbox_new (FALSE, 10);
	_tmp73_ = g_object_ref_sink (_tmp72_);
	_g_object_unref0 (hbox);
	hbox = _tmp73_;
	_tmp74_ = hbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp74_, GTK_ALIGN_CENTER);
	_tmp75_ = hbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp75_, GTK_ALIGN_CENTER);
	_tmp76_ = vbox;
	_tmp77_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp76_, (GtkWidget*) _tmp77_, TRUE, TRUE, (guint) 0);
	_tmp78_ = (GtkImage*) gtk_image_new_from_icon_name ("media-optical", 0);
	_tmp79_ = g_object_ref_sink (_tmp78_);
	image = _tmp79_;
	gtk_image_set_pixel_size (image, 128);
	_tmp80_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp80_, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
	_tmp81_ = (GtkVBox*) gtk_vbox_new (TRUE, 10);
	_tmp82_ = g_object_ref_sink (_tmp81_);
	prep_vbox = _tmp82_;
	gtk_widget_set_valign ((GtkWidget*) prep_vbox, GTK_ALIGN_CENTER);
	_tmp83_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp83_, (GtkWidget*) prep_vbox, TRUE, TRUE, (guint) 0);
	_tmp84_ = _ ("Analyzing installer media.");
	_tmp85_ = (GtkLabel*) gtk_label_new (_tmp84_);
	_tmp86_ = g_object_ref_sink (_tmp85_);
	_g_object_unref0 (label);
	label = _tmp86_;
	_tmp87_ = label;
	_tmp88_ = gtk_widget_get_style_context ((GtkWidget*) _tmp87_);
	gtk_style_context_add_class (_tmp88_, "boxes-wizard-label");
	_tmp89_ = label;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp89_, FALSE, FALSE, (guint) 0);
	_tmp90_ = (GtkProgressBar*) gtk_progress_bar_new ();
	_tmp91_ = g_object_ref_sink (_tmp90_);
	_g_object_unref0 (self->priv->prep_progress);
	self->priv->prep_progress = _tmp91_;
	_tmp92_ = self->priv->prep_progress;
	gtk_box_pack_start ((GtkBox*) prep_vbox, (GtkWidget*) _tmp92_, FALSE, FALSE, (guint) 0);
	_tmp93_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp93_);
	_tmp94_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp95_ = g_object_ref_sink (_tmp94_);
	_g_object_unref0 (self->priv->setup_vbox);
	self->priv->setup_vbox = _tmp95_;
	_tmp96_ = self->priv->setup_vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp96_, GTK_ALIGN_CENTER);
	_tmp97_ = self->priv->setup_vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp97_, GTK_ALIGN_CENTER);
	_tmp98_ = self->priv->setup_vbox;
	_tmp99_ = _ ("Setup");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp98_, _tmp99_, BOXES_WIZARD_PAGE_SETUP);
	_tmp100_ = self->priv->setup_vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp100_);
	_tmp101_ = (GtkVBox*) gtk_vbox_new (FALSE, 30);
	_tmp102_ = g_object_ref_sink (_tmp101_);
	_g_object_unref0 (vbox);
	vbox = _tmp102_;
	_tmp103_ = vbox;
	gtk_widget_set_valign ((GtkWidget*) _tmp103_, GTK_ALIGN_CENTER);
	_tmp104_ = vbox;
	gtk_widget_set_halign ((GtkWidget*) _tmp104_, GTK_ALIGN_CENTER);
	_tmp105_ = vbox;
	_tmp106_ = _ ("Review");
	boxes_wizard_add_step (self, (GtkWidget*) _tmp105_, _tmp106_, BOXES_WIZARD_PAGE_REVIEW);
	_tmp107_ = _ ("Will create a new box with the following properties:");
	_tmp108_ = (GtkLabel*) gtk_label_new (_tmp107_);
	_tmp109_ = g_object_ref_sink (_tmp108_);
	_g_object_unref0 (label);
	label = _tmp109_;
	_tmp110_ = label;
	_tmp111_ = gtk_widget_get_style_context ((GtkWidget*) _tmp110_);
	gtk_style_context_add_class (_tmp111_, "boxes-wizard-label");
	_tmp112_ = label;
	g_object_set ((GtkMisc*) _tmp112_, "xalign", 0.0f, NULL);
	_tmp113_ = vbox;
	_tmp114_ = label;
	gtk_box_pack_start ((GtkBox*) _tmp113_, (GtkWidget*) _tmp114_, FALSE, FALSE, (guint) 0);
	_tmp115_ = boxes_wizard_wizard_summary_new ();
	_g_object_unref0 (self->priv->summary);
	self->priv->summary = _tmp115_;
	_tmp116_ = vbox;
	_tmp117_ = self->priv->summary;
	_tmp118_ = boxes_wizard_wizard_summary_get_widget (_tmp117_);
	_tmp119_ = _tmp118_;
	gtk_box_pack_start ((GtkBox*) _tmp116_, _tmp119_, TRUE, TRUE, (guint) 0);
	_tmp120_ = vbox;
	gtk_widget_show_all ((GtkWidget*) _tmp120_);
	_tmp121_ = self->priv->app;
	_tmp122_ = _tmp121_->topbar;
	_tmp123_ = _tmp122_->notebook;
	_tmp124_ = gtk_notebook_get_nth_page (_tmp123_, (gint) BOXES_TOPBAR_PAGE_WIZARD);
	_tmp125_ = _g_object_ref0 (GTK_IS_HBOX (_tmp124_) ? ((GtkHBox*) _tmp124_) : NULL);
	_g_object_unref0 (hbox);
	hbox = _tmp125_;
	_tmp126_ = (GtkToolbar*) gtk_toolbar_new ();
	_tmp127_ = g_object_ref_sink (_tmp126_);
	toolbar = _tmp127_;
	gtk_toolbar_set_icon_size (toolbar, (gint) GTK_ICON_SIZE_MENU);
	_tmp128_ = gtk_widget_get_style_context ((GtkWidget*) toolbar);
	gtk_style_context_add_class (_tmp128_, GTK_STYLE_CLASS_MENUBAR);
	gtk_toolbar_set_show_arrow (toolbar, FALSE);
	_tmp129_ = hbox;
	gtk_box_pack_start ((GtkBox*) _tmp129_, (GtkWidget*) toolbar, TRUE, TRUE, (guint) 0);
	_tmp130_ = _ ("Create a Box");
	_tmp131_ = (GtkLabel*) gtk_label_new (_tmp130_);
	_tmp132_ = g_object_ref_sink (_tmp131_);
	_g_object_unref0 (label);
	label = _tmp132_;
	_tmp133_ = label;
	gtk_widget_set_name ((GtkWidget*) _tmp133_, "TopbarLabel");
	_tmp134_ = label;
	gtk_widget_set_halign ((GtkWidget*) _tmp134_, GTK_ALIGN_START);
	_tmp135_ = label;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp135_, 15);
	_tmp136_ = gtk_tool_item_new ();
	_tmp137_ = g_object_ref_sink (_tmp136_);
	tool_item = _tmp137_;
	_tmp138_ = tool_item;
	gtk_tool_item_set_expand (_tmp138_, TRUE);
	_tmp139_ = tool_item;
	_tmp140_ = label;
	g_object_set ((GtkContainer*) _tmp139_, "child", (GtkWidget*) _tmp140_, NULL);
	_tmp141_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp141_, 0);
	_tmp142_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CANCEL);
	_tmp143_ = g_object_ref_sink (_tmp142_);
	cancel = _tmp143_;
	_tmp144_ = gtk_tool_item_new ();
	_tmp145_ = g_object_ref_sink (_tmp144_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp145_;
	_tmp146_ = tool_item;
	g_object_set ((GtkContainer*) _tmp146_, "child", (GtkWidget*) cancel, NULL);
	_tmp147_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp147_, 1);
	g_signal_connect_object (cancel, "clicked", (GCallback) ___lambda54__gtk_button_clicked, self, 0);
	_tmp148_ = (GtkButton*) gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
	_tmp149_ = g_object_ref_sink (_tmp148_);
	_g_object_unref0 (self->priv->back_button);
	self->priv->back_button = _tmp149_;
	_tmp150_ = gtk_tool_item_new ();
	_tmp151_ = g_object_ref_sink (_tmp150_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp151_;
	_tmp152_ = tool_item;
	_tmp153_ = self->priv->back_button;
	g_object_set ((GtkContainer*) _tmp152_, "child", (GtkWidget*) _tmp153_, NULL);
	_tmp154_ = tool_item;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp154_, 20);
	_tmp155_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp155_, 2);
	_tmp156_ = self->priv->back_button;
	g_signal_connect_object (_tmp156_, "clicked", (GCallback) ___lambda55__gtk_button_clicked, self, 0);
	_tmp157_ = _ ("Continue");
	_tmp158_ = (GtkButton*) gtk_button_new_with_label (_tmp157_);
	_tmp159_ = g_object_ref_sink (_tmp158_);
	_g_object_unref0 (self->priv->next_button);
	self->priv->next_button = _tmp159_;
	_tmp160_ = gtk_tool_item_new ();
	_tmp161_ = g_object_ref_sink (_tmp160_);
	_g_object_unref0 (tool_item);
	tool_item = _tmp161_;
	_tmp162_ = tool_item;
	_tmp163_ = self->priv->next_button;
	g_object_set ((GtkContainer*) _tmp162_, "child", (GtkWidget*) _tmp163_, NULL);
	_tmp164_ = tool_item;
	gtk_widget_set_margin_left ((GtkWidget*) _tmp164_, 5);
	_tmp165_ = tool_item;
	gtk_toolbar_insert (toolbar, _tmp165_, 3);
	_tmp166_ = self->priv->next_button;
	_tmp167_ = gtk_widget_get_style_context ((GtkWidget*) _tmp166_);
	gtk_style_context_add_class (_tmp167_, "boxes-continue");
	_tmp168_ = self->priv->next_button;
	g_signal_connect_object (_tmp168_, "clicked", (GCallback) ___lambda72__gtk_button_clicked, self, 0);
	_tmp169_ = hbox;
	gtk_widget_show_all ((GtkWidget*) _tmp169_);
	_tmp170_ = self->priv->notebook;
	gtk_widget_show_all ((GtkWidget*) _tmp170_);
	_g_object_unref0 (cancel);
	_g_object_unref0 (tool_item);
	_g_object_unref0 (toolbar);
	_g_object_unref0 (prep_vbox);
	_g_object_unref0 (image);
	_g_object_unref0 (vbox);
	_g_object_unref0 (label);
	_g_object_unref0 (hbox);
}


void boxes_wizard_open_with_uri (BoxesWizard* self, const gchar* uri) {
	BoxesApp* _tmp0_;
	BoxesWizardSource* _tmp1_;
	BoxesWizardSource* _tmp2_;
	const gchar* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri != NULL);
	_tmp0_ = self->priv->app;
	boxes_ui_set_ui_state ((BoxesUI*) _tmp0_, BOXES_UI_STATE_WIZARD);
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_SOURCE);
	_tmp1_ = self->priv->wizard_source;
	boxes_wizard_source_set_page (_tmp1_, BOXES_SOURCE_PAGE_URL);
	_tmp2_ = self->priv->wizard_source;
	_tmp3_ = uri;
	boxes_wizard_source_set_uri (_tmp2_, _tmp3_);
	boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_PREPARATION);
}


static void boxes_wizard_real_ui_state_changed (BoxesUI* base) {
	BoxesWizard * self;
	BoxesUIState _tmp0_;
	BoxesUIState _tmp1_;
	self = (BoxesWizard*) base;
	_tmp0_ = boxes_ui_get_ui_state ((BoxesUI*) self);
	_tmp1_ = _tmp0_;
	switch (_tmp1_) {
		case BOXES_UI_STATE_WIZARD:
		{
			boxes_wizard_set_page (self, BOXES_WIZARD_PAGE_INTRODUCTION);
			break;
		}
		default:
		break;
	}
}


static ClutterActor* boxes_wizard_real_get_actor (BoxesUI* base) {
	ClutterActor* result;
	BoxesWizard* self;
	GtkClutterActor* _tmp0_;
	self = (BoxesWizard*) base;
	_tmp0_ = self->priv->gtk_actor;
	result = (ClutterActor*) _tmp0_;
	return result;
}


static BoxesWizardPage boxes_wizard_get_page (BoxesWizard* self) {
	BoxesWizardPage result;
	BoxesWizardPage _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->priv->_page;
	result = _tmp0_;
	return result;
}


static void _boxes_wizard_page_____lambda71_ (BoxesWizard* self, GObject* source, GAsyncResult* _result_) {
	GAsyncResult* _tmp0_;
	gboolean _tmp1_ = FALSE;
	g_return_if_fail (_result_ != NULL);
	_tmp0_ = _result_;
	_tmp1_ = boxes_wizard_create_finish (self, _tmp0_);
	if (_tmp1_) {
		BoxesApp* _tmp2_;
		_tmp2_ = self->priv->app;
		boxes_ui_set_ui_state ((BoxesUI*) _tmp2_, BOXES_UI_STATE_COLLECTION);
	}
}


static void __boxes_wizard_page_____lambda71__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	_boxes_wizard_page_____lambda71_ (self, source_object, res);
	g_object_unref (self);
}


static gint g_ptr_array_get_length (GPtrArray* self) {
	gint result;
	guint _tmp0_;
	g_return_val_if_fail (self != NULL, 0);
	_tmp0_ = self->len;
	result = (gint) _tmp0_;
	return result;
}


static void g_ptr_array_set_length (GPtrArray* self, gint value) {
	gint _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	g_ptr_array_set_size (self, _tmp0_);
}


static void boxes_wizard_set_page (BoxesWizard* self, BoxesWizardPage value) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	BoxesWizardPage _tmp2_;
	gboolean forwards;
	BoxesWizardPage _tmp3_;
	gboolean _tmp10_;
	BoxesWizardPage _tmp17_;
	gboolean _tmp18_ = FALSE;
	BoxesWizardPage _tmp24_;
	GtkNotebook* _tmp25_;
	BoxesWizardPage _tmp26_;
	GPtrArray* _tmp39_;
	BoxesWizardPage _tmp40_;
	BoxesWizardPage _tmp41_;
	gconstpointer _tmp42_ = NULL;
	GdkColor _tmp43_ = {0};
	GtkButton* _tmp44_;
	BoxesWizardPage _tmp45_;
	BoxesWizardPage _tmp46_;
	const gchar* _tmp47_ = NULL;
	BoxesWizardPage _tmp48_;
	BoxesWizardPage _tmp49_;
	GtkButton* _tmp52_;
	const gchar* _tmp53_;
	GError * _inner_error_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = value;
	_tmp1_ = boxes_wizard_get_page (self);
	_tmp2_ = _tmp1_;
	forwards = _tmp0_ > _tmp2_;
	_tmp3_ = value;
	switch (_tmp3_) {
		case BOXES_WIZARD_PAGE_INTRODUCTION:
		{
			GtkButton* _tmp4_;
			GtkButton* _tmp5_;
			_tmp4_ = self->priv->next_button;
			gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, TRUE);
			_tmp5_ = self->priv->next_button;
			gtk_widget_grab_focus ((GtkWidget*) _tmp5_);
			break;
		}
		case BOXES_WIZARD_PAGE_SOURCE:
		{
			BoxesWizardSource* _tmp6_;
			BoxesWizardSource* _tmp7_;
			BoxesSourcePage _tmp8_;
			BoxesSourcePage _tmp9_;
			_tmp6_ = self->priv->wizard_source;
			_tmp7_ = self->priv->wizard_source;
			_tmp8_ = boxes_wizard_source_get_page (_tmp7_);
			_tmp9_ = _tmp8_;
			boxes_wizard_source_set_page (_tmp6_, _tmp9_);
			break;
		}
		default:
		break;
	}
	_tmp10_ = forwards;
	if (_tmp10_) {
		BoxesWizardPage _tmp11_;
		_tmp11_ = value;
		switch (_tmp11_) {
			case BOXES_WIZARD_PAGE_PREPARATION:
			{
				{
					boxes_wizard_prepare (self, &_inner_error_);
					if (_inner_error_ != NULL) {
						goto __catch48_g_error;
					}
				}
				goto __finally48;
				__catch48_g_error:
				{
					GError* _error_ = NULL;
					GError* _tmp12_;
					const gchar* _tmp13_;
					gchar* _tmp14_ = NULL;
					gchar* _tmp15_;
					_error_ = _inner_error_;
					_inner_error_ = NULL;
					_tmp12_ = _error_;
					_tmp13_ = _tmp12_->message;
					_tmp14_ = g_strdup_printf ("Fixme: %s", _tmp13_);
					_tmp15_ = _tmp14_;
					g_warning ("wizard.vala:59: %s", _tmp15_);
					_g_free0 (_tmp15_);
					_g_error_free0 (_error_);
					return;
				}
				__finally48:
				if (_inner_error_ != NULL) {
					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;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_SETUP:
			{
				gboolean _tmp16_ = FALSE;
				_tmp16_ = boxes_wizard_setup (self);
				if (!_tmp16_) {
					return;
				}
				break;
			}
			case BOXES_WIZARD_PAGE_REVIEW:
			{
				boxes_wizard_review (self);
				break;
			}
			case BOXES_WIZARD_PAGE_LAST:
			{
				boxes_wizard_create (self, __boxes_wizard_page_____lambda71__gasync_ready_callback, g_object_ref (self));
				return;
			}
			default:
			break;
		}
	}
	_tmp17_ = value;
	_tmp18_ = boxes_wizard_skip_page (self, _tmp17_);
	if (_tmp18_) {
		BoxesWizardPage _tmp19_ = 0;
		gboolean _tmp20_;
		BoxesWizardPage _tmp23_;
		_tmp20_ = forwards;
		if (_tmp20_) {
			BoxesWizardPage _tmp21_;
			_tmp21_ = value;
			_tmp19_ = _tmp21_ + 1;
		} else {
			BoxesWizardPage _tmp22_;
			_tmp22_ = value;
			_tmp19_ = _tmp22_ - 1;
		}
		_tmp23_ = _tmp19_;
		boxes_wizard_set_page (self, _tmp23_);
		return;
	}
	_tmp24_ = value;
	self->priv->_page = _tmp24_;
	_tmp25_ = self->priv->notebook;
	_tmp26_ = value;
	gtk_notebook_set_current_page (_tmp25_, (gint) _tmp26_);
	{
		gint i;
		i = 0;
		{
			gboolean _tmp27_;
			_tmp27_ = TRUE;
			while (TRUE) {
				gboolean _tmp28_;
				gint _tmp30_;
				GPtrArray* _tmp31_;
				gint _tmp32_;
				gint _tmp33_;
				GPtrArray* _tmp34_;
				gint _tmp35_;
				gconstpointer _tmp36_ = NULL;
				GtkLabel* _tmp37_;
				GtkLabel* label;
				GtkLabel* _tmp38_;
				_tmp28_ = _tmp27_;
				if (!_tmp28_) {
					gint _tmp29_;
					_tmp29_ = i;
					i = _tmp29_ + 1;
				}
				_tmp27_ = FALSE;
				_tmp30_ = i;
				_tmp31_ = self->priv->steps;
				_tmp32_ = g_ptr_array_get_length (_tmp31_);
				_tmp33_ = _tmp32_;
				if (!(_tmp30_ < _tmp33_)) {
					break;
				}
				_tmp34_ = self->priv->steps;
				_tmp35_ = i;
				_tmp36_ = g_ptr_array_index (_tmp34_, (guint) _tmp35_);
				_tmp37_ = _g_object_ref0 ((GtkLabel*) _tmp36_);
				label = _tmp37_;
				_tmp38_ = label;
				gtk_widget_modify_fg ((GtkWidget*) _tmp38_, GTK_STATE_NORMAL, NULL);
				_g_object_unref0 (label);
			}
		}
	}
	_tmp39_ = self->priv->steps;
	_tmp40_ = boxes_wizard_get_page (self);
	_tmp41_ = _tmp40_;
	_tmp42_ = g_ptr_array_index (_tmp39_, (guint) _tmp41_);
	boxes_get_color ("white", &_tmp43_);
	gtk_widget_modify_fg ((GtkWidget*) ((GtkLabel*) _tmp42_), GTK_STATE_NORMAL, &_tmp43_);
	_tmp44_ = self->priv->back_button;
	_tmp45_ = boxes_wizard_get_page (self);
	_tmp46_ = _tmp45_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp44_, _tmp46_ != BOXES_WIZARD_PAGE_INTRODUCTION);
	_tmp48_ = boxes_wizard_get_page (self);
	_tmp49_ = _tmp48_;
	if (_tmp49_ != BOXES_WIZARD_PAGE_REVIEW) {
		const gchar* _tmp50_ = NULL;
		_tmp50_ = _ ("Continue");
		_tmp47_ = _tmp50_;
	} else {
		const gchar* _tmp51_ = NULL;
		_tmp51_ = _ ("Create");
		_tmp47_ = _tmp51_;
	}
	_tmp52_ = self->priv->next_button;
	_tmp53_ = _tmp47_;
	gtk_button_set_label (_tmp52_, _tmp53_);
}


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


static void _boxes_wizard___lambda73_ (BoxesWizard* self) {
	BoxesWizardSource* _tmp0_;
	BoxesSourcePage _tmp1_;
	BoxesSourcePage _tmp2_;
	_tmp0_ = self->priv->wizard_source;
	_tmp1_ = boxes_wizard_source_get_page (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_ == BOXES_SOURCE_PAGE_MAIN) {
		GtkButton* _tmp3_;
		_tmp3_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, FALSE);
	}
}


static void __boxes_wizard___lambda73__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
	_boxes_wizard___lambda73_ (self);
}


static void _boxes_wizard___lambda74_ (BoxesWizard* self) {
	GtkButton* _tmp0_;
	BoxesWizardSource* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	const gchar* _tmp6_ = NULL;
	gchar* _tmp7_;
	gchar* text;
	gchar* _tmp8_;
	gchar* icon;
	BoxesWizardSource* _tmp24_;
	const gchar* _tmp25_ = NULL;
	const gchar* _tmp26_;
	const gchar* _tmp27_;
	GError * _inner_error_ = NULL;
	_tmp0_ = self->priv->next_button;
	_tmp1_ = self->priv->wizard_source;
	_tmp2_ = boxes_wizard_source_get_uri (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = strlen (_tmp3_);
	_tmp5_ = _tmp4_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, _tmp5_ != 0);
	_tmp6_ = _ ("Please enter desktop or collection URI");
	_tmp7_ = g_strdup (_tmp6_);
	text = _tmp7_;
	_tmp8_ = g_strdup ("preferences-desktop-remote-desktop");
	icon = _tmp8_;
	{
		BoxesWizardSource* _tmp9_;
		const gchar* _tmp10_;
		const gchar* _tmp11_;
		gboolean _tmp12_ = FALSE;
		BoxesCollectionSource* _tmp13_;
		gboolean _tmp18_;
		_tmp9_ = self->priv->wizard_source;
		_tmp10_ = boxes_wizard_source_get_uri (_tmp9_);
		_tmp11_ = _tmp10_;
		boxes_wizard_prepare_for_location (self, _tmp11_, TRUE, &_inner_error_);
		if (_inner_error_ != NULL) {
			goto __catch49_g_error;
		}
		_tmp13_ = self->priv->source;
		if (_tmp13_ != NULL) {
			BoxesCollectionSource* _tmp14_;
			gchar* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			_tmp14_ = self->priv->source;
			_tmp15_ = boxes_collection_source_get_source_type (_tmp14_);
			_tmp16_ = _tmp15_;
			_tmp17_ = _tmp16_;
			_tmp12_ = g_strcmp0 (_tmp17_, "libvirt") == 0;
			_g_free0 (_tmp17_);
		} else {
			_tmp12_ = FALSE;
		}
		_tmp18_ = _tmp12_;
		if (_tmp18_) {
			const gchar* _tmp19_ = NULL;
			gchar* _tmp20_;
			gchar* _tmp21_;
			_tmp19_ = _ ("Will add boxes for all systems available from this account.");
			_tmp20_ = g_strdup (_tmp19_);
			_g_free0 (text);
			text = _tmp20_;
			_tmp21_ = g_strdup ("network-workgroup");
			_g_free0 (icon);
			icon = _tmp21_;
		} else {
			const gchar* _tmp22_ = NULL;
			gchar* _tmp23_;
			_tmp22_ = _ ("Will add a single box.");
			_tmp23_ = g_strdup (_tmp22_);
			_g_free0 (text);
			text = _tmp23_;
		}
	}
	goto __finally49;
	__catch49_g_error:
	{
		GError* _error_ = NULL;
		_error_ = _inner_error_;
		_inner_error_ = NULL;
		_g_error_free0 (_error_);
	}
	__finally49:
	if (_inner_error_ != NULL) {
		_g_free0 (icon);
		_g_free0 (text);
		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;
	}
	_tmp24_ = self->priv->wizard_source;
	_tmp25_ = _ ("Desktop Access");
	_tmp26_ = text;
	_tmp27_ = icon;
	boxes_wizard_source_update_url_page (_tmp24_, _tmp25_, _tmp26_, _tmp27_);
	_g_free0 (icon);
	_g_free0 (text);
}


static void __boxes_wizard___lambda74__gtk_editable_changed (GtkEditable* _sender, gpointer self) {
	_boxes_wizard___lambda74_ (self);
}


static void _boxes_wizard___lambda75_ (BoxesWizard* self) {
	BoxesWizardPage _tmp0_;
	BoxesWizardPage _tmp1_;
	_tmp0_ = boxes_wizard_get_page (self);
	_tmp1_ = _tmp0_;
	boxes_wizard_set_page (self, _tmp1_ + 1);
}


static void __boxes_wizard___lambda75__gtk_entry_activate (GtkEntry* _sender, gpointer self) {
	_boxes_wizard___lambda75_ (self);
}


static GObject * boxes_wizard_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	BoxesWizard * self;
	GPtrArray* _tmp0_;
	GPtrArray* _tmp1_;
	BoxesWizardSource* _tmp2_;
	BoxesWizardSource* _tmp3_;
	BoxesWizardSource* _tmp4_;
	GtkEntry* _tmp5_;
	BoxesWizardSource* _tmp6_;
	GtkEntry* _tmp7_;
	parent_class = G_OBJECT_CLASS (boxes_wizard_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = BOXES_WIZARD (obj);
	_tmp0_ = g_ptr_array_new_with_free_func (_g_object_unref0_);
	_g_ptr_array_unref0 (self->priv->steps);
	self->priv->steps = _tmp0_;
	_tmp1_ = self->priv->steps;
	g_ptr_array_set_length (_tmp1_, (gint) BOXES_WIZARD_PAGE_LAST);
	_tmp2_ = boxes_wizard_source_new ();
	_g_object_unref0 (self->priv->wizard_source);
	self->priv->wizard_source = _tmp2_;
	_tmp3_ = self->priv->wizard_source;
	g_signal_connect_object ((GObject*) _tmp3_, "notify::page", (GCallback) __boxes_wizard___lambda73__g_object_notify, self, 0);
	_tmp4_ = self->priv->wizard_source;
	_tmp5_ = _tmp4_->url_entry;
	g_signal_connect_object ((GtkEditable*) _tmp5_, "changed", (GCallback) __boxes_wizard___lambda74__gtk_editable_changed, self, 0);
	_tmp6_ = self->priv->wizard_source;
	_tmp7_ = _tmp6_->url_entry;
	g_signal_connect_object (_tmp7_, "activate", (GCallback) __boxes_wizard___lambda75__gtk_entry_activate, self, 0);
	return obj;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_construct (GType object_type) {
	BoxesWizardWizardSummary * self = NULL;
	GtkTable* _tmp0_;
	GtkTable* _tmp1_;
	GtkTable* _tmp2_;
	GtkTable* _tmp3_;
	self = (BoxesWizardWizardSummary*) g_object_new (object_type, NULL);
	_tmp0_ = (GtkTable*) gtk_table_new ((guint) 1, (guint) 2, FALSE);
	_tmp1_ = g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->table);
	self->priv->table = _tmp1_;
	_tmp2_ = self->priv->table;
	g_object_set (_tmp2_, "row-spacing", (guint) 10, NULL);
	_tmp3_ = self->priv->table;
	g_object_set (_tmp3_, "column-spacing", (guint) 20, NULL);
	boxes_wizard_wizard_summary_clear (self);
	return self;
}


static BoxesWizardWizardSummary* boxes_wizard_wizard_summary_new (void) {
	return boxes_wizard_wizard_summary_construct (BOXES_WIZARD_TYPE_WIZARD_SUMMARY);
}


static void boxes_wizard_wizard_summary_add_property (BoxesWizardWizardSummary* self, const gchar* name, const gchar* value) {
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	GtkLabel* _tmp2_;
	GtkLabel* _tmp3_;
	GtkLabel* label_name;
	GtkLabel* _tmp4_;
	GdkColor _tmp5_ = {0};
	GtkLabel* _tmp6_;
	GtkTable* _tmp7_;
	GtkLabel* _tmp8_;
	guint _tmp9_;
	guint _tmp10_;
	const gchar* _tmp11_;
	GtkLabel* _tmp12_;
	GtkLabel* _tmp13_;
	GtkLabel* label_value;
	GtkLabel* _tmp14_;
	GdkColor _tmp15_ = {0};
	GtkLabel* _tmp16_;
	GtkTable* _tmp17_;
	GtkLabel* _tmp18_;
	guint _tmp19_;
	guint _tmp20_;
	guint _tmp21_;
	GtkTable* _tmp22_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (name != NULL);
	_tmp0_ = value;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = name;
	_tmp2_ = (GtkLabel*) gtk_label_new (_tmp1_);
	_tmp3_ = g_object_ref_sink (_tmp2_);
	label_name = _tmp3_;
	_tmp4_ = label_name;
	boxes_get_color ("grey", &_tmp5_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp4_, GTK_STATE_NORMAL, &_tmp5_);
	_tmp6_ = label_name;
	g_object_set ((GtkMisc*) _tmp6_, "xalign", 1.0f, NULL);
	_tmp7_ = self->priv->table;
	_tmp8_ = label_name;
	_tmp9_ = self->priv->current_row;
	_tmp10_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp7_, (GtkWidget*) _tmp8_, (guint) 0, (guint) 1, _tmp9_, _tmp10_ + 1);
	_tmp11_ = value;
	_tmp12_ = (GtkLabel*) gtk_label_new (_tmp11_);
	_tmp13_ = g_object_ref_sink (_tmp12_);
	label_value = _tmp13_;
	_tmp14_ = label_value;
	boxes_get_color ("white", &_tmp15_);
	gtk_widget_modify_fg ((GtkWidget*) _tmp14_, GTK_STATE_NORMAL, &_tmp15_);
	_tmp16_ = label_value;
	g_object_set ((GtkMisc*) _tmp16_, "xalign", 0.0f, NULL);
	_tmp17_ = self->priv->table;
	_tmp18_ = label_value;
	_tmp19_ = self->priv->current_row;
	_tmp20_ = self->priv->current_row;
	gtk_table_attach_defaults (_tmp17_, (GtkWidget*) _tmp18_, (guint) 1, (guint) 2, _tmp19_, _tmp20_ + 1);
	_tmp21_ = self->priv->current_row;
	self->priv->current_row = _tmp21_ + 1;
	_tmp22_ = self->priv->table;
	gtk_widget_show_all ((GtkWidget*) _tmp22_);
	_g_object_unref0 (label_value);
	_g_object_unref0 (label_name);
}


static void boxes_wizard_wizard_summary_clear (BoxesWizardWizardSummary* self) {
	GtkTable* _tmp0_;
	GList* _tmp1_ = NULL;
	GtkTable* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->table;
	_tmp1_ = gtk_container_get_children ((GtkContainer*) _tmp0_);
	{
		GList* child_collection = NULL;
		GList* child_it = NULL;
		child_collection = _tmp1_;
		for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
			GtkWidget* child = NULL;
			child = (GtkWidget*) child_it->data;
			{
				GtkTable* _tmp2_;
				GtkWidget* _tmp3_;
				_tmp2_ = self->priv->table;
				_tmp3_ = child;
				gtk_container_remove ((GtkContainer*) _tmp2_, _tmp3_);
			}
		}
		_g_list_free0 (child_collection);
	}
	_tmp4_ = self->priv->table;
	gtk_table_resize (_tmp4_, (guint) 1, (guint) 2);
	self->priv->current_row = (guint) 0;
}


static GtkWidget* boxes_wizard_wizard_summary_get_widget (BoxesWizardWizardSummary* self) {
	GtkWidget* result;
	GtkTable* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->table;
	result = (GtkWidget*) _tmp0_;
	return result;
}


static void boxes_wizard_wizard_summary_class_init (BoxesWizardWizardSummaryClass * klass) {
	boxes_wizard_wizard_summary_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardWizardSummaryPrivate));
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_wizard_summary_get_property;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_wizard_summary_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_WIZARD_SUMMARY_WIDGET, g_param_spec_object ("widget", "widget", "widget", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
}


static void boxes_wizard_wizard_summary_instance_init (BoxesWizardWizardSummary * self) {
	self->priv = BOXES_WIZARD_WIZARD_SUMMARY_GET_PRIVATE (self);
}


static void boxes_wizard_wizard_summary_finalize (GObject* obj) {
	BoxesWizardWizardSummary * self;
	self = BOXES_WIZARD_WIZARD_SUMMARY (obj);
	_g_object_unref0 (self->priv->table);
	G_OBJECT_CLASS (boxes_wizard_wizard_summary_parent_class)->finalize (obj);
}


static GType boxes_wizard_wizard_summary_get_type (void) {
	static volatile gsize boxes_wizard_wizard_summary_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_wizard_summary_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardWizardSummaryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_wizard_summary_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizardWizardSummary), 0, (GInstanceInitFunc) boxes_wizard_wizard_summary_instance_init, NULL };
		GType boxes_wizard_wizard_summary_type_id;
		boxes_wizard_wizard_summary_type_id = g_type_register_static (G_TYPE_OBJECT, "BoxesWizardWizardSummary", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_wizard_summary_type_id__volatile, boxes_wizard_wizard_summary_type_id);
	}
	return boxes_wizard_wizard_summary_type_id__volatile;
}


static void _vala_boxes_wizard_wizard_summary_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizardWizardSummary * self;
	self = BOXES_WIZARD_WIZARD_SUMMARY (object);
	switch (property_id) {
		case BOXES_WIZARD_WIZARD_SUMMARY_WIDGET:
		g_value_set_object (value, boxes_wizard_wizard_summary_get_widget (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void boxes_wizard_class_init (BoxesWizardClass * klass) {
	boxes_wizard_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BoxesWizardPrivate));
	BOXES_UI_CLASS (klass)->ui_state_changed = boxes_wizard_real_ui_state_changed;
	BOXES_UI_CLASS (klass)->get_actor = boxes_wizard_real_get_actor;
	G_OBJECT_CLASS (klass)->get_property = _vala_boxes_wizard_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_boxes_wizard_set_property;
	G_OBJECT_CLASS (klass)->constructor = boxes_wizard_constructor;
	G_OBJECT_CLASS (klass)->finalize = boxes_wizard_finalize;
	g_object_class_override_property (G_OBJECT_CLASS (klass), BOXES_WIZARD_ACTOR, "actor");
}


static void boxes_wizard_instance_init (BoxesWizard * self) {
	self->priv = BOXES_WIZARD_GET_PRIVATE (self);
}


static void boxes_wizard_finalize (GObject* obj) {
	BoxesWizard * self;
	self = BOXES_WIZARD (obj);
	_g_object_unref0 (self->priv->gtk_actor);
	_g_object_unref0 (self->priv->app);
	_g_ptr_array_unref0 (self->priv->steps);
	_g_object_unref0 (self->priv->notebook);
	_g_object_unref0 (self->priv->back_button);
	_g_object_unref0 (self->priv->next_button);
	_g_object_unref0 (self->priv->wizard_source);
	_g_object_unref0 (self->priv->summary);
	_g_object_unref0 (self->priv->source);
	_g_object_unref0 (self->priv->prep_progress);
	_g_object_unref0 (self->priv->setup_vbox);
	_boxes_os_database_unref0 (self->priv->os_db);
	_boxes_vm_creator_unref0 (self->priv->vm_creator);
	_g_object_unref0 (self->priv->client);
	_g_object_unref0 (self->priv->install_media);
	_g_object_unref0 (self->priv->resources);
	G_OBJECT_CLASS (boxes_wizard_parent_class)->finalize (obj);
}


GType boxes_wizard_get_type (void) {
	static volatile gsize boxes_wizard_type_id__volatile = 0;
	if (g_once_init_enter (&boxes_wizard_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BoxesWizardClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) boxes_wizard_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BoxesWizard), 0, (GInstanceInitFunc) boxes_wizard_instance_init, NULL };
		GType boxes_wizard_type_id;
		boxes_wizard_type_id = g_type_register_static (BOXES_TYPE_UI, "BoxesWizard", &g_define_type_info, 0);
		g_once_init_leave (&boxes_wizard_type_id__volatile, boxes_wizard_type_id);
	}
	return boxes_wizard_type_id__volatile;
}


static void _vala_boxes_wizard_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = BOXES_WIZARD (object);
	switch (property_id) {
		case BOXES_WIZARD_ACTOR:
		g_value_set_object (value, boxes_ui_get_actor ((BoxesUI*) self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


static void _vala_boxes_wizard_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	BoxesWizard * self;
	self = BOXES_WIZARD (object);
	switch (property_id) {
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}


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);
}



