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

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU LGPL (version 2.1 or later).
 * See the COPYING file in this distribution.
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gee.h>
#include <gexiv2/gexiv2.h>
#include <unistd.h>


#define TYPE_SHOTWELL_COMMAND (shotwell_command_get_type ())
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define DB_TYPE_VERIFY_RESULT (db_verify_result_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))

#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))

typedef struct _ProgressDialog ProgressDialog;
typedef struct _ProgressDialogClass ProgressDialogClass;

#define TYPE_AGGREGATE_PROGRESS_MONITOR (aggregate_progress_monitor_get_type ())
#define AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitor))
#define AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
#define IS_AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR))
#define IS_AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR))
#define AGGREGATE_PROGRESS_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))

typedef struct _AggregateProgressMonitor AggregateProgressMonitor;
typedef struct _AggregateProgressMonitorClass AggregateProgressMonitorClass;

#define TYPE_DATABASE_TABLE (database_table_get_type ())
#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))

typedef struct _DatabaseTable DatabaseTable;
typedef struct _DatabaseTableClass DatabaseTableClass;

#define TYPE_PHOTO_TABLE (photo_table_get_type ())
#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))

typedef struct _PhotoTable PhotoTable;
typedef struct _PhotoTableClass PhotoTableClass;

#define TYPE_EVENT_TABLE (event_table_get_type ())
#define EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_TABLE, EventTable))
#define EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_TABLE, EventTableClass))
#define IS_EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_TABLE))
#define IS_EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_TABLE))
#define EVENT_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_TABLE, EventTableClass))

typedef struct _EventTable EventTable;
typedef struct _EventTableClass EventTableClass;

#define TYPE_TAG_TABLE (tag_table_get_type ())
#define TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_TABLE, TagTable))
#define TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_TABLE, TagTableClass))
#define IS_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_TABLE))
#define IS_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_TABLE))
#define TAG_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_TABLE, TagTableClass))

typedef struct _TagTable TagTable;
typedef struct _TagTableClass TagTableClass;

#define TYPE_VIDEO_TABLE (video_table_get_type ())
#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))

typedef struct _VideoTable VideoTable;
typedef struct _VideoTableClass VideoTableClass;

#define TYPE_UPGRADES (upgrades_get_type ())
#define UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UPGRADES, Upgrades))
#define UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_UPGRADES, UpgradesClass))
#define IS_UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UPGRADES))
#define IS_UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_UPGRADES))
#define UPGRADES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_UPGRADES, UpgradesClass))

typedef struct _Upgrades Upgrades;
typedef struct _UpgradesClass UpgradesClass;
#define _upgrades_unref0(var) ((var == NULL) ? NULL : (var = (upgrades_unref (var), NULL)))
#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
#define _aggregate_progress_monitor_unref0(var) ((var == NULL) ? NULL : (var = (aggregate_progress_monitor_unref (var), NULL)))

#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))

typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;

#define TYPE_DATA_COLLECTION (data_collection_get_type ())
#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))

typedef struct _DataCollection DataCollection;
typedef struct _DataCollectionClass DataCollectionClass;

#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))

typedef struct _SourceCollection SourceCollection;
typedef struct _SourceCollectionClass SourceCollectionClass;

#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))

typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;

#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))

typedef struct _MediaSourceCollection MediaSourceCollection;
typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;

#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))

typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;

#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))

typedef struct _VideoSourceCollection VideoSourceCollection;
typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;

#define TYPE_APPLICATION (application_get_type ())
#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))

typedef struct _Application Application;
typedef struct _ApplicationClass ApplicationClass;
#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))

#define TYPE_PAGE_WINDOW (page_window_get_type ())
#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))

typedef struct _PageWindow PageWindow;
typedef struct _PageWindowClass PageWindowClass;

#define TYPE_APP_WINDOW (app_window_get_type ())
#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))

typedef struct _AppWindow AppWindow;
typedef struct _AppWindowClass AppWindowClass;

#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))

typedef struct _LibraryWindow LibraryWindow;
typedef struct _LibraryWindowClass LibraryWindowClass;

#define TYPE_WELCOME_SERVICE_ENTRY (welcome_service_entry_get_type ())
#define WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntry))
#define IS_WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_SERVICE_ENTRY))
#define WELCOME_SERVICE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntryIface))

typedef struct _WelcomeServiceEntry WelcomeServiceEntry;
typedef struct _WelcomeServiceEntryIface WelcomeServiceEntryIface;

#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))

typedef struct _ConfigurationFacade ConfigurationFacade;
typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;

#define CONFIG_TYPE_FACADE (config_facade_get_type ())
#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))

typedef struct _ConfigFacade ConfigFacade;
typedef struct _ConfigFacadeClass ConfigFacadeClass;

#define TYPE_WELCOME_DIALOG (welcome_dialog_get_type ())
#define WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_DIALOG, WelcomeDialog))
#define WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
#define IS_WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_DIALOG))
#define IS_WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WELCOME_DIALOG))
#define WELCOME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WELCOME_DIALOG, WelcomeDialogClass))

typedef struct _WelcomeDialog WelcomeDialog;
typedef struct _WelcomeDialogClass WelcomeDialogClass;

#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))

typedef struct _ImportManifest ImportManifest;
typedef struct _ImportManifestClass ImportManifestClass;
#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))

#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))

typedef struct _BatchImportJob BatchImportJob;
typedef struct _BatchImportJobClass BatchImportJobClass;

#define TYPE_FILE_IMPORT_JOB (file_import_job_get_type ())
#define FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_IMPORT_JOB, FileImportJob))
#define FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
#define IS_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_IMPORT_JOB))
#define IS_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_IMPORT_JOB))
#define FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_IMPORT_JOB, FileImportJobClass))

typedef struct _FileImportJob FileImportJob;
typedef struct _FileImportJobClass FileImportJobClass;
#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))

#define TYPE_BATCH_IMPORT (batch_import_get_type ())
#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))

typedef struct _BatchImport BatchImport;
typedef struct _BatchImportClass BatchImportClass;

#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))

typedef struct _BatchImportRoll BatchImportRoll;
typedef struct _BatchImportRollClass BatchImportRollClass;
typedef struct _ImportManifestPrivate ImportManifestPrivate;

#define TYPE_DATA_OBJECT (data_object_get_type ())
#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))

typedef struct _DataObject DataObject;
typedef struct _DataObjectClass DataObjectClass;

#define TYPE_DATA_SOURCE (data_source_get_type ())
#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))

typedef struct _DataSource DataSource;
typedef struct _DataSourceClass DataSourceClass;

#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))

typedef struct _ThumbnailSource ThumbnailSource;
typedef struct _ThumbnailSourceClass ThumbnailSourceClass;

#define TYPE_MEDIA_SOURCE (media_source_get_type ())
#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))

typedef struct _MediaSource MediaSource;
typedef struct _MediaSourceClass MediaSourceClass;

#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))

typedef struct _BatchImportResult BatchImportResult;
typedef struct _BatchImportResultClass BatchImportResultClass;

#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))

typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;

#define TYPE_DIRECT_WINDOW (direct_window_get_type ())
#define DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_WINDOW, DirectWindow))
#define DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_WINDOW, DirectWindowClass))
#define IS_DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_WINDOW))
#define IS_DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_WINDOW))
#define DIRECT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_WINDOW, DirectWindowClass))

typedef struct _DirectWindow DirectWindow;
typedef struct _DirectWindowClass DirectWindowClass;
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))

typedef enum  {
	SHOTWELL_COMMAND_MOUNTED_CAMERA = 1
} ShotwellCommand;

typedef enum  {
	DB_VERIFY_RESULT_OK,
	DB_VERIFY_RESULT_FUTURE_VERSION,
	DB_VERIFY_RESULT_UPGRADE_ERROR,
	DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE
} DbVerifyResult;

typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
struct _WelcomeServiceEntryIface {
	GTypeInterface parent_iface;
	gchar* (*get_service_name) (WelcomeServiceEntry* self);
	void (*execute) (WelcomeServiceEntry* self);
};

typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
struct _ImportManifest {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ImportManifestPrivate * priv;
	GeeList* imported;
	GeeList* success;
	GeeList* camera_failed;
	GeeList* failed;
	GeeList* write_failed;
	GeeList* skipped_photos;
	GeeList* skipped_files;
	GeeList* aborted;
	GeeList* already_imported;
	GeeList* corrupt_files;
	GeeList* all;
};

struct _ImportManifestClass {
	GTypeClass parent_class;
	void (*finalize) (ImportManifest *self);
};


extern GTimer* startup_timer;
GTimer* startup_timer = NULL;
extern gboolean was_already_running;
gboolean was_already_running = FALSE;
extern gboolean commandline_options_no_startup_progress;
extern LibraryPhotoSourceCollection* library_photo_global;
extern VideoSourceCollection* video_global;
extern gboolean do_system_pictures_import;
extern gboolean do_external_import;
gboolean do_system_pictures_import = FALSE;
gboolean do_external_import = FALSE;
gboolean commandline_options_no_startup_progress = FALSE;
extern gchar* commandline_options_data_dir;
gchar* commandline_options_data_dir = NULL;
extern gboolean commandline_options_show_version;
gboolean commandline_options_show_version = FALSE;
extern gboolean commandline_options_no_runtime_monitoring;
gboolean commandline_options_no_runtime_monitoring = FALSE;
extern GOptionEntry* commandline_options_entries;
extern gint commandline_options_entries_length1;
GOptionEntry* commandline_options_entries = NULL;
gint commandline_options_entries_length1 = 0;
static gint _commandline_options_entries_size_ = 0;

