/* gitg-remote.c generated by valac 0.32.1, the Vala compiler
 * generated from gitg-remote.vala, do not modify */

/*
 * This file is part of gitg
 *
 * Copyright (C) 2014 - Jesse van den Kieboom
 *
 * gitg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * gitg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with gitg. If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <libgit2-glib/ggit.h>
#include <float.h>
#include <math.h>
#include <gio/gio.h>


#define GITG_TYPE_REMOTE_STATE (gitg_remote_state_get_type ())

#define GITG_TYPE_CREDENTIALS_PROVIDER (gitg_credentials_provider_get_type ())
#define GITG_CREDENTIALS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_CREDENTIALS_PROVIDER, GitgCredentialsProvider))
#define GITG_IS_CREDENTIALS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_CREDENTIALS_PROVIDER))
#define GITG_CREDENTIALS_PROVIDER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_CREDENTIALS_PROVIDER, GitgCredentialsProviderIface))

typedef struct _GitgCredentialsProvider GitgCredentialsProvider;
typedef struct _GitgCredentialsProviderIface GitgCredentialsProviderIface;

#define GITG_TYPE_REMOTE (gitg_remote_get_type ())
#define GITG_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_REMOTE, GitgRemote))
#define GITG_REMOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_REMOTE, GitgRemoteClass))
#define GITG_IS_REMOTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_REMOTE))
#define GITG_IS_REMOTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_REMOTE))
#define GITG_REMOTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_REMOTE, GitgRemoteClass))

typedef struct _GitgRemote GitgRemote;
typedef struct _GitgRemoteClass GitgRemoteClass;
typedef struct _GitgRemotePrivate GitgRemotePrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block14Data Block14Data;

#define GITG_REMOTE_TYPE_CALLBACKS (gitg_remote_callbacks_get_type ())
#define GITG_REMOTE_CALLBACKS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_REMOTE_TYPE_CALLBACKS, GitgRemoteCallbacks))
#define GITG_REMOTE_CALLBACKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_REMOTE_TYPE_CALLBACKS, GitgRemoteCallbacksClass))
#define GITG_REMOTE_IS_CALLBACKS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_REMOTE_TYPE_CALLBACKS))
#define GITG_REMOTE_IS_CALLBACKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_REMOTE_TYPE_CALLBACKS))
#define GITG_REMOTE_CALLBACKS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_REMOTE_TYPE_CALLBACKS, GitgRemoteCallbacksClass))

typedef struct _GitgRemoteCallbacks GitgRemoteCallbacks;
typedef struct _GitgRemoteCallbacksClass GitgRemoteCallbacksClass;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _GitgRemoteConnectData GitgRemoteConnectData;
typedef struct _GitgRemoteDisconnectData GitgRemoteDisconnectData;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _Block15Data Block15Data;
#define __vala_GgitFetchOptions_free0(var) ((var == NULL) ? NULL : (var = (_vala_GgitFetchOptions_free (var), NULL)))
typedef struct _GitgRemoteDownloadInternData GitgRemoteDownloadInternData;
typedef struct _GitgRemoteDownloadData GitgRemoteDownloadData;
typedef struct _GitgRemoteFetchData GitgRemoteFetchData;
typedef struct _GitgRemoteCallbacksPrivate GitgRemoteCallbacksPrivate;

typedef enum  {
	GITG_REMOTE_STATE_DISCONNECTED,
	GITG_REMOTE_STATE_CONNECTING,
	GITG_REMOTE_STATE_CONNECTED,
	GITG_REMOTE_STATE_TRANSFERRING
} GitgRemoteState;

typedef enum  {
	GITG_REMOTE_ERROR_ALREADY_CONNECTED,
	GITG_REMOTE_ERROR_ALREADY_CONNECTING,
	GITG_REMOTE_ERROR_ALREADY_DISCONNECTED,
	GITG_REMOTE_ERROR_STILL_CONNECTING
} GitgRemoteError;
#define GITG_REMOTE_ERROR gitg_remote_error_quark ()
struct _GitgCredentialsProviderIface {
	GTypeInterface parent_iface;
	GgitCred* (*credentials) (GitgCredentialsProvider* self, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error);
};

struct _GitgRemote {
	GgitRemote parent_instance;
	GitgRemotePrivate * priv;
};

struct _GitgRemoteClass {
	GgitRemoteClass parent_class;
};

struct _GitgRemotePrivate {
	GitgRemoteState d_state;
	gchar** d_fetch_specs;
	gint d_fetch_specs_length1;
	gint _d_fetch_specs_size_;
	gchar** d_push_specs;
	gint d_push_specs_length1;
	gint _d_push_specs_size_;
	guint d_reset_transfer_progress_timeout;
	gdouble d_transfer_progress;
	GitgCredentialsProvider* _credentials_provider;
};

struct _Block14Data {
	int _ref_count_;
	GitgRemote* self;
	GgitDirection direction;
	GgitRemoteCallbacks* callbacks;
	gpointer _async_data_;
};

typedef void (*GitgAsyncThreadFunc) (void* user_data, GError** error);
typedef void (*GitgRemoteCallbacksTransferProgress) (GgitTransferProgress* stats, void* user_data);
struct _GitgRemoteConnectData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRemote* self;
	GgitDirection direction;
	GgitRemoteCallbacks* callbacks;
	Block14Data* _data14_;
	GgitDirection _tmp0_;
	GgitRemoteCallbacks* _tmp1_;
	gboolean _tmp2_;
	GitgRemoteState _tmp3_;
	GitgRemoteState _tmp4_;
	GError* _tmp5_;
	GitgRemoteState _tmp6_;
	GitgRemoteState _tmp7_;
	GError* _tmp8_;
	GError* e;
	gboolean _tmp9_;
	GError* _tmp10_;
	const gchar* _tmp11_;
	GError* _tmp12_;
	const gchar* _tmp13_;
	GError* _tmp14_;
	GError* _tmp15_;
	GError * _inner_error_;
};

struct _GitgRemoteDisconnectData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRemote* self;
	gboolean _tmp0_;
	GitgRemoteState _tmp1_;
	GitgRemoteState _tmp2_;
	GError* _tmp3_;
	GError* e;
	GError* _tmp4_;
	GError* _tmp5_;
	GError * _inner_error_;
};

struct _Block15Data {
	int _ref_count_;
	GitgRemote* self;
	gchar* message;
	GgitRemoteCallbacks* callbacks;
	gpointer _async_data_;
};

struct _GitgRemoteDownloadInternData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRemote* self;
	gchar* message;
	GgitRemoteCallbacks* callbacks;
	Block15Data* _data15_;
	const gchar* _tmp0_;
	GgitRemoteCallbacks* _tmp1_;
	gboolean dis;
	gboolean _tmp2_;
	GgitRemoteCallbacks* _tmp3_;
	GError* e;
	gboolean _tmp4_;
	GError* _tmp5_;
	GError* _tmp6_;
	gboolean _tmp7_;
	GError * _inner_error_;
};

struct _GitgRemoteDownloadData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRemote* self;
	GgitRemoteCallbacks* callbacks;
	GgitRemoteCallbacks* _tmp0_;
	GError * _inner_error_;
};

struct _GitgRemoteFetchData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRemote* self;
	gchar* message;
	GgitRemoteCallbacks* callbacks;
	gchar* msg;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* name;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	const gchar* _tmp12_;
	GgitRemoteCallbacks* _tmp13_;
	GError * _inner_error_;
};

struct _GitgRemoteCallbacks {
	GgitRemoteCallbacks parent_instance;
	GitgRemoteCallbacksPrivate * priv;
};

struct _GitgRemoteCallbacksClass {
	GgitRemoteCallbacksClass parent_class;
};

struct _GitgRemoteCallbacksPrivate {
	GitgRemote* d_remote;
	GgitRemoteCallbacks* d_proxy;
	GitgRemoteCallbacksTransferProgress d_transfer_progress;
	gpointer d_transfer_progress_target;
	GDestroyNotify d_transfer_progress_target_destroy_notify;
};


static gpointer gitg_remote_parent_class = NULL;
static gpointer gitg_remote_callbacks_parent_class = NULL;

GType gitg_remote_state_get_type (void) G_GNUC_CONST;
GQuark gitg_remote_error_quark (void);
GType gitg_credentials_provider_get_type (void) G_GNUC_CONST;
GgitCred* gitg_credentials_provider_credentials (GitgCredentialsProvider* self, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error);
GType gitg_remote_get_type (void) G_GNUC_CONST;
#define GITG_REMOTE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GITG_TYPE_REMOTE, GitgRemotePrivate))
enum  {
	GITG_REMOTE_DUMMY_PROPERTY,
	GITG_REMOTE_TRANSFER_PROGRESS,
	GITG_REMOTE_STATE,
	GITG_REMOTE_FETCH_SPECS,
	GITG_REMOTE_PUSH_SPECS,
	GITG_REMOTE_CREDENTIALS_PROVIDER
};
static void gitg_remote_real_dispose (GObject* base);
static void gitg_remote_do_reset_transfer_progress (GitgRemote* self);
static void gitg_remote_reset_transfer_progress (GitgRemote* self, gboolean with_delay);
static gboolean ___lambda61_ (GitgRemote* self);
static gboolean ____lambda61__gsource_func (gpointer self);
static void gitg_remote_update_transfer_progress (GitgRemote* self, GgitTransferProgress* stats);
static void gitg_remote_update_state (GitgRemote* self, gboolean force_disconnect);
void gitg_remote_disconnect (GitgRemote* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void gitg_remote_disconnect_finish (GitgRemote* self, GAsyncResult* _res_, GError** error);
static void ____lambda63_ (GitgRemote* self, GObject* obj, GAsyncResult* res);
static void _____lambda63__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void gitg_remote_set_state (GitgRemote* self, GitgRemoteState value);
static void gitg_remote_connect_data_free (gpointer _data);
void gitg_remote_connect (GitgRemote* self, GgitDirection direction, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_);
void gitg_remote_connect_finish (GitgRemote* self, GAsyncResult* _res_, GError** error);
static gboolean gitg_remote_connect_co (GitgRemoteConnectData* _data_);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
GitgRemoteState gitg_remote_get_state (GitgRemote* self);
void gitg_async_thread (GitgAsyncThreadFunc func, void* func_target, GAsyncReadyCallback _callback_, gpointer _user_data_);
void gitg_async_thread_finish (GAsyncResult* _res_, GError** error);
static void ____lambda64_ (Block14Data* _data14_, GError** error);
static GitgRemoteCallbacks* gitg_remote_callbacks_new (GitgRemote* remote, GgitRemoteCallbacks* proxy, GitgRemoteCallbacksTransferProgress transfer_progress, void* transfer_progress_target, GDestroyNotify transfer_progress_target_destroy_notify);
static GitgRemoteCallbacks* gitg_remote_callbacks_construct (GType object_type, GitgRemote* remote, GgitRemoteCallbacks* proxy, GitgRemoteCallbacksTransferProgress transfer_progress, void* transfer_progress_target, GDestroyNotify transfer_progress_target_destroy_notify);
static GType gitg_remote_callbacks_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static void _____lambda64__gitg_async_thread_func (gpointer self, GError** error);
static void gitg_remote_connect_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void gitg_remote_disconnect_data_free (gpointer _data);
static gboolean gitg_remote_disconnect_co (GitgRemoteDisconnectData* _data_);
static void ___lambda62_ (GitgRemote* self, GError** error);
static void ____lambda62__gitg_async_thread_func (gpointer self, GError** error);
static void gitg_remote_disconnect_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void gitg_remote_download_intern_data_free (gpointer _data);
static void gitg_remote_download_intern (GitgRemote* self, const gchar* message, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void gitg_remote_download_intern_finish (GitgRemote* self, GAsyncResult* _res_, GError** error);
static gboolean gitg_remote_download_intern_co (GitgRemoteDownloadInternData* _data_);
static Block15Data* block15_data_ref (Block15Data* _data15_);
static void block15_data_unref (void * _userdata_);
static void gitg_remote_download_intern_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void ___lambda65_ (Block15Data* _data15_, GError** error);
static void _gitg_remote_update_transfer_progress_gitg_remote_callbacks_transfer_progress (GgitTransferProgress* stats, gpointer self);
static void _vala_GgitFetchOptions_free (GgitFetchOptions* self);
static void ____lambda65__gitg_async_thread_func (gpointer self, GError** error);
static void gitg_remote_download_data_free (gpointer _data);
void gitg_remote_download (GitgRemote* self, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_);
void gitg_remote_download_finish (GitgRemote* self, GAsyncResult* _res_, GError** error);
static gboolean gitg_remote_download_co (GitgRemoteDownloadData* _data_);
static void gitg_remote_download_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void gitg_remote_fetch_data_free (gpointer _data);
void gitg_remote_fetch (GitgRemote* self, const gchar* message, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_);
void gitg_remote_fetch_finish (GitgRemote* self, GAsyncResult* _res_, GError** error);
static gboolean gitg_remote_fetch_co (GitgRemoteFetchData* _data_);
static void gitg_remote_fetch_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
GitgRemote* gitg_remote_new (void);
GitgRemote* gitg_remote_construct (GType object_type);
gdouble gitg_remote_get_transfer_progress (GitgRemote* self);
gchar** gitg_remote_get_fetch_specs (GitgRemote* self, int* result_length1);
static gchar** _vala_array_dup16 (gchar** self, int length);
void gitg_remote_set_fetch_specs (GitgRemote* self, gchar** value, int value_length1);
static gchar** _vala_array_dup17 (gchar** self, int length);
gchar** gitg_remote_get_push_specs (GitgRemote* self, int* result_length1);
static gchar** _vala_array_dup18 (gchar** self, int length);
void gitg_remote_set_push_specs (GitgRemote* self, gchar** value, int value_length1);
static gchar** _vala_array_dup19 (gchar** self, int length);
GitgCredentialsProvider* gitg_remote_get_credentials_provider (GitgRemote* self);
void gitg_remote_set_credentials_provider (GitgRemote* self, GitgCredentialsProvider* value);
static void g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
#define GITG_REMOTE_CALLBACKS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GITG_REMOTE_TYPE_CALLBACKS, GitgRemoteCallbacksPrivate))
enum  {
	GITG_REMOTE_CALLBACKS_DUMMY_PROPERTY
};
static void gitg_remote_callbacks_real_progress (GgitRemoteCallbacks* base, const gchar* message);
static void gitg_remote_callbacks_real_transfer_progress (GgitRemoteCallbacks* base, GgitTransferProgress* stats);
static void gitg_remote_callbacks_real_update_tips (GgitRemoteCallbacks* base, const gchar* refname, GgitOId* a, GgitOId* b);
static void gitg_remote_callbacks_real_completion (GgitRemoteCallbacks* base, GgitRemoteCompletionType type);
static GgitCred* gitg_remote_callbacks_real_credentials (GgitRemoteCallbacks* base, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error);
static void gitg_remote_callbacks_finalize (GObject* obj);
static void gitg_remote_finalize (GObject* obj);
static void _vala_gitg_remote_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_gitg_remote_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


GType gitg_remote_state_get_type (void) {
	static volatile gsize gitg_remote_state_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_remote_state_type_id__volatile)) {
		static const GEnumValue values[] = {{GITG_REMOTE_STATE_DISCONNECTED, "GITG_REMOTE_STATE_DISCONNECTED", "disconnected"}, {GITG_REMOTE_STATE_CONNECTING, "GITG_REMOTE_STATE_CONNECTING", "connecting"}, {GITG_REMOTE_STATE_CONNECTED, "GITG_REMOTE_STATE_CONNECTED", "connected"}, {GITG_REMOTE_STATE_TRANSFERRING, "GITG_REMOTE_STATE_TRANSFERRING", "transferring"}, {0, NULL, NULL}};
		GType gitg_remote_state_type_id;
		gitg_remote_state_type_id = g_enum_register_static ("GitgRemoteState", values);
		g_once_init_leave (&gitg_remote_state_type_id__volatile, gitg_remote_state_type_id);
	}
	return gitg_remote_state_type_id__volatile;
}


GQuark gitg_remote_error_quark (void) {
	return g_quark_from_static_string ("gitg_remote_error-quark");
}


GgitCred* gitg_credentials_provider_credentials (GitgCredentialsProvider* self, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error) {
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return GITG_CREDENTIALS_PROVIDER_GET_INTERFACE (self)->credentials (self, url, username_from_url, allowed_types, error);
#line 383 "gitg-remote.c"
}


static void gitg_credentials_provider_base_init (GitgCredentialsProviderIface * iface) {
#line 39 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	static gboolean initialized = FALSE;
#line 39 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (!initialized) {
#line 39 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		initialized = TRUE;
#line 394 "gitg-remote.c"
	}
}


GType gitg_credentials_provider_get_type (void) {
	static volatile gsize gitg_credentials_provider_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_credentials_provider_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgCredentialsProviderIface), (GBaseInitFunc) gitg_credentials_provider_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
		GType gitg_credentials_provider_type_id;
		gitg_credentials_provider_type_id = g_type_register_static (G_TYPE_INTERFACE, "GitgCredentialsProvider", &g_define_type_info, 0);
		g_type_interface_add_prerequisite (gitg_credentials_provider_type_id, G_TYPE_OBJECT);
		g_once_init_leave (&gitg_credentials_provider_type_id__volatile, gitg_credentials_provider_type_id);
	}
	return gitg_credentials_provider_type_id__volatile;
}


static void gitg_remote_real_dispose (GObject* base) {
	GitgRemote * self;
	guint _tmp0_ = 0U;
#line 128 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemote*) base;
#line 130 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_reset_transfer_progress_timeout;
#line 130 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != ((guint) 0)) {
#line 421 "gitg-remote.c"
		guint _tmp1_ = 0U;
#line 132 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_reset_transfer_progress_timeout;
#line 132 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_source_remove (_tmp1_);
#line 133 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		self->priv->d_reset_transfer_progress_timeout = (guint) 0;
#line 429 "gitg-remote.c"
	}
#line 136 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (gitg_remote_parent_class)->dispose ((GObject*) G_TYPE_CHECK_INSTANCE_CAST (self, ggit_remote_get_type (), GgitRemote));
#line 433 "gitg-remote.c"
}


static void gitg_remote_do_reset_transfer_progress (GitgRemote* self) {
#line 157 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 159 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_reset_transfer_progress_timeout = (guint) 0;
#line 160 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress = 0.0;
#line 161 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject*) self, "transfer-progress");
#line 446 "gitg-remote.c"
}


static gboolean ___lambda61_ (GitgRemote* self) {
	gboolean result = FALSE;
#line 174 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_do_reset_transfer_progress (self);
#line 175 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = FALSE;
#line 175 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 458 "gitg-remote.c"
}


static gboolean ____lambda61__gsource_func (gpointer self) {
	gboolean result;
	result = ___lambda61_ ((GitgRemote*) self);
#line 173 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 467 "gitg-remote.c"
}


static void gitg_remote_reset_transfer_progress (GitgRemote* self, gboolean with_delay) {
	gdouble _tmp0_ = 0.0;
	gboolean _tmp1_ = FALSE;
#line 164 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 166 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_transfer_progress;
#line 166 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ == ((gdouble) 0)) {
#line 168 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 482 "gitg-remote.c"
	}
#line 171 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = with_delay;
#line 171 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp1_) {
#line 488 "gitg-remote.c"
		guint _tmp2_ = 0U;
#line 173 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 500, ____lambda61__gsource_func, g_object_ref (self), g_object_unref);
#line 173 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		self->priv->d_reset_transfer_progress_timeout = _tmp2_;
#line 494 "gitg-remote.c"
	} else {
		guint _tmp3_ = 0U;
#line 178 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp3_ = self->priv->d_reset_transfer_progress_timeout;
#line 178 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_tmp3_ == ((guint) 0)) {
#line 180 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_do_reset_transfer_progress (self);
#line 503 "gitg-remote.c"
		}
	}
}


static void gitg_remote_update_transfer_progress (GitgRemote* self, GgitTransferProgress* stats) {
	guint total = 0U;
	GgitTransferProgress* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	guint received = 0U;
	GgitTransferProgress* _tmp2_ = NULL;
	guint _tmp3_ = 0U;
	guint indexed = 0U;
	GgitTransferProgress* _tmp4_ = NULL;
	guint _tmp5_ = 0U;
	guint _tmp6_ = 0U;
	guint _tmp7_ = 0U;
	guint _tmp8_ = 0U;
	guint _tmp9_ = 0U;
	gboolean _tmp10_ = FALSE;
	guint _tmp11_ = 0U;
	guint _tmp12_ = 0U;
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (stats != NULL);
#line 186 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = stats;
#line 186 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = ggit_transfer_progress_get_total_objects (_tmp0_);
#line 186 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	total = _tmp1_;
#line 187 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = stats;
#line 187 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = ggit_transfer_progress_get_received_objects (_tmp2_);
#line 187 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	received = _tmp3_;
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = stats;
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp5_ = ggit_transfer_progress_get_indexed_objects (_tmp4_);
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	indexed = _tmp5_;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp6_ = received;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp7_ = indexed;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp8_ = total;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp9_ = total;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress = ((gdouble) (_tmp6_ + _tmp7_)) / ((gdouble) (_tmp8_ + _tmp9_));
#line 191 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject*) self, "transfer-progress");
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp11_ = received;
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp12_ = total;
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp11_ == _tmp12_) {
#line 566 "gitg-remote.c"
		guint _tmp13_ = 0U;
		guint _tmp14_ = 0U;
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp13_ = indexed;
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp14_ = total;
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp10_ = _tmp13_ == _tmp14_;
#line 575 "gitg-remote.c"
	} else {
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp10_ = FALSE;
#line 579 "gitg-remote.c"
	}
#line 193 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp10_) {
#line 195 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_reset_transfer_progress (self, TRUE);
#line 585 "gitg-remote.c"
	}
}


static void ____lambda63_ (GitgRemote* self, GObject* obj, GAsyncResult* res) {
	GError * _inner_error_ = NULL;
#line 205 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (res != NULL);
#line 594 "gitg-remote.c"
	{
		GAsyncResult* _tmp0_ = NULL;
#line 208 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp0_ = res;
#line 208 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_disconnect_finish (self, _tmp0_, &_inner_error_);
#line 208 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 603 "gitg-remote.c"
			goto __catch48_g_error;
		}
	}
	goto __finally48;
	__catch48_g_error:
	{
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_clear_error (&_inner_error_);
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_inner_error_ = NULL;
#line 614 "gitg-remote.c"
	}
	__finally48:
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.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 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_clear_error (&_inner_error_);
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 625 "gitg-remote.c"
	}
}


static void _____lambda63__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 205 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	____lambda63_ ((GitgRemote*) self, source_object, res);
#line 205 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (self);
#line 635 "gitg-remote.c"
}


static void gitg_remote_update_state (GitgRemote* self, gboolean force_disconnect) {
	gboolean _tmp0_ = FALSE;
#line 199 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 201 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = ggit_remote_get_connected ((GgitRemote*) self);
#line 201 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_) {
#line 647 "gitg-remote.c"
		gboolean _tmp1_ = FALSE;
#line 203 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = force_disconnect;
#line 203 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_tmp1_) {
#line 205 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_disconnect (self, _____lambda63__gasync_ready_callback, g_object_ref (self));
#line 655 "gitg-remote.c"
		} else {
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_set_state (self, GITG_REMOTE_STATE_CONNECTED);
#line 659 "gitg-remote.c"
		}
	} else {
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_set_state (self, GITG_REMOTE_STATE_DISCONNECTED);
#line 664 "gitg-remote.c"
	}
}


static void gitg_remote_connect_data_free (gpointer _data) {
	GitgRemoteConnectData* _data_;
	_data_ = _data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_slice_free (GitgRemoteConnectData, _data_);
#line 676 "gitg-remote.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return self ? g_object_ref (self) : NULL;
#line 683 "gitg-remote.c"
}


void gitg_remote_connect (GitgRemote* self, GgitDirection direction, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRemoteConnectData* _data_;
	GitgRemote* _tmp0_ = NULL;
	GgitDirection _tmp1_ = 0;
	GgitRemoteCallbacks* _tmp2_ = NULL;
	GgitRemoteCallbacks* _tmp3_ = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_slice_new0 (GitgRemoteConnectData);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_remote_connect);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_remote_connect_data_free);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->self = _tmp0_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = direction;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->direction = _tmp1_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = callbacks;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->callbacks = _tmp3_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_connect_co (_data_);
#line 717 "gitg-remote.c"
}


void gitg_remote_connect_finish (GitgRemote* self, GAsyncResult* _res_, GError** error) {
	GitgRemoteConnectData* _data_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 727 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 731 "gitg-remote.c"
}


static Block14Data* block14_data_ref (Block14Data* _data14_) {
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_atomic_int_inc (&_data14_->_ref_count_);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return _data14_;
#line 740 "gitg-remote.c"
}


static void block14_data_unref (void * _userdata_) {
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
#line 749 "gitg-remote.c"
		GitgRemote* self;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		self = _data14_->self;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (_data14_->callbacks);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (self);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_slice_free (Block14Data, _data14_);
#line 759 "gitg-remote.c"
	}
}


static void ____lambda64_ (Block14Data* _data14_, GError** error) {
	GitgRemote* self;
	GgitDirection _tmp0_ = 0;
	GgitRemoteCallbacks* _tmp1_ = NULL;
	GitgRemoteCallbacks* _tmp2_ = NULL;
	GitgRemoteCallbacks* _tmp3_ = NULL;
	GError * _inner_error_ = NULL;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = _data14_->self;
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _data14_->direction;
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = _data14_->callbacks;
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = gitg_remote_callbacks_new (self, _tmp1_, NULL, NULL, NULL);
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = _tmp2_;
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	ggit_remote_connect (G_TYPE_CHECK_INSTANCE_CAST (self, ggit_remote_get_type (), GgitRemote), _tmp0_, (GgitRemoteCallbacks*) _tmp3_, NULL, &_inner_error_);
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_tmp3_);
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_propagate_error (error, _inner_error_);
#line 250 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 791 "gitg-remote.c"
	}
}


static void _____lambda64__gitg_async_thread_func (gpointer self, GError** error) {
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	____lambda64_ (self, error);
#line 799 "gitg-remote.c"
}


static void gitg_remote_connect_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRemoteConnectData* _data_;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = _user_data_;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_source_object_ = source_object;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_res_ = _res_;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_connect_co (_data_);
#line 813 "gitg-remote.c"
}


static gpointer _g_error_copy0 (gpointer self) {
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return self ? g_error_copy (self) : NULL;
#line 820 "gitg-remote.c"
}


static gboolean gitg_remote_connect_co (GitgRemoteConnectData* _data_) {
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (_data_->_state_) {
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 0:
#line 829 "gitg-remote.c"
		goto _state_0;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 1:
#line 833 "gitg-remote.c"
		goto _state_1;
		default:
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_assert_not_reached ();
#line 838 "gitg-remote.c"
	}
	_state_0:
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_ = g_slice_new0 (Block14Data);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_->_ref_count_ = 1;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_->self = g_object_ref (_data_->self);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = 0;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = _data_->direction;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_->direction = _data_->_tmp0_;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = NULL;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = _data_->callbacks;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->_data14_->callbacks);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_->callbacks = _data_->_tmp1_;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_->_async_data_ = _data_;
#line 225 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = FALSE;
#line 225 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = ggit_remote_get_connected ((GgitRemote*) _data_->self);
#line 225 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_tmp2_) {
#line 227 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = 0;
#line 227 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = gitg_remote_get_state (_data_->self);
#line 227 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = 0;
#line 227 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = _data_->_tmp3_;
#line 227 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_tmp4_ != GITG_REMOTE_STATE_CONNECTED) {
#line 229 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_set_state (_data_->self, GITG_REMOTE_STATE_CONNECTED);
#line 881 "gitg-remote.c"
		}
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = NULL;
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = g_error_new_literal (GITG_REMOTE_ERROR, GITG_REMOTE_ERROR_ALREADY_CONNECTED, "already connected");
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = _data_->_tmp5_;
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		block14_data_unref (_data_->_data14_);
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_data14_ = NULL;
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 901 "gitg-remote.c"
		} else {
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 905 "gitg-remote.c"
		}
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 911 "gitg-remote.c"
	} else {
#line 234 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp6_ = 0;
#line 234 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp6_ = gitg_remote_get_state (_data_->self);
#line 234 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp7_ = 0;
#line 234 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp7_ = _data_->_tmp6_;
#line 234 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_tmp7_ == GITG_REMOTE_STATE_CONNECTING) {
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp8_ = NULL;
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp8_ = g_error_new_literal (GITG_REMOTE_ERROR, GITG_REMOTE_ERROR_ALREADY_CONNECTING, "already connecting");
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_inner_error_ = _data_->_tmp8_;
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_error_free (_data_->_inner_error_);
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			block14_data_unref (_data_->_data14_);
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_data14_ = NULL;
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (_data_->_state_ == 0) {
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 941 "gitg-remote.c"
			} else {
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete (_data_->_async_result);
#line 945 "gitg-remote.c"
			}
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_object_unref (_data_->_async_result);
#line 236 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return FALSE;
#line 951 "gitg-remote.c"
		} else {
#line 240 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_reset_transfer_progress (_data_->self, FALSE);
#line 955 "gitg-remote.c"
		}
	}
#line 243 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_set_state (_data_->self, GITG_REMOTE_STATE_CONNECTING);
#line 245 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	while (TRUE) {
#line 962 "gitg-remote.c"
		{
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_state_ = 1;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_async_thread (_____lambda64__gitg_async_thread_func, _data_->_data14_, gitg_remote_connect_ready, _data_);
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return FALSE;
#line 970 "gitg-remote.c"
			_state_1:
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_async_thread_finish (_data_->_res_, &_data_->_inner_error_);
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 976 "gitg-remote.c"
				goto __catch49_g_error;
			}
		}
		goto __finally49;
		__catch49_g_error:
		{
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->e = _data_->_inner_error_;
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_inner_error_ = NULL;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp10_ = NULL;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp10_ = _data_->e;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp11_ = NULL;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp11_ = _data_->_tmp10_->message;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (g_strcmp0 (_data_->_tmp11_, "Unexpected HTTP status code: 401") == 0) {
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp9_ = TRUE;
#line 999 "gitg-remote.c"
			} else {
#line 259 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp12_ = NULL;
#line 259 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp12_ = _data_->e;
#line 259 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp13_ = NULL;
#line 259 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp13_ = _data_->_tmp12_->message;
#line 259 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp9_ = g_strcmp0 (_data_->_tmp13_, "error authenticating: Username/PublicKey combination invalid") == 0;
#line 1011 "gitg-remote.c"
			}
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (_data_->_tmp9_) {
#line 261 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_g_error_free0 (_data_->e);
#line 261 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				continue;
#line 1019 "gitg-remote.c"
			} else {
#line 265 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				gitg_remote_update_state (_data_->self, FALSE);
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp14_ = NULL;
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp14_ = _data_->e;
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp15_ = NULL;
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_tmp15_ = _g_error_copy0 (_data_->_tmp14_);
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_data_->_inner_error_ = _data_->_tmp15_;
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				_g_error_free0 (_data_->e);
#line 1035 "gitg-remote.c"
				goto __finally49;
			}
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_error_free0 (_data_->e);
#line 1040 "gitg-remote.c"
		}
		__finally49:
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_error_free (_data_->_inner_error_);
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			block14_data_unref (_data_->_data14_);
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_data14_ = NULL;
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (_data_->_state_ == 0) {
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1057 "gitg-remote.c"
			} else {
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete (_data_->_async_result);
#line 1061 "gitg-remote.c"
			}
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_object_unref (_data_->_async_result);
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return FALSE;
#line 1067 "gitg-remote.c"
		}
#line 270 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 1071 "gitg-remote.c"
	}
#line 273 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_update_state (_data_->self, FALSE);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	block14_data_unref (_data_->_data14_);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data14_ = NULL;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_state_ == 0) {
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1083 "gitg-remote.c"
	} else {
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 1087 "gitg-remote.c"
	}
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (_data_->_async_result);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 1093 "gitg-remote.c"
}


static void gitg_remote_disconnect_data_free (gpointer _data) {
	GitgRemoteDisconnectData* _data_;
	_data_ = _data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_slice_free (GitgRemoteDisconnectData, _data_);
#line 1104 "gitg-remote.c"
}


void gitg_remote_disconnect (GitgRemote* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRemoteDisconnectData* _data_;
	GitgRemote* _tmp0_ = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_slice_new0 (GitgRemoteDisconnectData);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_remote_disconnect);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_remote_disconnect_data_free);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->self = _tmp0_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_disconnect_co (_data_);
#line 1123 "gitg-remote.c"
}


void gitg_remote_disconnect_finish (GitgRemote* self, GAsyncResult* _res_, GError** error) {
	GitgRemoteDisconnectData* _data_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 1133 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1137 "gitg-remote.c"
}


static void ___lambda62_ (GitgRemote* self, GError** error) {
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	ggit_remote_disconnect (G_TYPE_CHECK_INSTANCE_CAST (self, ggit_remote_get_type (), GgitRemote));
#line 1144 "gitg-remote.c"
}


static void ____lambda62__gitg_async_thread_func (gpointer self, GError** error) {
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	___lambda62_ ((GitgRemote*) self, error);
#line 1151 "gitg-remote.c"
}


static void gitg_remote_disconnect_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRemoteDisconnectData* _data_;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = _user_data_;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_source_object_ = source_object;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_res_ = _res_;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_disconnect_co (_data_);
#line 1165 "gitg-remote.c"
}


static gboolean gitg_remote_disconnect_co (GitgRemoteDisconnectData* _data_) {
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (_data_->_state_) {
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 0:
#line 1174 "gitg-remote.c"
		goto _state_0;
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 1:
#line 1178 "gitg-remote.c"
		goto _state_1;
		default:
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_assert_not_reached ();
#line 1183 "gitg-remote.c"
	}
	_state_0:
#line 278 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = FALSE;
#line 278 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = ggit_remote_get_connected ((GgitRemote*) _data_->self);
#line 278 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (!_data_->_tmp0_) {
#line 280 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp1_ = 0;
#line 280 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp1_ = gitg_remote_get_state (_data_->self);
#line 280 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp2_ = 0;
#line 280 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp2_ = _data_->_tmp1_;
#line 280 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_tmp2_ != GITG_REMOTE_STATE_DISCONNECTED) {
#line 282 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_set_state (_data_->self, GITG_REMOTE_STATE_DISCONNECTED);
#line 1204 "gitg-remote.c"
		}
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = NULL;
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = g_error_new_literal (GITG_REMOTE_ERROR, GITG_REMOTE_ERROR_ALREADY_DISCONNECTED, "already disconnected");
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = _data_->_tmp3_;
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1220 "gitg-remote.c"
		} else {
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1224 "gitg-remote.c"
		}
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1230 "gitg-remote.c"
	}
	{
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_state_ = 1;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_async_thread (____lambda62__gitg_async_thread_func, _data_->self, gitg_remote_disconnect_ready, _data_);
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1239 "gitg-remote.c"
		_state_1:
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_async_thread_finish (_data_->_res_, &_data_->_inner_error_);
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 1245 "gitg-remote.c"
			goto __catch50_g_error;
		}
	}
	goto __finally50;
	__catch50_g_error:
	{
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->e = _data_->_inner_error_;
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = NULL;
#line 296 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_update_state (_data_->self, FALSE);
#line 297 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_reset_transfer_progress (_data_->self, TRUE);
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = NULL;
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = _data_->e;
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = NULL;
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = _g_error_copy0 (_data_->_tmp4_);
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = _data_->_tmp5_;
#line 299 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_error_free0 (_data_->e);
#line 1272 "gitg-remote.c"
		goto __finally50;
	}
	__finally50:
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1286 "gitg-remote.c"
		} else {
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1290 "gitg-remote.c"
		}
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1296 "gitg-remote.c"
	}
#line 302 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_update_state (_data_->self, FALSE);
#line 303 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_reset_transfer_progress (_data_->self, TRUE);
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_state_ == 0) {
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1306 "gitg-remote.c"
	} else {
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 1310 "gitg-remote.c"
	}
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (_data_->_async_result);
#line 276 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 1316 "gitg-remote.c"
}


static void gitg_remote_download_intern_data_free (gpointer _data) {
	GitgRemoteDownloadInternData* _data_;
	_data_ = _data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_slice_free (GitgRemoteDownloadInternData, _data_);
#line 1327 "gitg-remote.c"
}


static void gitg_remote_download_intern (GitgRemote* self, const gchar* message, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRemoteDownloadInternData* _data_;
	GitgRemote* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GgitRemoteCallbacks* _tmp3_ = NULL;
	GgitRemoteCallbacks* _tmp4_ = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_slice_new0 (GitgRemoteDownloadInternData);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_remote_download_intern);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_remote_download_intern_data_free);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->self = _tmp0_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = message;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_free0 (_data_->message);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->message = _tmp2_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = callbacks;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->callbacks = _tmp4_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern_co (_data_);
#line 1366 "gitg-remote.c"
}


static void gitg_remote_download_intern_finish (GitgRemote* self, GAsyncResult* _res_, GError** error) {
	GitgRemoteDownloadInternData* _data_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 1376 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1380 "gitg-remote.c"
}


static Block15Data* block15_data_ref (Block15Data* _data15_) {
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_atomic_int_inc (&_data15_->_ref_count_);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return _data15_;
#line 1389 "gitg-remote.c"
}


static void block15_data_unref (void * _userdata_) {
	Block15Data* _data15_;
	_data15_ = (Block15Data*) _userdata_;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_atomic_int_dec_and_test (&_data15_->_ref_count_)) {
#line 1398 "gitg-remote.c"
		GitgRemote* self;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		self = _data15_->self;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_free0 (_data15_->message);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (_data15_->callbacks);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (self);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_slice_free (Block15Data, _data15_);
#line 1410 "gitg-remote.c"
	}
}


static void gitg_remote_download_intern_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRemoteDownloadInternData* _data_;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = _user_data_;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_source_object_ = source_object;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_res_ = _res_;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern_co (_data_);
#line 1425 "gitg-remote.c"
}


static void _gitg_remote_update_transfer_progress_gitg_remote_callbacks_transfer_progress (GgitTransferProgress* stats, gpointer self) {
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_update_transfer_progress ((GitgRemote*) self, stats);
#line 1432 "gitg-remote.c"
}


static void _vala_GgitFetchOptions_free (GgitFetchOptions* self) {
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_boxed_free (ggit_fetch_options_get_type (), self);
#line 1439 "gitg-remote.c"
}


static void ___lambda65_ (Block15Data* _data15_, GError** error) {
	GitgRemote* self;
	GgitFetchOptions* options = NULL;
	GgitFetchOptions* _tmp0_ = NULL;
	GitgRemoteCallbacks* cbs = NULL;
	GgitRemoteCallbacks* _tmp1_ = NULL;
	GitgRemoteCallbacks* _tmp2_ = NULL;
	GgitFetchOptions* _tmp3_ = NULL;
	GitgRemoteCallbacks* _tmp4_ = NULL;
	GgitFetchOptions* _tmp5_ = NULL;
	const gchar* _tmp6_ = NULL;
	GError * _inner_error_ = NULL;
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = _data15_->self;
#line 322 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = ggit_fetch_options_new ();
#line 322 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	options = _tmp0_;
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = _data15_->callbacks;
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = gitg_remote_callbacks_new (self, _tmp1_, _gitg_remote_update_transfer_progress_gitg_remote_callbacks_transfer_progress, g_object_ref (self), g_object_unref);
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	cbs = _tmp2_;
#line 325 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = options;
#line 325 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = cbs;
#line 325 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	ggit_fetch_options_set_remote_callbacks (_tmp3_, (GgitRemoteCallbacks*) _tmp4_);
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp5_ = options;
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	ggit_remote_download (G_TYPE_CHECK_INSTANCE_CAST (self, ggit_remote_get_type (), GgitRemote), NULL, _tmp5_, &_inner_error_);
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_propagate_error (error, _inner_error_);
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (cbs);
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		__vala_GgitFetchOptions_free0 (options);
#line 327 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 1487 "gitg-remote.c"
	}
#line 329 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp6_ = _data15_->message;
#line 329 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp6_ != NULL) {
#line 1493 "gitg-remote.c"
		GitgRemoteCallbacks* _tmp7_ = NULL;
		GgitFetchOptions* _tmp8_ = NULL;
		GgitRemoteDownloadTagsType _tmp9_ = 0;
		const gchar* _tmp10_ = NULL;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7_ = cbs;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8_ = options;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9_ = ggit_fetch_options_get_download_tags (_tmp8_);
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp10_ = _data15_->message;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		ggit_remote_update_tips (G_TYPE_CHECK_INSTANCE_CAST (self, ggit_remote_get_type (), GgitRemote), (GgitRemoteCallbacks*) _tmp7_, TRUE, _tmp9_, _tmp10_, &_inner_error_);
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_propagate_error (error, _inner_error_);
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_object_unref0 (cbs);
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			__vala_GgitFetchOptions_free0 (options);
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return;
#line 1518 "gitg-remote.c"
		}
	}
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (cbs);
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	__vala_GgitFetchOptions_free0 (options);
#line 1525 "gitg-remote.c"
}


static void ____lambda65__gitg_async_thread_func (gpointer self, GError** error) {
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	___lambda65_ (self, error);
#line 1532 "gitg-remote.c"
}


static gboolean gitg_remote_download_intern_co (GitgRemoteDownloadInternData* _data_) {
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (_data_->_state_) {
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 0:
#line 1541 "gitg-remote.c"
		goto _state_0;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 1:
#line 1545 "gitg-remote.c"
		goto _state_1;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 2:
#line 1549 "gitg-remote.c"
		goto _state_2;
		default:
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_assert_not_reached ();
#line 1554 "gitg-remote.c"
	}
	_state_0:
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_ = g_slice_new0 (Block15Data);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_->_ref_count_ = 1;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_->self = g_object_ref (_data_->self);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = NULL;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = _data_->message;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_free0 (_data_->_data15_->message);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_->message = _data_->_tmp0_;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = NULL;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = _data_->callbacks;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->_data15_->callbacks);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_->callbacks = _data_->_tmp1_;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_->_async_data_ = _data_;
#line 308 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->dis = FALSE;
#line 310 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = FALSE;
#line 310 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = ggit_remote_get_connected ((GgitRemote*) _data_->self);
#line 310 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (!_data_->_tmp2_) {
#line 312 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->dis = TRUE;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = NULL;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = _data_->_data15_->callbacks;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_state_ = 1;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_connect (_data_->self, GGIT_DIRECTION_FETCH, _data_->_tmp3_, gitg_remote_download_intern_ready, _data_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1601 "gitg-remote.c"
		_state_1:
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_connect_finish (_data_->self, _data_->_res_, &_data_->_inner_error_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_error_free (_data_->_inner_error_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			block15_data_unref (_data_->_data15_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_data15_ = NULL;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			if (_data_->_state_ == 0) {
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1619 "gitg-remote.c"
			} else {
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
				g_simple_async_result_complete (_data_->_async_result);
#line 1623 "gitg-remote.c"
			}
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_object_unref (_data_->_async_result);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return FALSE;
#line 1629 "gitg-remote.c"
		}
	}
#line 316 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_set_state (_data_->self, GITG_REMOTE_STATE_TRANSFERRING);
#line 317 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_reset_transfer_progress (_data_->self, FALSE);
#line 1636 "gitg-remote.c"
	{
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_state_ = 2;
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_async_thread (____lambda65__gitg_async_thread_func, _data_->_data15_, gitg_remote_download_intern_ready, _data_);
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1644 "gitg-remote.c"
		_state_2:
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_async_thread_finish (_data_->_res_, &_data_->_inner_error_);
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 1650 "gitg-remote.c"
			goto __catch51_g_error;
		}
	}
	goto __finally51;
	__catch51_g_error:
	{
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->e = _data_->_inner_error_;
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = NULL;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = FALSE;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = _data_->dis;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_update_state (_data_->self, _data_->_tmp4_);
#line 338 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_reset_transfer_progress (_data_->self, TRUE);
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = NULL;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = _data_->e;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp6_ = NULL;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp6_ = _g_error_copy0 (_data_->_tmp5_);
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_inner_error_ = _data_->_tmp6_;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_error_free0 (_data_->e);
#line 1681 "gitg-remote.c"
		goto __finally51;
	}
	__finally51:
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		block15_data_unref (_data_->_data15_);
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_data15_ = NULL;
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1699 "gitg-remote.c"
		} else {
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1703 "gitg-remote.c"
		}
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 319 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1709 "gitg-remote.c"
	}
#line 342 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp7_ = FALSE;
#line 342 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp7_ = _data_->dis;
#line 342 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_update_state (_data_->self, _data_->_tmp7_);
#line 343 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_reset_transfer_progress (_data_->self, TRUE);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	block15_data_unref (_data_->_data15_);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_data15_ = NULL;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_state_ == 0) {
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1727 "gitg-remote.c"
	} else {
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 1731 "gitg-remote.c"
	}
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (_data_->_async_result);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 1737 "gitg-remote.c"
}


static void gitg_remote_download_data_free (gpointer _data) {
	GitgRemoteDownloadData* _data_;
	_data_ = _data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_slice_free (GitgRemoteDownloadData, _data_);
#line 1750 "gitg-remote.c"
}


void gitg_remote_download (GitgRemote* self, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRemoteDownloadData* _data_;
	GitgRemote* _tmp0_ = NULL;
	GgitRemoteCallbacks* _tmp1_ = NULL;
	GgitRemoteCallbacks* _tmp2_ = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_slice_new0 (GitgRemoteDownloadData);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_remote_download);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_remote_download_data_free);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->self = _tmp0_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = callbacks;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->callbacks = _tmp2_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_co (_data_);
#line 1779 "gitg-remote.c"
}


void gitg_remote_download_finish (GitgRemote* self, GAsyncResult* _res_, GError** error) {
	GitgRemoteDownloadData* _data_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 1789 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1793 "gitg-remote.c"
}


static void gitg_remote_download_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRemoteDownloadData* _data_;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = _user_data_;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_source_object_ = source_object;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_res_ = _res_;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_co (_data_);
#line 1807 "gitg-remote.c"
}


static gboolean gitg_remote_download_co (GitgRemoteDownloadData* _data_) {
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (_data_->_state_) {
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 0:
#line 1816 "gitg-remote.c"
		goto _state_0;
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 1:
#line 1820 "gitg-remote.c"
		goto _state_1;
		default:
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_assert_not_reached ();
#line 1825 "gitg-remote.c"
	}
	_state_0:
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = NULL;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = _data_->callbacks;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_state_ = 1;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern (_data_->self, NULL, _data_->_tmp0_, gitg_remote_download_ready, _data_);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 1838 "gitg-remote.c"
	_state_1:
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern_finish (_data_->self, _data_->_res_, &_data_->_inner_error_);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1852 "gitg-remote.c"
		} else {
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1856 "gitg-remote.c"
		}
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 1862 "gitg-remote.c"
	}
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_state_ == 0) {
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1868 "gitg-remote.c"
	} else {
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 1872 "gitg-remote.c"
	}
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (_data_->_async_result);
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 1878 "gitg-remote.c"
}


static void gitg_remote_fetch_data_free (gpointer _data) {
	GitgRemoteFetchData* _data_;
	_data_ = _data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_free0 (_data_->message);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_slice_free (GitgRemoteFetchData, _data_);
#line 1893 "gitg-remote.c"
}


void gitg_remote_fetch (GitgRemote* self, const gchar* message, GgitRemoteCallbacks* callbacks, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRemoteFetchData* _data_;
	GitgRemote* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
	GgitRemoteCallbacks* _tmp3_ = NULL;
	GgitRemoteCallbacks* _tmp4_ = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_slice_new0 (GitgRemoteFetchData);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_remote_fetch);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_remote_fetch_data_free);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->self = _tmp0_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = message;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_free0 (_data_->message);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->message = _tmp2_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = callbacks;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (_data_->callbacks);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->callbacks = _tmp4_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_fetch_co (_data_);
#line 1932 "gitg-remote.c"
}


void gitg_remote_fetch_finish (GitgRemote* self, GAsyncResult* _res_, GError** error) {
	GitgRemoteFetchData* _data_;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return;
#line 1942 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1946 "gitg-remote.c"
}


static void gitg_remote_fetch_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRemoteFetchData* _data_;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_ = _user_data_;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_source_object_ = source_object;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_res_ = _res_;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_fetch_co (_data_);
#line 1960 "gitg-remote.c"
}


static gboolean gitg_remote_fetch_co (GitgRemoteFetchData* _data_) {
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (_data_->_state_) {
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 0:
#line 1969 "gitg-remote.c"
		goto _state_0;
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case 1:
#line 1973 "gitg-remote.c"
		goto _state_1;
		default:
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_assert_not_reached ();
#line 1978 "gitg-remote.c"
	}
	_state_0:
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = NULL;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp0_ = _data_->message;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = NULL;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp1_ = g_strdup (_data_->_tmp0_);
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->msg = _data_->_tmp1_;
#line 355 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = NULL;
#line 355 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp2_ = _data_->msg;
#line 355 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_tmp2_ == NULL) {
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = NULL;
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp3_ = ggit_remote_get_name ((GgitRemote*) _data_->self);
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = NULL;
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp4_ = g_strdup (_data_->_tmp3_);
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->name = _data_->_tmp4_;
#line 359 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = NULL;
#line 359 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp5_ = _data_->name;
#line 359 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_tmp5_ == NULL) {
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp6_ = NULL;
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp6_ = ggit_remote_get_url ((GgitRemote*) _data_->self);
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp7_ = NULL;
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp7_ = g_strdup (_data_->_tmp6_);
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_free0 (_data_->name);
#line 361 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->name = _data_->_tmp7_;
#line 2025 "gitg-remote.c"
		}
#line 364 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp8_ = NULL;
#line 364 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_data_->_tmp8_ = _data_->name;
#line 364 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_tmp8_ != NULL) {
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp9_ = NULL;
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp9_ = _data_->name;
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp10_ = NULL;
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp10_ = g_strconcat ("fetch: ", _data_->_tmp9_, NULL);
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_free0 (_data_->msg);
#line 366 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->msg = _data_->_tmp10_;
#line 2045 "gitg-remote.c"
		} else {
#line 370 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp11_ = NULL;
#line 370 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->_tmp11_ = g_strdup ("");
#line 370 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_free0 (_data_->msg);
#line 370 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_data_->msg = _data_->_tmp11_;
#line 2055 "gitg-remote.c"
		}
#line 355 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_free0 (_data_->name);
#line 2059 "gitg-remote.c"
	}
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp12_ = NULL;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp12_ = _data_->msg;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp13_ = NULL;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_tmp13_ = _data_->callbacks;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_data_->_state_ = 1;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern (_data_->self, _data_->_tmp12_, _data_->_tmp13_, gitg_remote_fetch_ready, _data_);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 2075 "gitg-remote.c"
	_state_1:
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_download_intern_finish (_data_->self, _data_->_res_, &_data_->_inner_error_);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_error_free (_data_->_inner_error_);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_free0 (_data_->msg);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (_data_->_state_ == 0) {
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 2091 "gitg-remote.c"
		} else {
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 2095 "gitg-remote.c"
		}
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_unref (_data_->_async_result);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return FALSE;
#line 2101 "gitg-remote.c"
	}
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_free0 (_data_->msg);
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_data_->_state_ == 0) {
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 2109 "gitg-remote.c"
	} else {
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 2113 "gitg-remote.c"
	}
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_unref (_data_->_async_result);
#line 351 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return FALSE;
#line 2119 "gitg-remote.c"
}


GitgRemote* gitg_remote_construct (GType object_type) {
	GitgRemote * self = NULL;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemote*) g_object_new (object_type, NULL);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return self;
#line 2129 "gitg-remote.c"
}


GitgRemote* gitg_remote_new (void) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return gitg_remote_construct (GITG_TYPE_REMOTE);
#line 2136 "gitg-remote.c"
}


gdouble gitg_remote_get_transfer_progress (GitgRemote* self) {
	gdouble result;
	gdouble _tmp0_ = 0.0;
#line 141 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 141 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_transfer_progress;
#line 141 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = _tmp0_;
#line 141 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2151 "gitg-remote.c"
}


GitgRemoteState gitg_remote_get_state (GitgRemote* self) {
	GitgRemoteState result;
	GitgRemoteState _tmp0_ = 0;
#line 146 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 146 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_state;
#line 146 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = _tmp0_;
#line 146 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2166 "gitg-remote.c"
}


static void gitg_remote_set_state (GitgRemote* self, GitgRemoteState value) {
	GitgRemoteState _tmp0_ = 0;
	GitgRemoteState _tmp1_ = 0;
#line 147 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 149 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_state;
#line 149 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = value;
#line 149 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != _tmp1_) {
#line 2181 "gitg-remote.c"
		GitgRemoteState _tmp2_ = 0;
#line 151 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = value;
#line 151 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		self->priv->d_state = _tmp2_;
#line 152 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_object_notify ((GObject*) self, "state");
#line 2189 "gitg-remote.c"
	}
#line 147 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject *) self, "state");
#line 2193 "gitg-remote.c"
}


static gchar** _vala_array_dup16 (gchar** self, int length) {
	gchar** result;
	int i;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = g_new0 (gchar*, length + 1);
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	for (i = 0; i < length; i++) {
#line 2204 "gitg-remote.c"
		gchar* _tmp0_ = NULL;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp0_ = g_strdup (self[i]);
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result[i] = _tmp0_;
#line 2210 "gitg-remote.c"
	}
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2214 "gitg-remote.c"
}


gchar** gitg_remote_get_fetch_specs (GitgRemote* self, int* result_length1) {
	gchar** result;
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	GError * _inner_error_ = NULL;
#line 379 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 381 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_fetch_specs;
#line 381 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0__length1 = self->priv->d_fetch_specs_length1;
#line 381 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != NULL) {
#line 2231 "gitg-remote.c"
		gchar** _tmp1_ = NULL;
		gint _tmp1__length1 = 0;
		gchar** _tmp2_ = NULL;
		gint _tmp2__length1 = 0;
		gchar** _tmp3_ = NULL;
		gint _tmp3__length1 = 0;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_fetch_specs;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1__length1 = self->priv->d_fetch_specs_length1;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup16 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2__length1 = _tmp1__length1;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp3_ = _tmp2_;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp3__length1 = _tmp2__length1;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp3__length1;
#line 2254 "gitg-remote.c"
		}
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp3_;
#line 383 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2260 "gitg-remote.c"
	}
	{
		gchar** _tmp4_ = NULL;
		gchar** _tmp5_ = NULL;
		gchar** _tmp6_ = NULL;
		gint _tmp4__length1 = 0;
		gint __tmp4__size_ = 0;
		gchar** _tmp7_ = NULL;
		gint _tmp7__length1 = 0;
		gchar** _tmp8_ = NULL;
		gint _tmp8__length1 = 0;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp6_ = _tmp5_ = ggit_remote_get_fetch_specs ((GgitRemote*) self, &_inner_error_);
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = _tmp6_;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4__length1 = _vala_array_length (_tmp5_);
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		__tmp4__size_ = _tmp4__length1;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2282 "gitg-remote.c"
			goto __catch52_g_error;
		}
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7_ = _tmp4_;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7__length1 = _tmp4__length1;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = NULL;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4__length1 = 0;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8_ = _tmp7_;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8__length1 = _tmp7__length1;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp8__length1;
#line 2301 "gitg-remote.c"
		}
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp8_;
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
#line 388 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2309 "gitg-remote.c"
	}
	goto __finally52;
	__catch52_g_error:
	{
		GError* e = NULL;
		gchar** _tmp9_ = NULL;
		gint _tmp9__length1 = 0;
#line 386 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		e = _inner_error_;
#line 386 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_inner_error_ = NULL;
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9_ = NULL;
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9__length1 = 0;
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp9__length1;
#line 2329 "gitg-remote.c"
		}
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp9_;
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_error_free0 (e);
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2337 "gitg-remote.c"
	}
	__finally52:
#line 386 "/home/jesse/dev/gitg/libgitg/gitg-remote.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 386 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_clear_error (&_inner_error_);
#line 386 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return NULL;
#line 2346 "gitg-remote.c"
}


static gchar** _vala_array_dup17 (gchar** self, int length) {
	gchar** result;
	int i;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = g_new0 (gchar*, length + 1);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	for (i = 0; i < length; i++) {
#line 2357 "gitg-remote.c"
		gchar* _tmp0_ = NULL;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp0_ = g_strdup (self[i]);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result[i] = _tmp0_;
#line 2363 "gitg-remote.c"
	}
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2367 "gitg-remote.c"
}


void gitg_remote_set_fetch_specs (GitgRemote* self, gchar** value, int value_length1) {
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
#line 396 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = value;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0__length1 = value_length1;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup17 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1__length1 = _tmp0__length1;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_fetch_specs = (_vala_array_free (self->priv->d_fetch_specs, self->priv->d_fetch_specs_length1, (GDestroyNotify) g_free), NULL);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_fetch_specs = _tmp1_;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_fetch_specs_length1 = _tmp1__length1;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->_d_fetch_specs_size_ = self->priv->d_fetch_specs_length1;
#line 396 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject *) self, "fetch-specs");
#line 2396 "gitg-remote.c"
}


static gchar** _vala_array_dup18 (gchar** self, int length) {
	gchar** result;
	int i;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = g_new0 (gchar*, length + 1);
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	for (i = 0; i < length; i++) {
#line 2407 "gitg-remote.c"
		gchar* _tmp0_ = NULL;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp0_ = g_strdup (self[i]);
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result[i] = _tmp0_;
#line 2413 "gitg-remote.c"
	}
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2417 "gitg-remote.c"
}


gchar** gitg_remote_get_push_specs (GitgRemote* self, int* result_length1) {
	gchar** result;
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	GError * _inner_error_ = NULL;
#line 404 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 406 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_push_specs;
#line 406 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0__length1 = self->priv->d_push_specs_length1;
#line 406 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != NULL) {
#line 2434 "gitg-remote.c"
		gchar** _tmp1_ = NULL;
		gint _tmp1__length1 = 0;
		gchar** _tmp2_ = NULL;
		gint _tmp2__length1 = 0;
		gchar** _tmp3_ = NULL;
		gint _tmp3__length1 = 0;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_push_specs;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1__length1 = self->priv->d_push_specs_length1;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup18 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2__length1 = _tmp1__length1;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp3_ = _tmp2_;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp3__length1 = _tmp2__length1;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp3__length1;
#line 2457 "gitg-remote.c"
		}
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp3_;
#line 408 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2463 "gitg-remote.c"
	}
	{
		gchar** _tmp4_ = NULL;
		gchar** _tmp5_ = NULL;
		gchar** _tmp6_ = NULL;
		gint _tmp4__length1 = 0;
		gint __tmp4__size_ = 0;
		gchar** _tmp7_ = NULL;
		gint _tmp7__length1 = 0;
		gchar** _tmp8_ = NULL;
		gint _tmp8__length1 = 0;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp6_ = _tmp5_ = ggit_remote_get_push_specs ((GgitRemote*) self, &_inner_error_);
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = _tmp6_;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4__length1 = _vala_array_length (_tmp5_);
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		__tmp4__size_ = _tmp4__length1;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2485 "gitg-remote.c"
			goto __catch53_g_error;
		}
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7_ = _tmp4_;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7__length1 = _tmp4__length1;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = NULL;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4__length1 = 0;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8_ = _tmp7_;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8__length1 = _tmp7__length1;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp8__length1;
#line 2504 "gitg-remote.c"
		}
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp8_;
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
#line 413 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2512 "gitg-remote.c"
	}
	goto __finally53;
	__catch53_g_error:
	{
		GError* e = NULL;
		gchar** _tmp9_ = NULL;
		gint _tmp9__length1 = 0;
#line 411 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		e = _inner_error_;
#line 411 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_inner_error_ = NULL;
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9_ = NULL;
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9__length1 = 0;
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (result_length1) {
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			*result_length1 = _tmp9__length1;
#line 2532 "gitg-remote.c"
		}
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result = _tmp9_;
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_error_free0 (e);
#line 417 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		return result;
#line 2540 "gitg-remote.c"
	}
	__finally53:
#line 411 "/home/jesse/dev/gitg/libgitg/gitg-remote.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 411 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_clear_error (&_inner_error_);
#line 411 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return NULL;
#line 2549 "gitg-remote.c"
}


static gchar** _vala_array_dup19 (gchar** self, int length) {
	gchar** result;
	int i;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = g_new0 (gchar*, length + 1);
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	for (i = 0; i < length; i++) {
#line 2560 "gitg-remote.c"
		gchar* _tmp0_ = NULL;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp0_ = g_strdup (self[i]);
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		result[i] = _tmp0_;
#line 2566 "gitg-remote.c"
	}
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2570 "gitg-remote.c"
}


void gitg_remote_set_push_specs (GitgRemote* self, gchar** value, int value_length1) {
	gchar** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gchar** _tmp1_ = NULL;
	gint _tmp1__length1 = 0;
#line 421 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = value;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0__length1 = value_length1;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup19 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1__length1 = _tmp0__length1;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_push_specs = (_vala_array_free (self->priv->d_push_specs, self->priv->d_push_specs_length1, (GDestroyNotify) g_free), NULL);
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_push_specs = _tmp1_;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_push_specs_length1 = _tmp1__length1;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->_d_push_specs_size_ = self->priv->d_push_specs_length1;
#line 421 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject *) self, "push-specs");
#line 2599 "gitg-remote.c"
}


GitgCredentialsProvider* gitg_remote_get_credentials_provider (GitgRemote* self) {
	GitgCredentialsProvider* result;
	GitgCredentialsProvider* _tmp0_ = NULL;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->_credentials_provider;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = _tmp0_;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 2614 "gitg-remote.c"
}


void gitg_remote_set_credentials_provider (GitgRemote* self, GitgCredentialsProvider* value) {
	GitgCredentialsProvider* _tmp0_ = NULL;
	GitgCredentialsProvider* _tmp1_ = NULL;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (self != NULL);
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = value;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->_credentials_provider);
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->_credentials_provider = _tmp1_;
#line 429 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_notify ((GObject *) self, "credentials-provider");
#line 2633 "gitg-remote.c"
}


static void g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__STRING_BOXED_BOXED) (gpointer data1, const char* arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
	register GMarshalFunc_VOID__STRING_BOXED_BOXED callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (n_param_values == 4);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		data1 = closure->data;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		data2 = param_values->data[0].v_pointer;
#line 2652 "gitg-remote.c"
	} else {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		data1 = param_values->data[0].v_pointer;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		data2 = closure->data;
#line 2658 "gitg-remote.c"
	}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	callback = (GMarshalFunc_VOID__STRING_BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	callback (data1, g_value_get_string (param_values + 1), g_value_get_boxed (param_values + 2), g_value_get_boxed (param_values + 3), data2);
#line 2664 "gitg-remote.c"
}


static GitgRemoteCallbacks* gitg_remote_callbacks_construct (GType object_type, GitgRemote* remote, GgitRemoteCallbacks* proxy, GitgRemoteCallbacksTransferProgress transfer_progress, void* transfer_progress_target, GDestroyNotify transfer_progress_target_destroy_notify) {
	GitgRemoteCallbacks * self = NULL;
	GitgRemote* _tmp0_ = NULL;
	GitgRemote* _tmp1_ = NULL;
	GgitRemoteCallbacks* _tmp2_ = NULL;
	GgitRemoteCallbacks* _tmp3_ = NULL;
	GitgRemoteCallbacksTransferProgress _tmp4_ = NULL;
	void* _tmp4__target = NULL;
	GDestroyNotify _tmp4__target_destroy_notify = NULL;
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (remote != NULL, NULL);
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) g_object_new (object_type, NULL);
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = remote;
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->d_remote);
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_remote = _tmp1_;
#line 57 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = proxy;
#line 57 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 57 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->d_proxy);
#line 57 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_proxy = _tmp3_;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = transfer_progress;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4__target = transfer_progress_target;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4__target_destroy_notify = transfer_progress_target_destroy_notify;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	transfer_progress_target_destroy_notify = NULL;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	(self->priv->d_transfer_progress_target_destroy_notify == NULL) ? NULL : (self->priv->d_transfer_progress_target_destroy_notify (self->priv->d_transfer_progress_target), NULL);
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress = NULL;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target = NULL;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target_destroy_notify = NULL;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress = _tmp4_;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target = _tmp4__target;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target_destroy_notify = _tmp4__target_destroy_notify;
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	(transfer_progress_target_destroy_notify == NULL) ? NULL : (transfer_progress_target_destroy_notify (transfer_progress_target), NULL);
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	transfer_progress = NULL;
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	transfer_progress_target = NULL;
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	transfer_progress_target_destroy_notify = NULL;
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return self;
#line 2729 "gitg-remote.c"
}


static GitgRemoteCallbacks* gitg_remote_callbacks_new (GitgRemote* remote, GgitRemoteCallbacks* proxy, GitgRemoteCallbacksTransferProgress transfer_progress, void* transfer_progress_target, GDestroyNotify transfer_progress_target_destroy_notify) {
#line 54 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return gitg_remote_callbacks_construct (GITG_REMOTE_TYPE_CALLBACKS, remote, proxy, transfer_progress, transfer_progress_target, transfer_progress_target_destroy_notify);
#line 2736 "gitg-remote.c"
}


static void gitg_remote_callbacks_real_progress (GgitRemoteCallbacks* base, const gchar* message) {
	GitgRemoteCallbacks * self;
	GgitRemoteCallbacks* _tmp0_ = NULL;
#line 61 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) base;
#line 61 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (message != NULL);
#line 63 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_proxy;
#line 63 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != NULL) {
#line 2751 "gitg-remote.c"
		GgitRemoteCallbacks* _tmp1_ = NULL;
		const gchar* _tmp2_ = NULL;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_proxy;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = message;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_signal_emit_by_name (_tmp1_, "progress", _tmp2_);
#line 2760 "gitg-remote.c"
	}
}


static void gitg_remote_callbacks_real_transfer_progress (GgitRemoteCallbacks* base, GgitTransferProgress* stats) {
	GitgRemoteCallbacks * self;
	GitgRemoteCallbacksTransferProgress _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	GgitRemoteCallbacks* _tmp3_ = NULL;
#line 69 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) base;
#line 69 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (stats != NULL);
#line 71 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_transfer_progress;
#line 71 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0__target = self->priv->d_transfer_progress_target;
#line 71 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != NULL) {
#line 2780 "gitg-remote.c"
		GitgRemoteCallbacksTransferProgress _tmp1_ = NULL;
		void* _tmp1__target = NULL;
		GgitTransferProgress* _tmp2_ = NULL;
#line 73 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_transfer_progress;
#line 73 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1__target = self->priv->d_transfer_progress_target;
#line 73 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = stats;
#line 73 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ (_tmp2_, _tmp1__target);
#line 2792 "gitg-remote.c"
	}
#line 76 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = self->priv->d_proxy;
#line 76 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp3_ != NULL) {
#line 2798 "gitg-remote.c"
		GgitRemoteCallbacks* _tmp4_ = NULL;
		GgitTransferProgress* _tmp5_ = NULL;
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp4_ = self->priv->d_proxy;
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp5_ = stats;
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_signal_emit_by_name (_tmp4_, "transfer-progress", _tmp5_);
#line 2807 "gitg-remote.c"
	}
}


static void gitg_remote_callbacks_real_update_tips (GgitRemoteCallbacks* base, const gchar* refname, GgitOId* a, GgitOId* b) {
	GitgRemoteCallbacks * self;
	GitgRemote* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GgitOId* _tmp2_ = NULL;
	GgitOId* _tmp3_ = NULL;
	GgitRemoteCallbacks* _tmp4_ = NULL;
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) base;
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (refname != NULL);
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (a != NULL);
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_if_fail (b != NULL);
#line 84 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_remote;
#line 84 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = refname;
#line 84 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = a;
#line 84 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = b;
#line 84 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_signal_emit_by_name (_tmp0_, "tip-updated", _tmp1_, _tmp2_, _tmp3_);
#line 86 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = self->priv->d_proxy;
#line 86 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp4_ != NULL) {
#line 2841 "gitg-remote.c"
		GgitRemoteCallbacks* _tmp5_ = NULL;
		const gchar* _tmp6_ = NULL;
		GgitOId* _tmp7_ = NULL;
		GgitOId* _tmp8_ = NULL;
#line 88 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp5_ = self->priv->d_proxy;
#line 88 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp6_ = refname;
#line 88 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7_ = a;
#line 88 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8_ = b;
#line 88 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_signal_emit_by_name (_tmp5_, "update-tips", _tmp6_, _tmp7_, _tmp8_);
#line 2856 "gitg-remote.c"
	}
}


static void gitg_remote_callbacks_real_completion (GgitRemoteCallbacks* base, GgitRemoteCompletionType type) {
	GitgRemoteCallbacks * self;
	GgitRemoteCallbacks* _tmp0_ = NULL;
#line 92 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) base;
#line 94 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_proxy;
#line 94 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp0_ != NULL) {
#line 2870 "gitg-remote.c"
		GgitRemoteCallbacks* _tmp1_ = NULL;
		GgitRemoteCompletionType _tmp2_ = 0;
#line 96 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp1_ = self->priv->d_proxy;
#line 96 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp2_ = type;
#line 96 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_signal_emit_by_name (_tmp1_, "completion", _tmp2_);
#line 2879 "gitg-remote.c"
	}
}


static GgitCred* gitg_remote_callbacks_real_credentials (GgitRemoteCallbacks* base, const gchar* url, const gchar* username_from_url, GgitCredtype allowed_types, GError** error) {
	GitgRemoteCallbacks * self;
	GgitCred* result = NULL;
	GgitCred* ret = NULL;
	GitgCredentialsProvider* provider = NULL;
	GitgRemote* _tmp0_ = NULL;
	GitgCredentialsProvider* _tmp1_ = NULL;
	GitgCredentialsProvider* _tmp2_ = NULL;
	GitgCredentialsProvider* _tmp3_ = NULL;
	GitgCredentialsProvider* _tmp4_ = NULL;
	gboolean _tmp12_ = FALSE;
	GgitCred* _tmp13_ = NULL;
	GError * _inner_error_ = NULL;
#line 100 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = (GitgRemoteCallbacks*) base;
#line 100 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_return_val_if_fail (url != NULL, NULL);
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	ret = NULL;
#line 104 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp0_ = self->priv->d_remote;
#line 104 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp1_ = gitg_remote_get_credentials_provider (_tmp0_);
#line 104 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp2_ = _tmp1_;
#line 104 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 104 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	provider = _tmp3_;
#line 106 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp4_ = provider;
#line 106 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp4_ != NULL) {
#line 2917 "gitg-remote.c"
		GgitCred* _tmp5_ = NULL;
		GitgCredentialsProvider* _tmp6_ = NULL;
		const gchar* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		GgitCredtype _tmp9_ = 0;
		GgitCred* _tmp10_ = NULL;
		GgitCred* _tmp11_ = NULL;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp6_ = provider;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp7_ = url;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp8_ = username_from_url;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp9_ = allowed_types;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp10_ = gitg_credentials_provider_credentials (_tmp6_, _tmp7_, _tmp8_, _tmp9_, &_inner_error_);
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp5_ = _tmp10_;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_propagate_error (error, _inner_error_);
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_object_unref0 (provider);
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_object_unref0 (ret);
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return NULL;
#line 2947 "gitg-remote.c"
		}
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp11_ = _tmp5_;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp5_ = NULL;
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (ret);
#line 108 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		ret = _tmp11_;
#line 106 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (_tmp5_);
#line 2959 "gitg-remote.c"
	}
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_tmp13_ = ret;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp13_ == NULL) {
#line 2965 "gitg-remote.c"
		GgitRemoteCallbacks* _tmp14_ = NULL;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp14_ = self->priv->d_proxy;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp12_ = _tmp14_ != NULL;
#line 2971 "gitg-remote.c"
	} else {
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp12_ = FALSE;
#line 2975 "gitg-remote.c"
	}
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	if (_tmp12_) {
#line 2979 "gitg-remote.c"
		GgitCred* _tmp15_ = NULL;
		GgitRemoteCallbacks* _tmp16_ = NULL;
		const gchar* _tmp17_ = NULL;
		const gchar* _tmp18_ = NULL;
		GgitCredtype _tmp19_ = 0;
		GgitCred* _tmp20_ = NULL;
		GgitCred* _tmp21_ = NULL;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp16_ = self->priv->d_proxy;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp17_ = url;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp18_ = username_from_url;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp19_ = allowed_types;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp20_ = GGIT_REMOTE_CALLBACKS_GET_CLASS (_tmp16_)->credentials (_tmp16_, _tmp17_, _tmp18_, _tmp19_, &_inner_error_);
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp15_ = _tmp20_;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_propagate_error (error, _inner_error_);
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_object_unref0 (provider);
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			_g_object_unref0 (ret);
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			return NULL;
#line 3009 "gitg-remote.c"
		}
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp21_ = _tmp15_;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_tmp15_ = NULL;
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (ret);
#line 113 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		ret = _tmp21_;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		_g_object_unref0 (_tmp15_);
#line 3021 "gitg-remote.c"
	}
#line 116 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	result = ret;
#line 116 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (provider);
#line 116 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	return result;
#line 3029 "gitg-remote.c"
}


static void gitg_remote_callbacks_class_init (GitgRemoteCallbacksClass * klass) {
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_callbacks_parent_class = g_type_class_peek_parent (klass);
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_type_class_add_private (klass, sizeof (GitgRemoteCallbacksPrivate));
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GgitRemoteCallbacksClass *) klass)->progress = gitg_remote_callbacks_real_progress;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GgitRemoteCallbacksClass *) klass)->transfer_progress = gitg_remote_callbacks_real_transfer_progress;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GgitRemoteCallbacksClass *) klass)->update_tips = gitg_remote_callbacks_real_update_tips;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GgitRemoteCallbacksClass *) klass)->completion = gitg_remote_callbacks_real_completion;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GgitRemoteCallbacksClass *) klass)->credentials = gitg_remote_callbacks_real_credentials;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_remote_callbacks_finalize;
#line 3050 "gitg-remote.c"
}


static void gitg_remote_callbacks_instance_init (GitgRemoteCallbacks * self) {
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv = GITG_REMOTE_CALLBACKS_GET_PRIVATE (self);
#line 3057 "gitg-remote.c"
}


static void gitg_remote_callbacks_finalize (GObject* obj) {
	GitgRemoteCallbacks * self;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_REMOTE_TYPE_CALLBACKS, GitgRemoteCallbacks);
#line 48 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->d_remote);
#line 49 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->d_proxy);
#line 52 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	(self->priv->d_transfer_progress_target_destroy_notify == NULL) ? NULL : (self->priv->d_transfer_progress_target_destroy_notify (self->priv->d_transfer_progress_target), NULL);
#line 52 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress = NULL;
#line 52 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target = NULL;
#line 52 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_transfer_progress_target_destroy_notify = NULL;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (gitg_remote_callbacks_parent_class)->finalize (obj);
#line 3079 "gitg-remote.c"
}


static GType gitg_remote_callbacks_get_type (void) {
	static volatile gsize gitg_remote_callbacks_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_remote_callbacks_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgRemoteCallbacksClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_remote_callbacks_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgRemoteCallbacks), 0, (GInstanceInitFunc) gitg_remote_callbacks_instance_init, NULL };
		GType gitg_remote_callbacks_type_id;
		gitg_remote_callbacks_type_id = g_type_register_static (ggit_remote_callbacks_get_type (), "GitgRemoteCallbacks", &g_define_type_info, 0);
		g_once_init_leave (&gitg_remote_callbacks_type_id__volatile, gitg_remote_callbacks_type_id);
	}
	return gitg_remote_callbacks_type_id__volatile;
}


static void gitg_remote_class_init (GitgRemoteClass * klass) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	gitg_remote_parent_class = g_type_class_peek_parent (klass);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_type_class_add_private (klass, sizeof (GitgRemotePrivate));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	((GObjectClass *) klass)->dispose = gitg_remote_real_dispose;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_gitg_remote_get_property;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_gitg_remote_set_property;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_remote_finalize;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_REMOTE_TRANSFER_PROGRESS, g_param_spec_double ("transfer-progress", "transfer-progress", "transfer-progress", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_REMOTE_STATE, g_param_spec_enum ("state", "state", "state", GITG_TYPE_REMOTE_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_REMOTE_FETCH_SPECS, g_param_spec_boxed ("fetch-specs", "fetch-specs", "fetch-specs", G_TYPE_STRV, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_REMOTE_PUSH_SPECS, g_param_spec_boxed ("push-specs", "push-specs", "push-specs", G_TYPE_STRV, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_REMOTE_CREDENTIALS_PROVIDER, g_param_spec_object ("credentials-provider", "credentials-provider", "credentials-provider", GITG_TYPE_CREDENTIALS_PROVIDER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	g_signal_new ("tip_updated", GITG_TYPE_REMOTE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED, G_TYPE_NONE, 3, G_TYPE_STRING, ggit_oid_get_type (), ggit_oid_get_type ());
#line 3120 "gitg-remote.c"
}


static void gitg_remote_instance_init (GitgRemote * self) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv = GITG_REMOTE_GET_PRIVATE (self);
#line 3127 "gitg-remote.c"
}


static void gitg_remote_finalize (GObject* obj) {
	GitgRemote * self;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_TYPE_REMOTE, GitgRemote);
#line 121 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_fetch_specs = (_vala_array_free (self->priv->d_fetch_specs, self->priv->d_fetch_specs_length1, (GDestroyNotify) g_free), NULL);
#line 122 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	self->priv->d_push_specs = (_vala_array_free (self->priv->d_push_specs, self->priv->d_push_specs_length1, (GDestroyNotify) g_free), NULL);
#line 427 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	_g_object_unref0 (self->priv->_credentials_provider);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	G_OBJECT_CLASS (gitg_remote_parent_class)->finalize (obj);
#line 3143 "gitg-remote.c"
}


GType gitg_remote_get_type (void) {
	static volatile gsize gitg_remote_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_remote_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgRemoteClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_remote_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgRemote), 0, (GInstanceInitFunc) gitg_remote_instance_init, NULL };
		GType gitg_remote_type_id;
		gitg_remote_type_id = g_type_register_static (ggit_remote_get_type (), "GitgRemote", &g_define_type_info, 0);
		g_once_init_leave (&gitg_remote_type_id__volatile, gitg_remote_type_id);
	}
	return gitg_remote_type_id__volatile;
}


static void _vala_gitg_remote_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GitgRemote * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GITG_TYPE_REMOTE, GitgRemote);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (property_id) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_TRANSFER_PROGRESS:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_value_set_double (value, gitg_remote_get_transfer_progress (self));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_STATE:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_value_set_enum (value, gitg_remote_get_state (self));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_FETCH_SPECS:
#line 3178 "gitg-remote.c"
		{
			int length;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_value_take_boxed (value, gitg_remote_get_fetch_specs (self, &length));
#line 3183 "gitg-remote.c"
		}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_PUSH_SPECS:
#line 3189 "gitg-remote.c"
		{
			int length;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			g_value_take_boxed (value, gitg_remote_get_push_specs (self, &length));
#line 3194 "gitg-remote.c"
		}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_CREDENTIALS_PROVIDER:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		g_value_set_object (value, gitg_remote_get_credentials_provider (self));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 3204 "gitg-remote.c"
		default:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 3210 "gitg-remote.c"
	}
}


static void _vala_gitg_remote_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	GitgRemote * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GITG_TYPE_REMOTE, GitgRemote);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
	switch (property_id) {
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_STATE:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_set_state (self, g_value_get_enum (value));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_FETCH_SPECS:
#line 3228 "gitg-remote.c"
		{
			gpointer boxed;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			boxed = g_value_get_boxed (value);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_set_fetch_specs (self, boxed, (boxed == NULL) ? 0 : g_strv_length (boxed));
#line 3235 "gitg-remote.c"
		}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_PUSH_SPECS:
#line 3241 "gitg-remote.c"
		{
			gpointer boxed;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			boxed = g_value_get_boxed (value);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
			gitg_remote_set_push_specs (self, boxed, (boxed == NULL) ? 0 : g_strv_length (boxed));
#line 3248 "gitg-remote.c"
		}
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		case GITG_REMOTE_CREDENTIALS_PROVIDER:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		gitg_remote_set_credentials_provider (self, g_value_get_object (value));
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 3258 "gitg-remote.c"
		default:
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 44 "/home/jesse/dev/gitg/libgitg/gitg-remote.vala"
		break;
#line 3264 "gitg-remote.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);
}


static gint _vala_array_length (gpointer array) {
	int length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}