GType shotwell_command_get_type (void) G_GNUC_CONST;
void library_exec (gchar** mounts, int mounts_length1);
gboolean application_get_is_remote (void);
void application_present_primary_instance (void);
void application_send_to_primary_instance (gchar** argv, int argv_length1);
void db_preconfigure (GFile* db_file);
GFile* app_dirs_get_data_subdir (const gchar* name, const gchar* subname);
void library_app_init (GError** error);
void app_window_panic (const gchar* msg);
GType db_verify_result_get_type (void) G_GNUC_CONST;
DbVerifyResult db_verify_database (gchar* * app_version, gint* schema_version);
#define RESOURCES_APP_VERSION _VERSION
#define DATABASE_TABLE_SCHEMA_VERSION 20
#define RESOURCES_HOME_URL "https://wiki.gnome.org/Apps/Shotwell"
GFile* app_dirs_get_data_dir (void);
const gchar* db_verify_result_to_string (DbVerifyResult self);
#define RESOURCES_APP_TITLE "Shotwell"
void database_table_terminate (void);
void upgrades_init (void);
GType progress_dialog_get_type (void) G_GNUC_CONST;
gpointer aggregate_progress_monitor_ref (gpointer instance);
void aggregate_progress_monitor_unref (gpointer instance);
GParamSpec* param_spec_aggregate_progress_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_aggregate_progress_monitor (GValue* value, gpointer v_object);
void value_take_aggregate_progress_monitor (GValue* value, gpointer v_object);
gpointer value_get_aggregate_progress_monitor (const GValue* value);
GType aggregate_progress_monitor_get_type (void) G_GNUC_CONST;
gpointer database_table_ref (gpointer instance);
void database_table_unref (gpointer instance);
GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_database_table (GValue* value, gpointer v_object);
void value_take_database_table (GValue* value, gpointer v_object);
gpointer value_get_database_table (const GValue* value);
GType database_table_get_type (void) G_GNUC_CONST;
GType photo_table_get_type (void) G_GNUC_CONST;
PhotoTable* photo_table_get_instance (void);
gint database_table_get_row_count (DatabaseTable* self);
GType event_table_get_type (void) G_GNUC_CONST;
EventTable* event_table_get_instance (void);
GType tag_table_get_type (void) G_GNUC_CONST;
TagTable* tag_table_get_instance (void);
GType video_table_get_type (void) G_GNUC_CONST;
VideoTable* video_table_get_instance (void);
gpointer upgrades_ref (gpointer instance);
void upgrades_unref (gpointer instance);
GParamSpec* param_spec_upgrades (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_upgrades (GValue* value, gpointer v_object);
void value_take_upgrades (GValue* value, gpointer v_object);
gpointer value_get_upgrades (const GValue* value);
GType upgrades_get_type (void) G_GNUC_CONST;
Upgrades* upgrades_get_instance (void);
guint64 upgrades_get_step_count (Upgrades* self);
ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
void progress_dialog_update_display_every (ProgressDialog* self, gint update_every);
void progress_dialog_set_minimum_on_screen_time_msec (ProgressDialog* self, gint minimum_on_screen_time_msec);
gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
AggregateProgressMonitor* aggregate_progress_monitor_new (guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
AggregateProgressMonitor* aggregate_progress_monitor_construct (GType object_type, guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
gboolean aggregate_progress_monitor_monitor (AggregateProgressMonitor* self, guint64 count, guint64 total);
static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
void thumbnail_cache_init (void);
void tombstone_init (void);
void aggregate_progress_monitor_next_step (AggregateProgressMonitor* self, const gchar* name);
void library_photo_init (ProgressMonitor monitor, void* monitor_target);
void video_init (ProgressMonitor monitor, void* monitor_target);
void upgrades_execute (Upgrades* self, ProgressMonitor monitor, void* monitor_target);
void library_monitor_pool_init (void);
void media_collection_registry_init (void);
gpointer media_collection_registry_ref (gpointer instance);
void media_collection_registry_unref (gpointer instance);
GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_media_collection_registry (GValue* value, gpointer v_object);
void value_take_media_collection_registry (GValue* value, gpointer v_object);
gpointer value_get_media_collection_registry (const GValue* value);
GType media_collection_registry_get_type (void) G_GNUC_CONST;
MediaCollectionRegistry* media_collection_registry_get_instance (void);
gpointer data_collection_ref (gpointer instance);
void data_collection_unref (gpointer instance);
GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_data_collection (GValue* value, gpointer v_object);
void value_take_data_collection (GValue* value, gpointer v_object);
gpointer value_get_data_collection (const GValue* value);
GType data_collection_get_type (void) G_GNUC_CONST;
GType source_collection_get_type (void) G_GNUC_CONST;
GType database_source_collection_get_type (void) G_GNUC_CONST;
GType media_source_collection_get_type (void) G_GNUC_CONST;
void media_collection_registry_register_collection (MediaCollectionRegistry* self, MediaSourceCollection* collection);
GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
GType video_source_collection_get_type (void) G_GNUC_CONST;
void event_init (ProgressMonitor monitor, void* monitor_target);
void tag_init (ProgressMonitor monitor, void* monitor_target);
void metadata_writer_init (void);
void desktop_integration_init (void);
gpointer application_ref (gpointer instance);
void application_unref (gpointer instance);
GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_application (GValue* value, gpointer v_object);
void value_take_application (GValue* value, gpointer v_object);
gpointer value_get_application (const GValue* value);
GType application_get_type (void) G_GNUC_CONST;
Application* application_get_instance (void);
GType page_window_get_type (void) G_GNUC_CONST;
GType app_window_get_type (void) G_GNUC_CONST;
GType library_window_get_type (void) G_GNUC_CONST;
LibraryWindow* library_window_new (ProgressMonitor progress_monitor, void* progress_monitor_target);
LibraryWindow* library_window_construct (GType object_type, ProgressMonitor progress_monitor, void* progress_monitor_target);
void library_window_mounted_camera_shell_notification (LibraryWindow* self, const gchar* uri, gboolean at_startup);
GType welcome_service_entry_get_type (void) G_GNUC_CONST;
GType configuration_facade_get_type (void) G_GNUC_CONST;
GType config_facade_get_type (void) G_GNUC_CONST;
ConfigFacade* config_facade_get_instance (void);
gboolean configuration_facade_get_show_welcome_dialog (ConfigurationFacade* self);
gint data_collection_get_count (DataCollection* self);
GType welcome_dialog_get_type (void) G_GNUC_CONST;
WelcomeDialog* welcome_dialog_new (GtkWindow* owner);
WelcomeDialog* welcome_dialog_construct (GType object_type, GtkWindow* owner);
void configuration_facade_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show);
gboolean welcome_dialog_execute (WelcomeDialog* self, WelcomeServiceEntry*** selected_import_entries, int* selected_import_entries_length1, gboolean* do_system_pictures_import);
void welcome_service_entry_execute (WelcomeServiceEntry* self);
gpointer import_manifest_ref (gpointer instance);
void import_manifest_unref (gpointer instance);
GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_import_manifest (GValue* value, gpointer v_object);
void value_take_import_manifest (GValue* value, gpointer v_object);
gpointer value_get_import_manifest (const GValue* value);
GType import_manifest_get_type (void) G_GNUC_CONST;
void run_system_pictures_import (ImportManifest* external_exclusion_manifest);
void application_start (Application* self, gchar** argv, int argv_length1);
void desktop_integration_terminate (void);
void metadata_writer_terminate (void);
void tag_terminate (void);
void event_terminate (void);
void library_photo_terminate (void);
void media_collection_registry_terminate (void);
void library_monitor_pool_terminate (void);
void tombstone_terminate (void);
void thumbnail_cache_terminate (void);
void video_terminate (void);
void library_app_terminate (void);
gpointer batch_import_job_ref (gpointer instance);
void batch_import_job_unref (gpointer instance);
GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_batch_import_job (GValue* value, gpointer v_object);
void value_take_batch_import_job (GValue* value, gpointer v_object);
gpointer value_get_batch_import_job (const GValue* value);
GType batch_import_job_get_type (void) G_GNUC_CONST;
GType file_import_job_get_type (void) G_GNUC_CONST;
GFile* app_dirs_get_import_dir (void);
FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library);
FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library);
AppWindow* app_window_get_instance (void);
GType batch_import_get_type (void) G_GNUC_CONST;
gpointer batch_import_roll_ref (gpointer instance);
void batch_import_roll_unref (gpointer instance);
GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_batch_import_roll (GValue* value, gpointer v_object);
void value_take_batch_import_roll (GValue* value, gpointer v_object);
gpointer value_get_batch_import_roll (const GValue* value);
GType batch_import_roll_get_type (void) G_GNUC_CONST;
void report_system_pictures_import (ImportManifest* manifest, BatchImportRoll* import_roll);
static void _report_system_pictures_import_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel);
void library_window_switch_to_import_queue_page (LibraryWindow* self);
GType data_object_get_type (void) G_GNUC_CONST;
GType data_source_get_type (void) G_GNUC_CONST;
GType thumbnail_source_get_type (void) G_GNUC_CONST;
GType media_source_get_type (void) G_GNUC_CONST;
gpointer batch_import_result_ref (gpointer instance);
void batch_import_result_unref (gpointer instance);
GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_batch_import_result (GValue* value, gpointer v_object);
void value_take_batch_import_result (GValue* value, gpointer v_object);
gpointer value_get_batch_import_result (const GValue* value);
GType batch_import_result_get_type (void) G_GNUC_CONST;
gpointer import_ui_question_params_ref (gpointer instance);
void import_ui_question_params_unref (gpointer instance);
GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void import_ui_value_set_question_params (GValue* value, gpointer v_object);
void import_ui_value_take_question_params (GValue* value, gpointer v_object);
gpointer import_ui_value_get_question_params (const GValue* value);
GType import_ui_question_params_get_type (void) G_GNUC_CONST;
gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
void editing_exec (const gchar* filename);
void direct_preconfigure (GFile* initial_file);
void direct_app_init (GError** error);
GType direct_window_get_type (void) G_GNUC_CONST;
DirectWindow* direct_window_new (GFile* file);
DirectWindow* direct_window_construct (GType object_type, GFile* file);
void direct_app_terminate (void);
GOptionEntry* commandline_options_get_options (int* result_length1);
static GOptionEntry* _vala_array_dup26 (GOptionEntry* self, int length);
static void _vala_array_add70 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value);
static void _vala_array_add71 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value);
static void _vala_array_add72 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value);
static void _vala_array_add73 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value);
static void _vala_array_add74 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value);
static GOptionEntry* _vala_array_dup27 (GOptionEntry* self, int length);
void _vala_main (gchar** args, int args_length1);
void app_dirs_init (const gchar* arg0);
GFile* app_dirs_get_install_dir (void);
GFile* app_dirs_get_exec_dir (void);
#define RESOURCES_APP_GETTEXT_PACKAGE GETTEXT_PACKAGE
void app_dirs_terminate (void);
#define RESOURCES_GIT_VERSION _GIT_VERSION
gboolean library_window_is_mount_uri_supported (const gchar* uri);
static void _vala_array_add75 (gchar** * array, int* length, int* size, gchar* value);
gboolean is_string_empty (const gchar* s);
#define DEBUG_LIBRARY_PREFIX "L"
#define DEBUG_VIEWER_PREFIX "V"
void debug_init (const gchar* app_version_prefix);
#define RESOURCES_APP_LIBRARY_ROLE _ ("Photo Manager")
#define RESOURCES_APP_DIRECT_ROLE _ ("Photo Viewer")
void application_init (gboolean is_direct);
void app_dirs_set_data_dir (const gchar* user_data_dir);
void app_dirs_try_migrate_data (void);
void app_dirs_verify_data_dir (void);
void app_dirs_verify_cache_dir (void);
void international_support_init (const gchar* package_name, gchar** args, int args_length1, const gchar* locale);
#define INTERNATIONAL_SUPPORT_SYSTEM_LOCALE ""
void resources_init (void);
void resources_terminate (void);
void application_terminate (void);
void debug_terminate (void);
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 shotwell_command_get_type (void) {
	static volatile gsize shotwell_command_type_id__volatile = 0;
	if (g_once_init_enter (&shotwell_command_type_id__volatile)) {
		static const GEnumValue values[] = {{SHOTWELL_COMMAND_MOUNTED_CAMERA, "SHOTWELL_COMMAND_MOUNTED_CAMERA", "mounted-camera"}, {0, NULL, NULL}};
		GType shotwell_command_type_id;
		shotwell_command_type_id = g_enum_register_static ("ShotwellCommand", values);
		g_once_init_leave (&shotwell_command_type_id__volatile, shotwell_command_type_id);
	}
	return shotwell_command_type_id__volatile;
}


static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
	gboolean result;
	result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
#line 113 "/home/jens/Source/shotwell/src/main.vala"
	return result;
#line 702 "main.c"
}


static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
	gboolean result;
	result = aggregate_progress_monitor_monitor ((AggregateProgressMonitor*) self, current, total);
#line 114 "/home/jens/Source/shotwell/src/main.vala"
	return result;
#line 711 "main.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 184 "/home/jens/Source/shotwell/src/main.vala"
	return self ? g_object_ref (self) : NULL;
#line 718 "main.c"
}


void library_exec (gchar** mounts, int mounts_length1) {
	gboolean _tmp0_;
	gboolean _tmp1_;
	GFile* _tmp3_;
	GFile* _tmp4_;
	GFile* _tmp5_;
	GFile* _tmp6_;
	gchar* errormsg = NULL;
	gchar* app_version = NULL;
	gint schema_version = 0;
	DbVerifyResult _result_ = 0;
	gchar* _tmp9_ = NULL;
	gint _tmp10_ = 0;
	DbVerifyResult _tmp11_;
	DbVerifyResult _tmp12_;
	const gchar* _tmp29_;
	ProgressDialog* progress_dialog = NULL;
	AggregateProgressMonitor* aggregate_monitor = NULL;
	ProgressMonitor monitor = NULL;
	void* monitor_target;
	GDestroyNotify monitor_target_destroy_notify;
	gboolean _tmp35_;
	AggregateProgressMonitor* _tmp65_;
	ProgressMonitor _tmp67_;
	void* _tmp67__target;
	AggregateProgressMonitor* _tmp68_;
	ProgressMonitor _tmp70_;
	void* _tmp70__target;
	AggregateProgressMonitor* _tmp71_;
	Upgrades* _tmp73_;
	Upgrades* _tmp74_;
	MediaCollectionRegistry* registry = NULL;
	MediaCollectionRegistry* _tmp75_;
	MediaCollectionRegistry* _tmp76_;
	LibraryPhotoSourceCollection* _tmp77_;
	MediaCollectionRegistry* _tmp78_;
	VideoSourceCollection* _tmp79_;
	AggregateProgressMonitor* _tmp80_;
	ProgressMonitor _tmp82_;
	void* _tmp82__target;
	AggregateProgressMonitor* _tmp83_;
	ProgressMonitor _tmp85_;
	void* _tmp85__target;
	Application* _tmp86_;
	Application* _tmp87_;
	AggregateProgressMonitor* _tmp88_;
	LibraryWindow* library_window = NULL;
	ProgressMonitor _tmp90_;
	void* _tmp90__target;
	LibraryWindow* _tmp91_;
	AggregateProgressMonitor* _tmp92_;
	ProgressDialog* _tmp94_;
	gchar** _tmp96_;
	gint _tmp96__length1;
	LibraryWindow* _tmp100_;
	WelcomeServiceEntry** selected_import_entries = NULL;
	WelcomeServiceEntry** _tmp101_;
	gint selected_import_entries_length1;
	gint _selected_import_entries_size_;
	gboolean _tmp102_ = FALSE;
	ConfigFacade* _tmp103_;
	ConfigFacade* _tmp104_;
	gboolean _tmp105_;
	gboolean _tmp106_;
	WelcomeServiceEntry** _tmp120_;
	gint _tmp120__length1;
	gboolean _tmp124_;
	GTimer* _tmp125_;
	gdouble _tmp126_;
	Application* _tmp127_;
	Application* _tmp128_;
	GError * _inner_error_ = NULL;
#line 16 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0_ = application_get_is_remote ();
#line 16 "/home/jens/Source/shotwell/src/main.vala"
	was_already_running = _tmp0_;
#line 18 "/home/jens/Source/shotwell/src/main.vala"
	_tmp1_ = was_already_running;
#line 18 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp1_) {
#line 802 "main.c"
		gchar** _tmp2_;
		gint _tmp2__length1;
#line 25 "/home/jens/Source/shotwell/src/main.vala"
		application_present_primary_instance ();
#line 26 "/home/jens/Source/shotwell/src/main.vala"
		_tmp2_ = mounts;
#line 26 "/home/jens/Source/shotwell/src/main.vala"
		_tmp2__length1 = mounts_length1;
#line 26 "/home/jens/Source/shotwell/src/main.vala"
		application_send_to_primary_instance (_tmp2_, _tmp2__length1);
#line 27 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 815 "main.c"
	}
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_tmp3_ = app_dirs_get_data_subdir ("data", NULL);
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_ = _tmp3_;
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_tmp5_ = g_file_get_child (_tmp4_, "photo.db");
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_tmp6_ = _tmp5_;
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	db_preconfigure (_tmp6_);
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (_tmp6_);
#line 31 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (_tmp4_);
#line 831 "main.c"
	{
#line 35 "/home/jens/Source/shotwell/src/main.vala"
		library_app_init (&_inner_error_);
#line 35 "/home/jens/Source/shotwell/src/main.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 837 "main.c"
			goto __catch222_g_error;
		}
	}
	goto __finally222;
	__catch222_g_error:
	{
		GError* err = NULL;
		GError* _tmp7_;
		const gchar* _tmp8_;
#line 34 "/home/jens/Source/shotwell/src/main.vala"
		err = _inner_error_;
#line 34 "/home/jens/Source/shotwell/src/main.vala"
		_inner_error_ = NULL;
#line 37 "/home/jens/Source/shotwell/src/main.vala"
		_tmp7_ = err;
#line 37 "/home/jens/Source/shotwell/src/main.vala"
		_tmp8_ = _tmp7_->message;
#line 37 "/home/jens/Source/shotwell/src/main.vala"
		app_window_panic (_tmp8_);
#line 39 "/home/jens/Source/shotwell/src/main.vala"
		_g_error_free0 (err);
#line 39 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 861 "main.c"
	}
	__finally222:
#line 34 "/home/jens/Source/shotwell/src/main.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 34 "/home/jens/Source/shotwell/src/main.vala"
		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);
#line 34 "/home/jens/Source/shotwell/src/main.vala"
		g_clear_error (&_inner_error_);
#line 34 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 872 "main.c"
	}
#line 43 "/home/jens/Source/shotwell/src/main.vala"
	g_message ("main.vala:43: Verifying database…");
#line 44 "/home/jens/Source/shotwell/src/main.vala"
	errormsg = NULL;
#line 47 "/home/jens/Source/shotwell/src/main.vala"
	_tmp11_ = db_verify_database (&_tmp9_, &_tmp10_);
#line 47 "/home/jens/Source/shotwell/src/main.vala"
	_g_free0 (app_version);
#line 47 "/home/jens/Source/shotwell/src/main.vala"
	app_version = _tmp9_;
#line 47 "/home/jens/Source/shotwell/src/main.vala"
	schema_version = _tmp10_;
#line 47 "/home/jens/Source/shotwell/src/main.vala"
	_result_ = _tmp11_;
#line 48 "/home/jens/Source/shotwell/src/main.vala"
	_tmp12_ = _result_;
#line 48 "/home/jens/Source/shotwell/src/main.vala"
	switch (_tmp12_) {
#line 48 "/home/jens/Source/shotwell/src/main.vala"
		case DB_VERIFY_RESULT_OK:
#line 894 "main.c"
		{
#line 51 "/home/jens/Source/shotwell/src/main.vala"
			break;
#line 898 "main.c"
		}
#line 48 "/home/jens/Source/shotwell/src/main.vala"
		case DB_VERIFY_RESULT_FUTURE_VERSION:
#line 902 "main.c"
		{
			const gchar* _tmp13_;
			gint _tmp14_;
			gchar* _tmp15_;
#line 54 "/home/jens/Source/shotwell/src/main.vala"
			_tmp13_ = app_version;
#line 54 "/home/jens/Source/shotwell/src/main.vala"
			_tmp14_ = schema_version;
#line 54 "/home/jens/Source/shotwell/src/main.vala"
			_tmp15_ = g_strdup_printf (_ ("Your photo library is not compatible with this version of Shotwell. It" \
" appears it was created by Shotwell %s (schema %d). This version is %s" \
" (schema %d). Please use the latest version of Shotwell."), _tmp13_, _tmp14_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION);
#line 54 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (errormsg);
#line 54 "/home/jens/Source/shotwell/src/main.vala"
			errormsg = _tmp15_;
#line 56 "/home/jens/Source/shotwell/src/main.vala"
			break;
#line 919 "main.c"
		}
#line 48 "/home/jens/Source/shotwell/src/main.vala"
		case DB_VERIFY_RESULT_UPGRADE_ERROR:
#line 923 "main.c"
		{
			const gchar* _tmp16_;
			gint _tmp17_;
			gchar* _tmp18_;
#line 59 "/home/jens/Source/shotwell/src/main.vala"
			_tmp16_ = app_version;
#line 59 "/home/jens/Source/shotwell/src/main.vala"
			_tmp17_ = schema_version;
#line 59 "/home/jens/Source/shotwell/src/main.vala"
			_tmp18_ = g_strdup_printf (_ ("Shotwell was unable to upgrade your photo library from version %s (sch" \
"ema %d) to %s (schema %d). For more information please check the Shotw" \
"ell Wiki at %s"), _tmp16_, _tmp17_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION, RESOURCES_HOME_URL);
#line 59 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (errormsg);
#line 59 "/home/jens/Source/shotwell/src/main.vala"
			errormsg = _tmp18_;
#line 62 "/home/jens/Source/shotwell/src/main.vala"
			break;
#line 940 "main.c"
		}
#line 48 "/home/jens/Source/shotwell/src/main.vala"
		case DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE:
#line 944 "main.c"
		{
			const gchar* _tmp19_;
			gint _tmp20_;
			GFile* _tmp21_;
			GFile* _tmp22_;
			gchar* _tmp23_;
			gchar* _tmp24_;
			gchar* _tmp25_;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp19_ = app_version;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp20_ = schema_version;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp21_ = app_dirs_get_data_dir ();
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp22_ = _tmp21_;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp23_ = g_file_get_path (_tmp22_);
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp24_ = _tmp23_;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_tmp25_ = g_strdup_printf (_ ("Your photo library is not compatible with this version of Shotwell. It" \
" appears it was created by Shotwell %s (schema %d). This version is %s" \
" (schema %d). Please clear your library by deleting %s and re-import y" \
"our photos."), _tmp19_, _tmp20_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION, _tmp24_);
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (errormsg);
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			errormsg = _tmp25_;
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (_tmp24_);
#line 65 "/home/jens/Source/shotwell/src/main.vala"
			_g_object_unref0 (_tmp22_);
#line 68 "/home/jens/Source/shotwell/src/main.vala"
			break;
#line 977 "main.c"
		}
		default:
		{
			DbVerifyResult _tmp26_;
			GEnumValue* _tmp27_;
			gchar* _tmp28_;
#line 71 "/home/jens/Source/shotwell/src/main.vala"
			_tmp26_ = _result_;
#line 72 "/home/jens/Source/shotwell/src/main.vala"
			_tmp27_ = g_enum_get_value (g_type_class_ref (DB_TYPE_VERIFY_RESULT), _tmp26_);
#line 71 "/home/jens/Source/shotwell/src/main.vala"
			_tmp28_ = g_strdup_printf (_ ("Unknown error attempting to verify Shotwell’s database: %s"), (_tmp27_ != NULL) ? _tmp27_->value_name : NULL);
#line 71 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (errormsg);
#line 71 "/home/jens/Source/shotwell/src/main.vala"
			errormsg = _tmp28_;
#line 73 "/home/jens/Source/shotwell/src/main.vala"
			break;
#line 996 "main.c"
		}
	}
#line 76 "/home/jens/Source/shotwell/src/main.vala"
	_tmp29_ = errormsg;
#line 76 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp29_ != NULL) {
#line 1003 "main.c"
		GtkMessageDialog* dialog = NULL;
		const gchar* _tmp30_;
		GtkMessageDialog* _tmp31_;
		GtkMessageDialog* _tmp32_;
		GtkMessageDialog* _tmp33_;
		GtkMessageDialog* _tmp34_;
#line 77 "/home/jens/Source/shotwell/src/main.vala"
		_tmp30_ = errormsg;
#line 77 "/home/jens/Source/shotwell/src/main.vala"
		_tmp31_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", _tmp30_);
#line 77 "/home/jens/Source/shotwell/src/main.vala"
		g_object_ref_sink (_tmp31_);
#line 77 "/home/jens/Source/shotwell/src/main.vala"
		dialog = _tmp31_;
#line 79 "/home/jens/Source/shotwell/src/main.vala"
		_tmp32_ = dialog;
#line 79 "/home/jens/Source/shotwell/src/main.vala"
		gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_window_get_type (), GtkWindow), RESOURCES_APP_TITLE);
#line 80 "/home/jens/Source/shotwell/src/main.vala"
		_tmp33_ = dialog;
#line 80 "/home/jens/Source/shotwell/src/main.vala"
		gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_dialog_get_type (), GtkDialog));
#line 81 "/home/jens/Source/shotwell/src/main.vala"
		_tmp34_ = dialog;
#line 81 "/home/jens/Source/shotwell/src/main.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
#line 83 "/home/jens/Source/shotwell/src/main.vala"
		database_table_terminate ();
#line 85 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (dialog);
#line 85 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (app_version);
#line 85 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (errormsg);
#line 85 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 1040 "main.c"
	}
#line 88 "/home/jens/Source/shotwell/src/main.vala"
	upgrades_init ();
#line 90 "/home/jens/Source/shotwell/src/main.vala"
	progress_dialog = NULL;
#line 91 "/home/jens/Source/shotwell/src/main.vala"
	aggregate_monitor = NULL;
#line 92 "/home/jens/Source/shotwell/src/main.vala"
	monitor = NULL;
#line 92 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target = NULL;
#line 92 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target_destroy_notify = NULL;
#line 94 "/home/jens/Source/shotwell/src/main.vala"
	_tmp35_ = commandline_options_no_startup_progress;
#line 94 "/home/jens/Source/shotwell/src/main.vala"
	if (!_tmp35_) {
#line 1058 "main.c"
		guint64 grand_total = 0ULL;
		PhotoTable* _tmp36_;
		PhotoTable* _tmp37_;
		gint _tmp38_;
		EventTable* _tmp39_;
		EventTable* _tmp40_;
		gint _tmp41_;
		TagTable* _tmp42_;
		TagTable* _tmp43_;
		gint _tmp44_;
		VideoTable* _tmp45_;
		VideoTable* _tmp46_;
		gint _tmp47_;
		Upgrades* _tmp48_;
		Upgrades* _tmp49_;
		guint64 _tmp50_;
		guint64 _tmp51_;
		guint64 _tmp52_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp36_ = photo_table_get_instance ();
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp37_ = _tmp36_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp38_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_DATABASE_TABLE, DatabaseTable));
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp39_ = event_table_get_instance ();
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp40_ = _tmp39_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp41_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATABASE_TABLE, DatabaseTable));
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp42_ = tag_table_get_instance ();
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp43_ = _tmp42_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp44_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATABASE_TABLE, DatabaseTable));
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp45_ = video_table_get_instance ();
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp46_ = _tmp45_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp47_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_DATABASE_TABLE, DatabaseTable));
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp48_ = upgrades_get_instance ();
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp49_ = _tmp48_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp50_ = upgrades_get_step_count (_tmp49_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_tmp51_ = (((_tmp38_ + _tmp41_) + _tmp44_) + _tmp47_) + _tmp50_;
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_upgrades_unref0 (_tmp49_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_database_table_unref0 (_tmp46_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_database_table_unref0 (_tmp43_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_database_table_unref0 (_tmp40_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		_database_table_unref0 (_tmp37_);
#line 98 "/home/jens/Source/shotwell/src/main.vala"
		grand_total = _tmp51_;
#line 103 "/home/jens/Source/shotwell/src/main.vala"
		_tmp52_ = grand_total;
#line 103 "/home/jens/Source/shotwell/src/main.vala"
		if (_tmp52_ > ((guint64) 5000)) {
#line 1125 "main.c"
			ProgressDialog* _tmp53_;
			ProgressDialog* _tmp54_;
			ProgressDialog* _tmp55_;
			guint64 _tmp61_;
			ProgressDialog* _tmp62_;
			AggregateProgressMonitor* _tmp63_;
			AggregateProgressMonitor* _tmp64_;
#line 104 "/home/jens/Source/shotwell/src/main.vala"
			_tmp53_ = progress_dialog_new (NULL, _ ("Loading Shotwell"), NULL);
#line 104 "/home/jens/Source/shotwell/src/main.vala"
			g_object_ref_sink (_tmp53_);
#line 104 "/home/jens/Source/shotwell/src/main.vala"
			_g_object_unref0 (progress_dialog);
#line 104 "/home/jens/Source/shotwell/src/main.vala"
			progress_dialog = _tmp53_;
#line 105 "/home/jens/Source/shotwell/src/main.vala"
			_tmp54_ = progress_dialog;
#line 105 "/home/jens/Source/shotwell/src/main.vala"
			progress_dialog_update_display_every (_tmp54_, 100);
#line 106 "/home/jens/Source/shotwell/src/main.vala"
			_tmp55_ = progress_dialog;
#line 106 "/home/jens/Source/shotwell/src/main.vala"
			progress_dialog_set_minimum_on_screen_time_msec (_tmp55_, 250);
#line 1149 "main.c"
			{
				GdkPixbuf* _tmp56_ = NULL;
				GdkPixbuf* _tmp57_;
				ProgressDialog* _tmp58_;
#line 108 "/home/jens/Source/shotwell/src/main.vala"
				_tmp57_ = gdk_pixbuf_new_from_resource ("/org/gnome/Shotwell/icons/shotwell.svg", &_inner_error_);
#line 108 "/home/jens/Source/shotwell/src/main.vala"
				_tmp56_ = _tmp57_;
#line 108 "/home/jens/Source/shotwell/src/main.vala"
				if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1160 "main.c"
					goto __catch223_g_error;
				}
#line 108 "/home/jens/Source/shotwell/src/main.vala"
				_tmp58_ = progress_dialog;
#line 108 "/home/jens/Source/shotwell/src/main.vala"
				gtk_window_set_icon (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_window_get_type (), GtkWindow), _tmp56_);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_g_object_unref0 (_tmp56_);
#line 1169 "main.c"
			}
			goto __finally223;
			__catch223_g_error:
			{
				GError* err = NULL;
				GError* _tmp59_;
				const gchar* _tmp60_;
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				err = _inner_error_;
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_inner_error_ = NULL;
#line 110 "/home/jens/Source/shotwell/src/main.vala"
				_tmp59_ = err;
#line 110 "/home/jens/Source/shotwell/src/main.vala"
				_tmp60_ = _tmp59_->message;
#line 110 "/home/jens/Source/shotwell/src/main.vala"
				g_debug ("main.vala:110: Warning - could not load application icon for loading w" \
"indow: %s", _tmp60_);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_g_error_free0 (err);
#line 1189 "main.c"
			}
			__finally223:
#line 107 "/home/jens/Source/shotwell/src/main.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				(monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				monitor = NULL;
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				monitor_target = NULL;
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				monitor_target_destroy_notify = NULL;
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_aggregate_progress_monitor_unref0 (aggregate_monitor);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_g_object_unref0 (progress_dialog);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_g_free0 (app_version);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				_g_free0 (errormsg);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				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);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				g_clear_error (&_inner_error_);
#line 107 "/home/jens/Source/shotwell/src/main.vala"
				return;
#line 1216 "main.c"
			}
#line 113 "/home/jens/Source/shotwell/src/main.vala"
			_tmp61_ = grand_total;
#line 113 "/home/jens/Source/shotwell/src/main.vala"
			_tmp62_ = progress_dialog;
#line 113 "/home/jens/Source/shotwell/src/main.vala"
			_tmp63_ = aggregate_progress_monitor_new (_tmp61_, _progress_dialog_monitor_progress_monitor, _tmp62_);
#line 113 "/home/jens/Source/shotwell/src/main.vala"
			_aggregate_progress_monitor_unref0 (aggregate_monitor);
#line 113 "/home/jens/Source/shotwell/src/main.vala"
			aggregate_monitor = _tmp63_;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			_tmp64_ = aggregate_monitor;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			(monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor = NULL;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor_target = NULL;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor_target_destroy_notify = NULL;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor = _aggregate_progress_monitor_monitor_progress_monitor;
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor_target = aggregate_progress_monitor_ref (_tmp64_);
#line 114 "/home/jens/Source/shotwell/src/main.vala"
			monitor_target_destroy_notify = aggregate_progress_monitor_unref;
#line 1244 "main.c"
		}
	}
#line 118 "/home/jens/Source/shotwell/src/main.vala"
	thumbnail_cache_init ();
#line 119 "/home/jens/Source/shotwell/src/main.vala"
	tombstone_init ();
#line 121 "/home/jens/Source/shotwell/src/main.vala"
	_tmp65_ = aggregate_monitor;
#line 121 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp65_ != NULL) {
#line 1255 "main.c"
		AggregateProgressMonitor* _tmp66_;
#line 122 "/home/jens/Source/shotwell/src/main.vala"
		_tmp66_ = aggregate_monitor;
#line 122 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp66_, "LibraryPhoto.init");
#line 1261 "main.c"
	}
#line 123 "/home/jens/Source/shotwell/src/main.vala"
	_tmp67_ = monitor;
#line 123 "/home/jens/Source/shotwell/src/main.vala"
	_tmp67__target = monitor_target;
#line 123 "/home/jens/Source/shotwell/src/main.vala"
	library_photo_init (_tmp67_, _tmp67__target);
#line 124 "/home/jens/Source/shotwell/src/main.vala"
	_tmp68_ = aggregate_monitor;
#line 124 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp68_ != NULL) {
#line 1273 "main.c"
		AggregateProgressMonitor* _tmp69_;
#line 125 "/home/jens/Source/shotwell/src/main.vala"
		_tmp69_ = aggregate_monitor;
#line 125 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp69_, "Video.init");
#line 1279 "main.c"
	}
#line 126 "/home/jens/Source/shotwell/src/main.vala"
	_tmp70_ = monitor;
#line 126 "/home/jens/Source/shotwell/src/main.vala"
	_tmp70__target = monitor_target;
#line 126 "/home/jens/Source/shotwell/src/main.vala"
	video_init (_tmp70_, _tmp70__target);
#line 127 "/home/jens/Source/shotwell/src/main.vala"
	_tmp71_ = aggregate_monitor;
#line 127 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp71_ != NULL) {
#line 1291 "main.c"
		AggregateProgressMonitor* _tmp72_;
#line 128 "/home/jens/Source/shotwell/src/main.vala"
		_tmp72_ = aggregate_monitor;
#line 128 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp72_, "Upgrades.execute");
#line 1297 "main.c"
	}
#line 129 "/home/jens/Source/shotwell/src/main.vala"
	_tmp73_ = upgrades_get_instance ();
#line 129 "/home/jens/Source/shotwell/src/main.vala"
	_tmp74_ = _tmp73_;
#line 129 "/home/jens/Source/shotwell/src/main.vala"
	upgrades_execute (_tmp74_, NULL, NULL);
#line 129 "/home/jens/Source/shotwell/src/main.vala"
	_upgrades_unref0 (_tmp74_);
#line 131 "/home/jens/Source/shotwell/src/main.vala"
	library_monitor_pool_init ();
#line 132 "/home/jens/Source/shotwell/src/main.vala"
	media_collection_registry_init ();
#line 133 "/home/jens/Source/shotwell/src/main.vala"
	_tmp75_ = media_collection_registry_get_instance ();
#line 133 "/home/jens/Source/shotwell/src/main.vala"
	registry = _tmp75_;
#line 134 "/home/jens/Source/shotwell/src/main.vala"
	_tmp76_ = registry;
#line 134 "/home/jens/Source/shotwell/src/main.vala"
	_tmp77_ = library_photo_global;
#line 134 "/home/jens/Source/shotwell/src/main.vala"
	media_collection_registry_register_collection (_tmp76_, G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
#line 135 "/home/jens/Source/shotwell/src/main.vala"
	_tmp78_ = registry;
#line 135 "/home/jens/Source/shotwell/src/main.vala"
	_tmp79_ = video_global;
#line 135 "/home/jens/Source/shotwell/src/main.vala"
	media_collection_registry_register_collection (_tmp78_, G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
#line 137 "/home/jens/Source/shotwell/src/main.vala"
	_tmp80_ = aggregate_monitor;
#line 137 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp80_ != NULL) {
#line 1331 "main.c"
		AggregateProgressMonitor* _tmp81_;
#line 138 "/home/jens/Source/shotwell/src/main.vala"
		_tmp81_ = aggregate_monitor;
#line 138 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp81_, "Event.init");
#line 1337 "main.c"
	}
#line 139 "/home/jens/Source/shotwell/src/main.vala"
	_tmp82_ = monitor;
#line 139 "/home/jens/Source/shotwell/src/main.vala"
	_tmp82__target = monitor_target;
#line 139 "/home/jens/Source/shotwell/src/main.vala"
	event_init (_tmp82_, _tmp82__target);
#line 140 "/home/jens/Source/shotwell/src/main.vala"
	_tmp83_ = aggregate_monitor;
#line 140 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp83_ != NULL) {
#line 1349 "main.c"
		AggregateProgressMonitor* _tmp84_;
#line 141 "/home/jens/Source/shotwell/src/main.vala"
		_tmp84_ = aggregate_monitor;
#line 141 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp84_, "Tag.init");
#line 1355 "main.c"
	}
#line 142 "/home/jens/Source/shotwell/src/main.vala"
	_tmp85_ = monitor;
#line 142 "/home/jens/Source/shotwell/src/main.vala"
	_tmp85__target = monitor_target;
#line 142 "/home/jens/Source/shotwell/src/main.vala"
	tag_init (_tmp85_, _tmp85__target);
#line 144 "/home/jens/Source/shotwell/src/main.vala"
	metadata_writer_init ();
#line 145 "/home/jens/Source/shotwell/src/main.vala"
	desktop_integration_init ();
#line 147 "/home/jens/Source/shotwell/src/main.vala"
	_tmp86_ = application_get_instance ();
#line 147 "/home/jens/Source/shotwell/src/main.vala"
	_tmp87_ = _tmp86_;
#line 147 "/home/jens/Source/shotwell/src/main.vala"
	g_signal_emit_by_name (_tmp87_, "init-done");
#line 147 "/home/jens/Source/shotwell/src/main.vala"
	_application_unref0 (_tmp87_);
#line 150 "/home/jens/Source/shotwell/src/main.vala"
	_tmp88_ = aggregate_monitor;
#line 150 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp88_ != NULL) {
#line 1379 "main.c"
		AggregateProgressMonitor* _tmp89_;
#line 151 "/home/jens/Source/shotwell/src/main.vala"
		_tmp89_ = aggregate_monitor;
#line 151 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp89_, "LibraryWindow");
#line 1385 "main.c"
	}
#line 152 "/home/jens/Source/shotwell/src/main.vala"
	_tmp90_ = monitor;
#line 152 "/home/jens/Source/shotwell/src/main.vala"
	_tmp90__target = monitor_target;
#line 152 "/home/jens/Source/shotwell/src/main.vala"
	_tmp91_ = library_window_new (_tmp90_, _tmp90__target);
#line 152 "/home/jens/Source/shotwell/src/main.vala"
	g_object_ref_sink (_tmp91_);
#line 152 "/home/jens/Source/shotwell/src/main.vala"
	library_window = _tmp91_;
#line 154 "/home/jens/Source/shotwell/src/main.vala"
	_tmp92_ = aggregate_monitor;
#line 154 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp92_ != NULL) {
#line 1401 "main.c"
		AggregateProgressMonitor* _tmp93_;
#line 155 "/home/jens/Source/shotwell/src/main.vala"
		_tmp93_ = aggregate_monitor;
#line 155 "/home/jens/Source/shotwell/src/main.vala"
		aggregate_progress_monitor_next_step (_tmp93_, "done");
#line 1407 "main.c"
	}
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	(monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor = NULL;
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target = NULL;
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target_destroy_notify = NULL;
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor = NULL;
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target = NULL;
#line 160 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target_destroy_notify = NULL;
#line 161 "/home/jens/Source/shotwell/src/main.vala"
	_aggregate_progress_monitor_unref0 (aggregate_monitor);
#line 161 "/home/jens/Source/shotwell/src/main.vala"
	aggregate_monitor = NULL;
#line 162 "/home/jens/Source/shotwell/src/main.vala"
	_tmp94_ = progress_dialog;
#line 162 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp94_ != NULL) {
#line 1431 "main.c"
		ProgressDialog* _tmp95_;
#line 163 "/home/jens/Source/shotwell/src/main.vala"
		_tmp95_ = progress_dialog;
#line 163 "/home/jens/Source/shotwell/src/main.vala"
		gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, gtk_widget_get_type (), GtkWidget));
#line 1437 "main.c"
	}
#line 164 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (progress_dialog);
#line 164 "/home/jens/Source/shotwell/src/main.vala"
	progress_dialog = NULL;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
	_tmp96_ = mounts;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
	_tmp96__length1 = mounts_length1;
#line 1447 "main.c"
	{
		gchar** mount_collection = NULL;
		gint mount_collection_length1 = 0;
		gint _mount_collection_size_ = 0;
		gint mount_it = 0;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
		mount_collection = _tmp96_;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
		mount_collection_length1 = _tmp96__length1;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
		for (mount_it = 0; mount_it < _tmp96__length1; mount_it = mount_it + 1) {
#line 1459 "main.c"
			gchar* _tmp97_;
			gchar* mount = NULL;
#line 167 "/home/jens/Source/shotwell/src/main.vala"
			_tmp97_ = g_strdup (mount_collection[mount_it]);
#line 167 "/home/jens/Source/shotwell/src/main.vala"
			mount = _tmp97_;
#line 1466 "main.c"
			{
				LibraryWindow* _tmp98_;
				const gchar* _tmp99_;
#line 168 "/home/jens/Source/shotwell/src/main.vala"
				_tmp98_ = library_window;
#line 168 "/home/jens/Source/shotwell/src/main.vala"
				_tmp99_ = mount;
#line 168 "/home/jens/Source/shotwell/src/main.vala"
				library_window_mounted_camera_shell_notification (_tmp98_, _tmp99_, TRUE);
#line 167 "/home/jens/Source/shotwell/src/main.vala"
				_g_free0 (mount);
#line 1478 "main.c"
			}
		}
	}
#line 170 "/home/jens/Source/shotwell/src/main.vala"
	_tmp100_ = library_window;
#line 170 "/home/jens/Source/shotwell/src/main.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, gtk_widget_get_type (), GtkWidget));
#line 172 "/home/jens/Source/shotwell/src/main.vala"
	_tmp101_ = g_new0 (WelcomeServiceEntry*, 0 + 1);
#line 172 "/home/jens/Source/shotwell/src/main.vala"
	selected_import_entries = _tmp101_;
#line 172 "/home/jens/Source/shotwell/src/main.vala"
	selected_import_entries_length1 = 0;
#line 172 "/home/jens/Source/shotwell/src/main.vala"
	_selected_import_entries_size_ = selected_import_entries_length1;
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	_tmp103_ = config_facade_get_instance ();
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	_tmp104_ = _tmp103_;
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	_tmp105_ = configuration_facade_get_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	_tmp106_ = _tmp105_;
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (_tmp104_);
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp106_) {
#line 1506 "main.c"
		LibraryPhotoSourceCollection* _tmp107_;
		gint _tmp108_;
#line 174 "/home/jens/Source/shotwell/src/main.vala"
		_tmp107_ = library_photo_global;
#line 174 "/home/jens/Source/shotwell/src/main.vala"
		_tmp108_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp107_, TYPE_DATA_COLLECTION, DataCollection));
#line 174 "/home/jens/Source/shotwell/src/main.vala"
		_tmp102_ = _tmp108_ == 0;
#line 1515 "main.c"
	} else {
#line 173 "/home/jens/Source/shotwell/src/main.vala"
		_tmp102_ = FALSE;
#line 1519 "main.c"
	}
#line 173 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp102_) {
#line 1523 "main.c"
		WelcomeDialog* welcome = NULL;
		LibraryWindow* _tmp109_;
		WelcomeDialog* _tmp110_;
		ConfigFacade* _tmp111_;
		ConfigFacade* _tmp112_;
		WelcomeDialog* _tmp113_;
		WelcomeServiceEntry** _tmp114_ = NULL;
		gint _tmp115_;
		gboolean _tmp116_ = FALSE;
		gboolean _tmp117_;
#line 175 "/home/jens/Source/shotwell/src/main.vala"
		_tmp109_ = library_window;
#line 175 "/home/jens/Source/shotwell/src/main.vala"
		_tmp110_ = welcome_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, gtk_window_get_type (), GtkWindow));
#line 175 "/home/jens/Source/shotwell/src/main.vala"
		g_object_ref_sink (_tmp110_);
#line 175 "/home/jens/Source/shotwell/src/main.vala"
		welcome = _tmp110_;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_tmp111_ = config_facade_get_instance ();
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_tmp112_ = _tmp111_;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_tmp113_ = welcome;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_tmp117_ = welcome_dialog_execute (_tmp113_, &_tmp114_, &_tmp115_, &_tmp116_);
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		selected_import_entries = (_vala_array_free (selected_import_entries, selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		selected_import_entries = _tmp114_;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		selected_import_entries_length1 = _tmp115_;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_selected_import_entries_size_ = selected_import_entries_length1;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		do_system_pictures_import = _tmp116_;
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		configuration_facade_set_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp117_);
#line 176 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (_tmp112_);
#line 173 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (welcome);
#line 1566 "main.c"
	} else {
		ConfigFacade* _tmp118_;
		ConfigFacade* _tmp119_;
#line 179 "/home/jens/Source/shotwell/src/main.vala"
		_tmp118_ = config_facade_get_instance ();
#line 179 "/home/jens/Source/shotwell/src/main.vala"
		_tmp119_ = _tmp118_;
#line 179 "/home/jens/Source/shotwell/src/main.vala"
		configuration_facade_set_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp119_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), FALSE);
#line 179 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (_tmp119_);
#line 1578 "main.c"
	}
#line 182 "/home/jens/Source/shotwell/src/main.vala"
	_tmp120_ = selected_import_entries;
#line 182 "/home/jens/Source/shotwell/src/main.vala"
	_tmp120__length1 = selected_import_entries_length1;
#line 182 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp120__length1 > 0) {
#line 1586 "main.c"
		WelcomeServiceEntry** _tmp121_;
		gint _tmp121__length1;
#line 183 "/home/jens/Source/shotwell/src/main.vala"
		do_external_import = TRUE;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
		_tmp121_ = selected_import_entries;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
		_tmp121__length1 = selected_import_entries_length1;
#line 1595 "main.c"
		{
			WelcomeServiceEntry** entry_collection = NULL;
			gint entry_collection_length1 = 0;
			gint _entry_collection_size_ = 0;
			gint entry_it = 0;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
			entry_collection = _tmp121_;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
			entry_collection_length1 = _tmp121__length1;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
			for (entry_it = 0; entry_it < _tmp121__length1; entry_it = entry_it + 1) {
#line 1607 "main.c"
				WelcomeServiceEntry* _tmp122_;
				WelcomeServiceEntry* entry = NULL;
#line 184 "/home/jens/Source/shotwell/src/main.vala"
				_tmp122_ = _g_object_ref0 (entry_collection[entry_it]);
#line 184 "/home/jens/Source/shotwell/src/main.vala"
				entry = _tmp122_;
#line 1614 "main.c"
				{
					WelcomeServiceEntry* _tmp123_;
#line 185 "/home/jens/Source/shotwell/src/main.vala"
					_tmp123_ = entry;
#line 185 "/home/jens/Source/shotwell/src/main.vala"
					welcome_service_entry_execute (_tmp123_);
#line 184 "/home/jens/Source/shotwell/src/main.vala"
					_g_object_unref0 (entry);
#line 1623 "main.c"
				}
			}
		}
	}
#line 187 "/home/jens/Source/shotwell/src/main.vala"
	_tmp124_ = do_system_pictures_import;
#line 187 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp124_) {
#line 191 "/home/jens/Source/shotwell/src/main.vala"
		run_system_pictures_import (NULL);
#line 1634 "main.c"
	}
#line 194 "/home/jens/Source/shotwell/src/main.vala"
	_tmp125_ = startup_timer;
#line 194 "/home/jens/Source/shotwell/src/main.vala"
	_tmp126_ = g_timer_elapsed (_tmp125_, NULL);
#line 194 "/home/jens/Source/shotwell/src/main.vala"
	g_debug ("main.vala:194: %lf seconds to Gtk.main()", _tmp126_);
#line 196 "/home/jens/Source/shotwell/src/main.vala"
	_tmp127_ = application_get_instance ();
#line 196 "/home/jens/Source/shotwell/src/main.vala"
	_tmp128_ = _tmp127_;
#line 196 "/home/jens/Source/shotwell/src/main.vala"
	application_start (_tmp128_, NULL, 0);
#line 196 "/home/jens/Source/shotwell/src/main.vala"
	_application_unref0 (_tmp128_);
#line 198 "/home/jens/Source/shotwell/src/main.vala"
	desktop_integration_terminate ();
#line 199 "/home/jens/Source/shotwell/src/main.vala"
	metadata_writer_terminate ();
#line 200 "/home/jens/Source/shotwell/src/main.vala"
	tag_terminate ();
#line 201 "/home/jens/Source/shotwell/src/main.vala"
	event_terminate ();
#line 202 "/home/jens/Source/shotwell/src/main.vala"
	library_photo_terminate ();
#line 203 "/home/jens/Source/shotwell/src/main.vala"
	media_collection_registry_terminate ();
#line 204 "/home/jens/Source/shotwell/src/main.vala"
	library_monitor_pool_terminate ();
#line 205 "/home/jens/Source/shotwell/src/main.vala"
	tombstone_terminate ();
#line 206 "/home/jens/Source/shotwell/src/main.vala"
	thumbnail_cache_terminate ();
#line 207 "/home/jens/Source/shotwell/src/main.vala"
	video_terminate ();
#line 208 "/home/jens/Source/shotwell/src/main.vala"
	library_app_terminate ();
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	selected_import_entries = (_vala_array_free (selected_import_entries, selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (library_window);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_media_collection_registry_unref0 (registry);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	(monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	monitor = NULL;
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target = NULL;
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	monitor_target_destroy_notify = NULL;
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_aggregate_progress_monitor_unref0 (aggregate_monitor);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (progress_dialog);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_g_free0 (app_version);
#line 15 "/home/jens/Source/shotwell/src/main.vala"
	_g_free0 (errormsg);
#line 1694 "main.c"
}


static void _report_system_pictures_import_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
#line 223 "/home/jens/Source/shotwell/src/main.vala"
	report_system_pictures_import (manifest, import_roll);
#line 1701 "main.c"
}


void run_system_pictures_import (ImportManifest* external_exclusion_manifest) {
	gboolean _tmp0_;
	GeeArrayList* jobs = NULL;
	GeeArrayList* _tmp1_;
	GeeArrayList* _tmp2_;
	GFile* _tmp3_;
	GFile* _tmp4_;
	FileImportJob* _tmp5_;
	FileImportJob* _tmp6_;
	LibraryWindow* library_window = NULL;
	AppWindow* _tmp7_;
	BatchImport* batch_import = NULL;
	GeeArrayList* _tmp8_;
	ImportManifest* _tmp9_;
	BatchImport* _tmp10_;
	LibraryWindow* _tmp11_;
	BatchImport* _tmp12_;
	LibraryWindow* _tmp13_;
#line 214 "/home/jens/Source/shotwell/src/main.vala"
	g_return_if_fail ((external_exclusion_manifest == NULL) || IS_IMPORT_MANIFEST (external_exclusion_manifest));
#line 215 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0_ = do_system_pictures_import;
#line 215 "/home/jens/Source/shotwell/src/main.vala"
	if (!_tmp0_) {
#line 216 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 1731 "main.c"
	}
#line 218 "/home/jens/Source/shotwell/src/main.vala"
	_tmp1_ = gee_array_list_new (TYPE_FILE_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, (GDestroyNotify) batch_import_job_unref, NULL, NULL, NULL);
#line 218 "/home/jens/Source/shotwell/src/main.vala"
	jobs = _tmp1_;
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_tmp2_ = jobs;
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_tmp3_ = app_dirs_get_import_dir ();
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_ = _tmp3_;
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_tmp5_ = file_import_job_new (_tmp4_, FALSE);
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_tmp6_ = _tmp5_;
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp6_);
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_batch_import_job_unref0 (_tmp6_);
#line 219 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (_tmp4_);
#line 221 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_ = app_window_get_instance ();
#line 221 "/home/jens/Source/shotwell/src/main.vala"
	library_window = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_LIBRARY_WINDOW, LibraryWindow);
#line 223 "/home/jens/Source/shotwell/src/main.vala"
	_tmp8_ = jobs;
#line 223 "/home/jens/Source/shotwell/src/main.vala"
	_tmp9_ = external_exclusion_manifest;
#line 223 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable), "startup_import", _report_system_pictures_import_batch_import_import_reporter, NULL, NULL, NULL, NULL, NULL, _tmp9_);
#line 223 "/home/jens/Source/shotwell/src/main.vala"
	batch_import = _tmp10_;
#line 225 "/home/jens/Source/shotwell/src/main.vala"
	_tmp11_ = library_window;
#line 225 "/home/jens/Source/shotwell/src/main.vala"
	_tmp12_ = batch_import;
#line 225 "/home/jens/Source/shotwell/src/main.vala"
	library_window_enqueue_batch_import (_tmp11_, _tmp12_, TRUE);
#line 227 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_ = library_window;
#line 227 "/home/jens/Source/shotwell/src/main.vala"
	library_window_switch_to_import_queue_page (_tmp13_);
#line 214 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (batch_import);
#line 214 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (library_window);
#line 214 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (jobs);
#line 1781 "main.c"
}


void report_system_pictures_import (ImportManifest* manifest, BatchImportRoll* import_roll) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
	ImportManifest* _tmp6_;
#line 230 "/home/jens/Source/shotwell/src/main.vala"
	g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
#line 230 "/home/jens/Source/shotwell/src/main.vala"
	g_return_if_fail (IS_BATCH_IMPORT_ROLL (import_roll));
#line 237 "/home/jens/Source/shotwell/src/main.vala"
	_tmp1_ = do_external_import;
#line 237 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp1_) {
#line 1797 "main.c"
		ImportManifest* _tmp2_;
		GeeList* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp2_ = manifest;
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp3_ = _tmp2_->all;
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp5_ = _tmp4_;
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp0_ = _tmp5_ == 0;
#line 1812 "main.c"
	} else {
#line 237 "/home/jens/Source/shotwell/src/main.vala"
		_tmp0_ = FALSE;
#line 1816 "main.c"
	}
#line 237 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp0_) {
#line 238 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 1822 "main.c"
	}
#line 240 "/home/jens/Source/shotwell/src/main.vala"
	_tmp6_ = manifest;
#line 240 "/home/jens/Source/shotwell/src/main.vala"
	import_ui_report_manifest (_tmp6_, TRUE, NULL);
#line 1828 "main.c"
}


void editing_exec (const gchar* filename) {
	GFile* initial_file = NULL;
	const gchar* _tmp0_;
	GFile* _tmp1_;
	GFile* _tmp2_;
	DirectWindow* direct_window = NULL;
	GFile* _tmp5_;
	DirectWindow* _tmp6_;
	DirectWindow* _tmp7_;
	GTimer* _tmp8_;
	gdouble _tmp9_;
	Application* _tmp10_;
	Application* _tmp11_;
	GError * _inner_error_ = NULL;
#line 243 "/home/jens/Source/shotwell/src/main.vala"
	g_return_if_fail (filename != NULL);
#line 244 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0_ = filename;
#line 244 "/home/jens/Source/shotwell/src/main.vala"
	_tmp1_ = g_file_new_for_commandline_arg (_tmp0_);
#line 244 "/home/jens/Source/shotwell/src/main.vala"
	initial_file = _tmp1_;
#line 247 "/home/jens/Source/shotwell/src/main.vala"
	_tmp2_ = initial_file;
#line 247 "/home/jens/Source/shotwell/src/main.vala"
	direct_preconfigure (_tmp2_);
#line 248 "/home/jens/Source/shotwell/src/main.vala"
	db_preconfigure (NULL);
#line 1860 "main.c"
	{
#line 252 "/home/jens/Source/shotwell/src/main.vala"
		direct_app_init (&_inner_error_);
#line 252 "/home/jens/Source/shotwell/src/main.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1866 "main.c"
			goto __catch224_g_error;
		}
	}
	goto __finally224;
	__catch224_g_error:
	{
		GError* err = NULL;
		GError* _tmp3_;
		const gchar* _tmp4_;
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		err = _inner_error_;
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		_inner_error_ = NULL;
#line 254 "/home/jens/Source/shotwell/src/main.vala"
		_tmp3_ = err;
#line 254 "/home/jens/Source/shotwell/src/main.vala"
		_tmp4_ = _tmp3_->message;
#line 254 "/home/jens/Source/shotwell/src/main.vala"
		app_window_panic (_tmp4_);
#line 256 "/home/jens/Source/shotwell/src/main.vala"
		_g_error_free0 (err);
#line 256 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (initial_file);
#line 256 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 1892 "main.c"
	}
	__finally224:
#line 251 "/home/jens/Source/shotwell/src/main.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (initial_file);
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		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);
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		g_clear_error (&_inner_error_);
#line 251 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 1905 "main.c"
	}
#line 260 "/home/jens/Source/shotwell/src/main.vala"
	desktop_integration_init ();
#line 266 "/home/jens/Source/shotwell/src/main.vala"
	_tmp5_ = initial_file;
#line 266 "/home/jens/Source/shotwell/src/main.vala"
	_tmp6_ = direct_window_new (_tmp5_);
#line 266 "/home/jens/Source/shotwell/src/main.vala"
	g_object_ref_sink (_tmp6_);
#line 266 "/home/jens/Source/shotwell/src/main.vala"
	direct_window = _tmp6_;
#line 267 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_ = direct_window;
#line 267 "/home/jens/Source/shotwell/src/main.vala"
	gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
#line 269 "/home/jens/Source/shotwell/src/main.vala"
	_tmp8_ = startup_timer;
#line 269 "/home/jens/Source/shotwell/src/main.vala"
	_tmp9_ = g_timer_elapsed (_tmp8_, NULL);
#line 269 "/home/jens/Source/shotwell/src/main.vala"
	g_debug ("main.vala:269: %lf seconds to Gtk.main()", _tmp9_);
#line 271 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_ = application_get_instance ();
#line 271 "/home/jens/Source/shotwell/src/main.vala"
	_tmp11_ = _tmp10_;
#line 271 "/home/jens/Source/shotwell/src/main.vala"
	application_start (_tmp11_, NULL, 0);
#line 271 "/home/jens/Source/shotwell/src/main.vala"
	_application_unref0 (_tmp11_);
#line 273 "/home/jens/Source/shotwell/src/main.vala"
	desktop_integration_terminate ();
#line 276 "/home/jens/Source/shotwell/src/main.vala"
	direct_app_terminate ();
#line 243 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (direct_window);
#line 243 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (initial_file);
#line 1943 "main.c"
}


static GOptionEntry* _vala_array_dup26 (GOptionEntry* self, int length) {
#line 290 "/home/jens/Source/shotwell/src/main.vala"
	return g_memdup (self, length * sizeof (GOptionEntry));
#line 1950 "main.c"
}


static void _vala_array_add70 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value) {
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 294 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 294 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (GOptionEntry, *array, *size);
#line 1961 "main.c"
	}
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = *value;
#line 1965 "main.c"
}


static void _vala_array_add71 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value) {
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 298 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 298 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (GOptionEntry, *array, *size);
#line 1976 "main.c"
	}
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = *value;
#line 1980 "main.c"
}


static void _vala_array_add72 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value) {
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 302 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 302 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (GOptionEntry, *array, *size);
#line 1991 "main.c"
	}
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = *value;
#line 1995 "main.c"
}


static void _vala_array_add73 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value) {
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 306 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 306 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (GOptionEntry, *array, *size);
#line 2006 "main.c"
	}
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = *value;
#line 2010 "main.c"
}


static void _vala_array_add74 (GOptionEntry* * array, int* length, int* size, const GOptionEntry* value) {
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 309 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 309 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (GOptionEntry, *array, *size);
#line 2021 "main.c"
	}
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = *value;
#line 2025 "main.c"
}


static GOptionEntry* _vala_array_dup27 (GOptionEntry* self, int length) {
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	return g_memdup (self, length * sizeof (GOptionEntry));
#line 2032 "main.c"
}


GOptionEntry* commandline_options_get_options (int* result_length1) {
	GOptionEntry* result = NULL;
	GOptionEntry* _tmp0_;
	gint _tmp0__length1;
	GOptionEntry datadir = {0};
	GOptionEntry _tmp4_ = {0};
	GOptionEntry* _tmp5_;
	gint _tmp5__length1;
	GOptionEntry _tmp6_;
	GOptionEntry no_monitoring = {0};
	GOptionEntry _tmp7_ = {0};
	GOptionEntry* _tmp8_;
	gint _tmp8__length1;
	GOptionEntry _tmp9_;
	GOptionEntry no_startup = {0};
	GOptionEntry _tmp10_ = {0};
	GOptionEntry* _tmp11_;
	gint _tmp11__length1;
	GOptionEntry _tmp12_;
	GOptionEntry version = {0};
	GOptionEntry _tmp13_ = {0};
	GOptionEntry* _tmp14_;
	gint _tmp14__length1;
	GOptionEntry _tmp15_;
	GOptionEntry terminator = {0};
	GOptionEntry _tmp16_ = {0};
	GOptionEntry* _tmp17_;
	gint _tmp17__length1;
	GOptionEntry _tmp18_;
	GOptionEntry* _tmp19_;
	gint _tmp19__length1;
	GOptionEntry* _tmp20_;
	gint _tmp20__length1;
	GOptionEntry* _tmp21_;
	gint _tmp21__length1;
#line 289 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0_ = commandline_options_entries;
#line 289 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0__length1 = commandline_options_entries_length1;
#line 289 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp0_ != NULL) {
#line 2077 "main.c"
		GOptionEntry* _tmp1_;
		gint _tmp1__length1;
		GOptionEntry* _tmp2_;
		gint _tmp2__length1;
		GOptionEntry* _tmp3_;
		gint _tmp3__length1;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp1_ = commandline_options_entries;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp1__length1 = commandline_options_entries_length1;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup26 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp2__length1 = _tmp1__length1;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp3_ = _tmp2_;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		_tmp3__length1 = _tmp2__length1;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		if (result_length1) {
#line 290 "/home/jens/Source/shotwell/src/main.vala"
			*result_length1 = _tmp3__length1;
#line 2100 "main.c"
		}
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		result = _tmp3_;
#line 290 "/home/jens/Source/shotwell/src/main.vala"
		return result;
#line 2106 "main.c"
	}
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.long_name = "datadir";
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.short_name = 'd';
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.flags = 0;
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.arg = G_OPTION_ARG_FILENAME;
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.arg_data = &commandline_options_data_dir;
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.description = _ ("Path to Shotwell’s private data");
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_.arg_description = _ ("DIRECTORY");
#line 292 "/home/jens/Source/shotwell/src/main.vala"
	datadir = _tmp4_;
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	_tmp5_ = commandline_options_entries;
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	_tmp5__length1 = commandline_options_entries_length1;
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	_tmp6_ = datadir;
#line 294 "/home/jens/Source/shotwell/src/main.vala"
	_vala_array_add70 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp6_);
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.long_name = "no-runtime-monitoring";
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.short_name = (gchar) 0;
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.flags = 0;
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.arg = G_OPTION_ARG_NONE;
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.arg_data = &commandline_options_no_runtime_monitoring;
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.description = _ ("Do not monitor library directory at runtime for changes");
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	_tmp7_.arg_description = NULL;
#line 296 "/home/jens/Source/shotwell/src/main.vala"
	no_monitoring = _tmp7_;
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	_tmp8_ = commandline_options_entries;
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	_tmp8__length1 = commandline_options_entries_length1;
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	_tmp9_ = no_monitoring;
#line 298 "/home/jens/Source/shotwell/src/main.vala"
	_vala_array_add71 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp9_);
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.long_name = "no-startup-progress";
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.short_name = (gchar) 0;
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.flags = 0;
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.arg = G_OPTION_ARG_NONE;
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.arg_data = &commandline_options_no_startup_progress;
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.description = _ ("Don’t display startup progress meter");
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	_tmp10_.arg_description = NULL;
#line 300 "/home/jens/Source/shotwell/src/main.vala"
	no_startup = _tmp10_;
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	_tmp11_ = commandline_options_entries;
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	_tmp11__length1 = commandline_options_entries_length1;
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	_tmp12_ = no_startup;
#line 302 "/home/jens/Source/shotwell/src/main.vala"
	_vala_array_add72 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp12_);
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.long_name = "version";
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.short_name = 'V';
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.flags = 0;
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.arg = G_OPTION_ARG_NONE;
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.arg_data = &commandline_options_show_version;
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.description = _ ("Show the application’s version");
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	_tmp13_.arg_description = NULL;
#line 304 "/home/jens/Source/shotwell/src/main.vala"
	version = _tmp13_;
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	_tmp14_ = commandline_options_entries;
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	_tmp14__length1 = commandline_options_entries_length1;
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	_tmp15_ = version;
#line 306 "/home/jens/Source/shotwell/src/main.vala"
	_vala_array_add73 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp15_);
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.long_name = NULL;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.short_name = (gchar) 0;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.flags = 0;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.arg = 0;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.arg_data = NULL;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.description = NULL;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	_tmp16_.arg_description = NULL;
#line 308 "/home/jens/Source/shotwell/src/main.vala"
	terminator = _tmp16_;
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	_tmp17_ = commandline_options_entries;
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	_tmp17__length1 = commandline_options_entries_length1;
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	_tmp18_ = terminator;
#line 309 "/home/jens/Source/shotwell/src/main.vala"
	_vala_array_add74 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp18_);
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp19_ = commandline_options_entries;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp19__length1 = commandline_options_entries_length1;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp20_ = (_tmp19_ != NULL) ? _vala_array_dup27 (_tmp19_, _tmp19__length1) : ((gpointer) _tmp19_);
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp20__length1 = _tmp19__length1;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp21_ = _tmp20_;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	_tmp21__length1 = _tmp20__length1;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	if (result_length1) {
#line 311 "/home/jens/Source/shotwell/src/main.vala"
		*result_length1 = _tmp21__length1;
#line 2244 "main.c"
	}
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	result = _tmp21_;
#line 311 "/home/jens/Source/shotwell/src/main.vala"
	return result;
#line 2250 "main.c"
}


static void _vala_array_add75 (gchar** * array, int* length, int* size, gchar* value) {
#line 376 "/home/jens/Source/shotwell/src/main.vala"
	if ((*length) == (*size)) {
#line 376 "/home/jens/Source/shotwell/src/main.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
		*array = g_renew (gchar*, *array, (*size) + 1);
#line 2261 "main.c"
	}
#line 376 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[(*length)++] = value;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
	(*array)[*length] = NULL;
#line 2267 "main.c"
}


static gboolean string_contains (const gchar* self, const gchar* needle) {
	gboolean result = FALSE;
	const gchar* _tmp0_;
	gchar* _tmp1_;
#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, FALSE);
#line 1403 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	g_return_val_if_fail (needle != NULL, FALSE);
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp0_ = needle;
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	result = _tmp1_ != NULL;
#line 1404 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	return result;
#line 2287 "main.c"
}


void _vala_main (gchar** args, int args_length1) {
	gchar** _tmp0_;
	gint _tmp0__length1;
	const gchar* _tmp1_;
	GFile* _tmp2_;
	GFile* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp20_;
	gchar** mounts = NULL;
	gchar** _tmp21_;
	gint mounts_length1;
	gint _mounts_size_;
	gchar* filename = NULL;
	const gchar* _tmp42_ = NULL;
	const gchar* _tmp43_;
	gboolean _tmp44_;
	GDateTime* _tmp51_;
	GDateTime* _tmp52_;
	const gchar* _tmp53_;
	const gchar* _tmp54_;
	gboolean _tmp55_;
	const gchar* _tmp56_;
	gchar** _tmp58_;
	gint _tmp58__length1;
	GTimer* _tmp59_;
	GTimer* _tmp60_;
	const gchar* _tmp61_;
	gboolean _tmp62_;
	gboolean _tmp65_ = FALSE;
	const gchar* _tmp66_;
	gboolean _tmp67_;
	GError * _inner_error_ = NULL;
#line 319 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0_ = args;
#line 319 "/home/jens/Source/shotwell/src/main.vala"
	_tmp0__length1 = args_length1;
#line 319 "/home/jens/Source/shotwell/src/main.vala"
	_tmp1_ = _tmp0_[0];
#line 319 "/home/jens/Source/shotwell/src/main.vala"
	app_dirs_init (_tmp1_);
#line 324 "/home/jens/Source/shotwell/src/main.vala"
	gexiv2_initialize ();
#line 325 "/home/jens/Source/shotwell/src/main.vala"
	gexiv2_log_use_glib_logging ();
#line 329 "/home/jens/Source/shotwell/src/main.vala"
	gexiv2_log_set_level (GEXIV2_LOG_LEVEL_DEBUG);
#line 335 "/home/jens/Source/shotwell/src/main.vala"
	_tmp2_ = app_dirs_get_install_dir ();
#line 335 "/home/jens/Source/shotwell/src/main.vala"
	_tmp3_ = _tmp2_;
#line 335 "/home/jens/Source/shotwell/src/main.vala"
	_tmp4_ = _tmp3_ == NULL;
#line 335 "/home/jens/Source/shotwell/src/main.vala"
	_g_object_unref0 (_tmp3_);
#line 335 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp4_) {
#line 2347 "main.c"
		GFile* _tmp5_;
		GFile* _tmp6_;
		gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp5_ = app_dirs_get_exec_dir ();
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp6_ = _tmp5_;
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp7_ = g_file_get_path (_tmp6_);
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp8_ = _tmp7_;
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp9_ = g_strconcat (_tmp8_, "/misc", NULL);
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_tmp10_ = _tmp9_;
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		g_setenv ("GSETTINGS_SCHEMA_DIR", _tmp10_, TRUE);
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (_tmp10_);
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (_tmp8_);
#line 336 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (_tmp6_);
#line 2374 "main.c"
	}
	{
		gint _tmp11_;
		GOptionEntry* _tmp12_;
		GOptionEntry* _tmp13_;
		gint _tmp13__length1;
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		_tmp12_ = commandline_options_get_options (&_tmp11_);
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		_tmp13_ = _tmp12_;
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		_tmp13__length1 = _tmp11_;
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		gtk_init_with_args (&args_length1, &args, _ ("[FILE]"), _tmp13_, RESOURCES_APP_GETTEXT_PACKAGE, &_inner_error_);
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		_tmp13_ = (g_free (_tmp13_), NULL);
#line 342 "/home/jens/Source/shotwell/src/main.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2393 "main.c"
			goto __catch225_g_error;
		}
	}
	goto __finally225;
	__catch225_g_error:
	{
		GError* e = NULL;
		GError* _tmp14_;
		const gchar* _tmp15_;
		gchar* _tmp16_;
		gchar* _tmp17_;
		gchar** _tmp18_;
		gint _tmp18__length1;
		const gchar* _tmp19_;
#line 341 "/home/jens/Source/shotwell/src/main.vala"
		e = _inner_error_;
#line 341 "/home/jens/Source/shotwell/src/main.vala"
		_inner_error_ = NULL;
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		_tmp14_ = e;
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		_tmp15_ = _tmp14_->message;
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		_tmp16_ = g_strconcat (_tmp15_, "\n", NULL);
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		_tmp17_ = _tmp16_;
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		g_print ("%s", _tmp17_);
#line 345 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (_tmp17_);
#line 346 "/home/jens/Source/shotwell/src/main.vala"
		_tmp18_ = args;
#line 346 "/home/jens/Source/shotwell/src/main.vala"
		_tmp18__length1 = args_length1;
#line 346 "/home/jens/Source/shotwell/src/main.vala"
		_tmp19_ = _tmp18_[0];
#line 346 "/home/jens/Source/shotwell/src/main.vala"
		g_print (_ ("Run “%s --help” to see a full list of available command line options.\n"), _tmp19_);
#line 347 "/home/jens/Source/shotwell/src/main.vala"
		app_dirs_terminate ();
#line 348 "/home/jens/Source/shotwell/src/main.vala"
		_g_error_free0 (e);
#line 348 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 2438 "main.c"
	}
	__finally225:
#line 341 "/home/jens/Source/shotwell/src/main.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 341 "/home/jens/Source/shotwell/src/main.vala"
		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);
#line 341 "/home/jens/Source/shotwell/src/main.vala"
		g_clear_error (&_inner_error_);
#line 341 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 2449 "main.c"
	}
#line 351 "/home/jens/Source/shotwell/src/main.vala"
	_tmp20_ = commandline_options_show_version;
#line 351 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp20_) {
#line 352 "/home/jens/Source/shotwell/src/main.vala"
		if (RESOURCES_GIT_VERSION != NULL) {
#line 353 "/home/jens/Source/shotwell/src/main.vala"
			g_print ("%s %s (%s)\n", RESOURCES_APP_TITLE, RESOURCES_APP_VERSION, RESOURCES_GIT_VERSION);
#line 2459 "main.c"
		} else {
#line 355 "/home/jens/Source/shotwell/src/main.vala"
			g_print ("%s %s\n", RESOURCES_APP_TITLE, RESOURCES_APP_VERSION);
#line 2463 "main.c"
		}
#line 357 "/home/jens/Source/shotwell/src/main.vala"
		app_dirs_terminate ();
#line 359 "/home/jens/Source/shotwell/src/main.vala"
		return;
#line 2469 "main.c"
	}
#line 369 "/home/jens/Source/shotwell/src/main.vala"
	_tmp21_ = g_new0 (gchar*, 0 + 1);
#line 369 "/home/jens/Source/shotwell/src/main.vala"
	mounts = _tmp21_;
#line 369 "/home/jens/Source/shotwell/src/main.vala"
	mounts_length1 = 0;
#line 369 "/home/jens/Source/shotwell/src/main.vala"
	_mounts_size_ = mounts_length1;
#line 370 "/home/jens/Source/shotwell/src/main.vala"
	filename = NULL;
#line 2481 "main.c"
	{
		gint ctr = 0;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
		ctr = 1;
#line 2486 "main.c"
		{
			gboolean _tmp22_ = FALSE;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
			_tmp22_ = TRUE;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
			while (TRUE) {
#line 2493 "main.c"
				gint _tmp24_;
				gchar** _tmp25_;
				gint _tmp25__length1;
				gchar* arg = NULL;
				gchar** _tmp26_;
				gint _tmp26__length1;
				gint _tmp27_;
				const gchar* _tmp28_;
				gchar* _tmp29_;
				const gchar* _tmp30_;
				gboolean _tmp31_;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				if (!_tmp22_) {
#line 2507 "main.c"
					gint _tmp23_;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
					_tmp23_ = ctr;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
					ctr = _tmp23_ + 1;
#line 2513 "main.c"
				}
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				_tmp22_ = FALSE;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				_tmp24_ = ctr;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				_tmp25_ = args;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				_tmp25__length1 = args_length1;
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				if (!(_tmp24_ < _tmp25__length1)) {
#line 372 "/home/jens/Source/shotwell/src/main.vala"
					break;
#line 2527 "main.c"
				}
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				_tmp26_ = args;
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				_tmp26__length1 = args_length1;
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				_tmp27_ = ctr;
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				_tmp28_ = _tmp26_[_tmp27_];
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				_tmp29_ = g_strdup (_tmp28_);
#line 373 "/home/jens/Source/shotwell/src/main.vala"
				arg = _tmp29_;
#line 375 "/home/jens/Source/shotwell/src/main.vala"
				_tmp30_ = arg;
#line 375 "/home/jens/Source/shotwell/src/main.vala"
				_tmp31_ = library_window_is_mount_uri_supported (_tmp30_);
#line 375 "/home/jens/Source/shotwell/src/main.vala"
				if (_tmp31_) {
#line 2547 "main.c"
					gchar** _tmp32_;
					gint _tmp32__length1;
					const gchar* _tmp33_;
					gchar* _tmp34_;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
					_tmp32_ = mounts;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
					_tmp32__length1 = mounts_length1;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
					_tmp33_ = arg;
#line 376 "/home/jens/Source/shotwell/src/main.vala"
					_tmp34_ = g_strdup (_tmp33_);
#line 376 "/home/jens/Source/shotwell/src/main.vala"
					_vala_array_add75 (&mounts, &mounts_length1, &_mounts_size_, _tmp34_);
#line 2562 "main.c"
				} else {
					gboolean _tmp35_ = FALSE;
					const gchar* _tmp36_;
					gboolean _tmp37_;
#line 377 "/home/jens/Source/shotwell/src/main.vala"
					_tmp36_ = filename;
#line 377 "/home/jens/Source/shotwell/src/main.vala"
					_tmp37_ = is_string_empty (_tmp36_);
#line 377 "/home/jens/Source/shotwell/src/main.vala"
					if (_tmp37_) {
#line 2573 "main.c"
						const gchar* _tmp38_;
						gboolean _tmp39_;
#line 377 "/home/jens/Source/shotwell/src/main.vala"
						_tmp38_ = arg;
#line 377 "/home/jens/Source/shotwell/src/main.vala"
						_tmp39_ = string_contains (_tmp38_, "://");
#line 377 "/home/jens/Source/shotwell/src/main.vala"
						_tmp35_ = !_tmp39_;
#line 2582 "main.c"
					} else {
#line 377 "/home/jens/Source/shotwell/src/main.vala"
						_tmp35_ = FALSE;
#line 2586 "main.c"
					}
#line 377 "/home/jens/Source/shotwell/src/main.vala"
					if (_tmp35_) {
#line 2590 "main.c"
						const gchar* _tmp40_;
						gchar* _tmp41_;
#line 378 "/home/jens/Source/shotwell/src/main.vala"
						_tmp40_ = arg;
#line 378 "/home/jens/Source/shotwell/src/main.vala"
						_tmp41_ = g_strdup (_tmp40_);
#line 378 "/home/jens/Source/shotwell/src/main.vala"
						_g_free0 (filename);
#line 378 "/home/jens/Source/shotwell/src/main.vala"
						filename = _tmp41_;
#line 2601 "main.c"
					}
				}
#line 372 "/home/jens/Source/shotwell/src/main.vala"
				_g_free0 (arg);
#line 2606 "main.c"
			}
		}
	}
#line 382 "/home/jens/Source/shotwell/src/main.vala"
	_tmp43_ = filename;
#line 382 "/home/jens/Source/shotwell/src/main.vala"
	_tmp44_ = is_string_empty (_tmp43_);
#line 382 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp44_) {
#line 382 "/home/jens/Source/shotwell/src/main.vala"
		_tmp42_ = DEBUG_LIBRARY_PREFIX;
#line 2618 "main.c"
	} else {
#line 382 "/home/jens/Source/shotwell/src/main.vala"
		_tmp42_ = DEBUG_VIEWER_PREFIX;
#line 2622 "main.c"
	}
#line 382 "/home/jens/Source/shotwell/src/main.vala"
	debug_init (_tmp42_);
#line 384 "/home/jens/Source/shotwell/src/main.vala"
	if (RESOURCES_GIT_VERSION != NULL) {
#line 2628 "main.c"
		const gchar* _tmp45_ = NULL;
		const gchar* _tmp46_;
		gboolean _tmp47_;
#line 386 "/home/jens/Source/shotwell/src/main.vala"
		_tmp46_ = filename;
#line 386 "/home/jens/Source/shotwell/src/main.vala"
		_tmp47_ = is_string_empty (_tmp46_);
#line 386 "/home/jens/Source/shotwell/src/main.vala"
		if (_tmp47_) {
#line 386 "/home/jens/Source/shotwell/src/main.vala"
			_tmp45_ = RESOURCES_APP_LIBRARY_ROLE;
#line 2640 "main.c"
		} else {
#line 386 "/home/jens/Source/shotwell/src/main.vala"
			_tmp45_ = RESOURCES_APP_DIRECT_ROLE;
#line 2644 "main.c"
		}
#line 385 "/home/jens/Source/shotwell/src/main.vala"
		g_message ("main.vala:385: Shotwell %s %s (%s)", _tmp45_, RESOURCES_APP_VERSION, RESOURCES_GIT_VERSION);
#line 2648 "main.c"
	} else {
		const gchar* _tmp48_ = NULL;
		const gchar* _tmp49_;
		gboolean _tmp50_;
#line 390 "/home/jens/Source/shotwell/src/main.vala"
		_tmp49_ = filename;
#line 390 "/home/jens/Source/shotwell/src/main.vala"
		_tmp50_ = is_string_empty (_tmp49_);
#line 390 "/home/jens/Source/shotwell/src/main.vala"
		if (_tmp50_) {
#line 390 "/home/jens/Source/shotwell/src/main.vala"
			_tmp48_ = RESOURCES_APP_LIBRARY_ROLE;
#line 2661 "main.c"
		} else {
#line 390 "/home/jens/Source/shotwell/src/main.vala"
			_tmp48_ = RESOURCES_APP_DIRECT_ROLE;
#line 2665 "main.c"
		}
#line 389 "/home/jens/Source/shotwell/src/main.vala"
		g_message ("main.vala:389: Shotwell %s %s", _tmp48_, RESOURCES_APP_VERSION);
#line 2669 "main.c"
	}
#line 393 "/home/jens/Source/shotwell/src/main.vala"
	_tmp51_ = g_date_time_new_now_local ();
#line 393 "/home/jens/Source/shotwell/src/main.vala"
	_tmp52_ = _tmp51_;
#line 393 "/home/jens/Source/shotwell/src/main.vala"
	_tmp53_ = g_date_time_get_timezone_abbreviation (_tmp52_);
#line 393 "/home/jens/Source/shotwell/src/main.vala"
	g_debug ("main.vala:393: Shotwell is running in timezone %s", _tmp53_);
#line 393 "/home/jens/Source/shotwell/src/main.vala"
	_g_date_time_unref0 (_tmp52_);
#line 398 "/home/jens/Source/shotwell/src/main.vala"
	_tmp54_ = filename;
#line 398 "/home/jens/Source/shotwell/src/main.vala"
	_tmp55_ = is_string_empty (_tmp54_);
#line 398 "/home/jens/Source/shotwell/src/main.vala"
	application_init (!_tmp55_);
#line 401 "/home/jens/Source/shotwell/src/main.vala"
	_tmp56_ = commandline_options_data_dir;
#line 401 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp56_ != NULL) {
#line 2691 "main.c"
		const gchar* _tmp57_;
#line 402 "/home/jens/Source/shotwell/src/main.vala"
		_tmp57_ = commandline_options_data_dir;
#line 402 "/home/jens/Source/shotwell/src/main.vala"
		app_dirs_set_data_dir (_tmp57_);
#line 2697 "main.c"
	} else {
#line 404 "/home/jens/Source/shotwell/src/main.vala"
		app_dirs_try_migrate_data ();
#line 2701 "main.c"
	}
#line 407 "/home/jens/Source/shotwell/src/main.vala"
	app_dirs_verify_data_dir ();
#line 408 "/home/jens/Source/shotwell/src/main.vala"
	app_dirs_verify_cache_dir ();
#line 411 "/home/jens/Source/shotwell/src/main.vala"
	_tmp58_ = args;
#line 411 "/home/jens/Source/shotwell/src/main.vala"
	_tmp58__length1 = args_length1;
#line 411 "/home/jens/Source/shotwell/src/main.vala"
	international_support_init (RESOURCES_APP_GETTEXT_PACKAGE, _tmp58_, _tmp58__length1, INTERNATIONAL_SUPPORT_SYSTEM_LOCALE);
#line 413 "/home/jens/Source/shotwell/src/main.vala"
	_tmp59_ = g_timer_new ();
#line 413 "/home/jens/Source/shotwell/src/main.vala"
	_g_timer_destroy0 (startup_timer);
#line 413 "/home/jens/Source/shotwell/src/main.vala"
	startup_timer = _tmp59_;
#line 414 "/home/jens/Source/shotwell/src/main.vala"
	_tmp60_ = startup_timer;
#line 414 "/home/jens/Source/shotwell/src/main.vala"
	g_timer_start (_tmp60_);
#line 417 "/home/jens/Source/shotwell/src/main.vala"
	g_set_application_name (RESOURCES_APP_TITLE);
#line 421 "/home/jens/Source/shotwell/src/main.vala"
	resources_init ();
#line 426 "/home/jens/Source/shotwell/src/main.vala"
	_tmp61_ = filename;
#line 426 "/home/jens/Source/shotwell/src/main.vala"
	_tmp62_ = is_string_empty (_tmp61_);
#line 426 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp62_) {
#line 2733 "main.c"
		gchar** _tmp63_;
		gint _tmp63__length1;
#line 427 "/home/jens/Source/shotwell/src/main.vala"
		_tmp63_ = mounts;
#line 427 "/home/jens/Source/shotwell/src/main.vala"
		_tmp63__length1 = mounts_length1;
#line 427 "/home/jens/Source/shotwell/src/main.vala"
		library_exec (_tmp63_, _tmp63__length1);
#line 2742 "main.c"
	} else {
		const gchar* _tmp64_;
#line 429 "/home/jens/Source/shotwell/src/main.vala"
		_tmp64_ = filename;
#line 429 "/home/jens/Source/shotwell/src/main.vala"
		editing_exec (_tmp64_);
#line 2749 "main.c"
	}
#line 432 "/home/jens/Source/shotwell/src/main.vala"
	resources_terminate ();
#line 433 "/home/jens/Source/shotwell/src/main.vala"
	application_terminate ();
#line 434 "/home/jens/Source/shotwell/src/main.vala"
	debug_terminate ();
#line 435 "/home/jens/Source/shotwell/src/main.vala"
	app_dirs_terminate ();
#line 440 "/home/jens/Source/shotwell/src/main.vala"
	_tmp66_ = filename;
#line 440 "/home/jens/Source/shotwell/src/main.vala"
	_tmp67_ = is_string_empty (_tmp66_);
#line 440 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp67_) {
#line 2765 "main.c"
		gboolean _tmp68_;
#line 440 "/home/jens/Source/shotwell/src/main.vala"
		_tmp68_ = was_already_running;
#line 440 "/home/jens/Source/shotwell/src/main.vala"
		_tmp65_ = !_tmp68_;
#line 2771 "main.c"
	} else {
#line 440 "/home/jens/Source/shotwell/src/main.vala"
		_tmp65_ = FALSE;
#line 2775 "main.c"
	}
#line 440 "/home/jens/Source/shotwell/src/main.vala"
	if (_tmp65_) {
#line 2779 "main.c"
		gchar* orig_path = NULL;
		GFile* _tmp69_;
		GFile* _tmp70_;
		GFile* _tmp71_;
		GFile* _tmp72_;
		gchar* _tmp73_;
		gchar* _tmp74_;
		gchar* backup_path = NULL;
		const gchar* _tmp75_;
		gchar* _tmp76_;
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp69_ = app_dirs_get_data_subdir ("data", NULL);
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp70_ = _tmp69_;
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp71_ = g_file_get_child (_tmp70_, "photo.db");
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp72_ = _tmp71_;
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp73_ = g_file_get_path (_tmp72_);
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_tmp74_ = _tmp73_;
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (_tmp72_);
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		_g_object_unref0 (_tmp70_);
#line 441 "/home/jens/Source/shotwell/src/main.vala"
		orig_path = _tmp74_;
#line 442 "/home/jens/Source/shotwell/src/main.vala"
		_tmp75_ = orig_path;
#line 442 "/home/jens/Source/shotwell/src/main.vala"
		_tmp76_ = g_strconcat (_tmp75_, ".bak", NULL);
#line 442 "/home/jens/Source/shotwell/src/main.vala"
		backup_path = _tmp76_;
#line 2814 "main.c"
		{
			GFile* src = NULL;
			const gchar* _tmp77_;
			GFile* _tmp78_;
			GFile* dest = NULL;
			const gchar* _tmp79_;
			GFile* _tmp80_;
			GFile* _tmp81_;
			GFile* _tmp82_;
#line 444 "/home/jens/Source/shotwell/src/main.vala"
			_tmp77_ = orig_path;
#line 444 "/home/jens/Source/shotwell/src/main.vala"
			_tmp78_ = g_file_new_for_commandline_arg (_tmp77_);
#line 444 "/home/jens/Source/shotwell/src/main.vala"
			src = _tmp78_;
#line 445 "/home/jens/Source/shotwell/src/main.vala"
			_tmp79_ = backup_path;
#line 445 "/home/jens/Source/shotwell/src/main.vala"
			_tmp80_ = g_file_new_for_commandline_arg (_tmp79_);
#line 445 "/home/jens/Source/shotwell/src/main.vala"
			dest = _tmp80_;
#line 446 "/home/jens/Source/shotwell/src/main.vala"
			_tmp81_ = src;
#line 446 "/home/jens/Source/shotwell/src/main.vala"
			_tmp82_ = dest;
#line 446 "/home/jens/Source/shotwell/src/main.vala"
			g_file_copy (_tmp81_, _tmp82_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_ALL_METADATA, NULL, NULL, NULL, &_inner_error_);
#line 446 "/home/jens/Source/shotwell/src/main.vala"
			if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 446 "/home/jens/Source/shotwell/src/main.vala"
				_g_object_unref0 (dest);
#line 446 "/home/jens/Source/shotwell/src/main.vala"
				_g_object_unref0 (src);
#line 2848 "main.c"
				goto __catch226_g_error;
			}
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_object_unref0 (dest);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_object_unref0 (src);
#line 2855 "main.c"
		}
		goto __finally226;
		__catch226_g_error:
		{
			GError* _error_ = NULL;
			GError* _tmp83_;
			const gchar* _tmp84_;
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_error_ = _inner_error_;
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_inner_error_ = NULL;
#line 450 "/home/jens/Source/shotwell/src/main.vala"
			_tmp83_ = _error_;
#line 450 "/home/jens/Source/shotwell/src/main.vala"
			_tmp84_ = _tmp83_->message;
#line 450 "/home/jens/Source/shotwell/src/main.vala"
			g_warning ("main.vala:450: Failed to create backup file of database: %s", _tmp84_);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_error_free0 (_error_);
#line 2875 "main.c"
		}
		__finally226:
#line 443 "/home/jens/Source/shotwell/src/main.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (backup_path);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (orig_path);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			_g_free0 (filename);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			mounts = (_vala_array_free (mounts, mounts_length1, (GDestroyNotify) g_free), NULL);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			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);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			g_clear_error (&_inner_error_);
#line 443 "/home/jens/Source/shotwell/src/main.vala"
			return;
#line 2894 "main.c"
		}
#line 453 "/home/jens/Source/shotwell/src/main.vala"
		sync ();
#line 440 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (backup_path);
#line 440 "/home/jens/Source/shotwell/src/main.vala"
		_g_free0 (orig_path);
#line 2902 "main.c"
	}
#line 316 "/home/jens/Source/shotwell/src/main.vala"
	_g_free0 (filename);
#line 316 "/home/jens/Source/shotwell/src/main.vala"
	mounts = (_vala_array_free (mounts, mounts_length1, (GDestroyNotify) g_free), NULL);
#line 2908 "main.c"
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
#line 316 "/home/jens/Source/shotwell/src/main.vala"
	_vala_main (argv, argc);
#line 316 "/home/jens/Source/shotwell/src/main.vala"
	return 0;
#line 2920 "main.c"
}


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



