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

/* valagdbusclientmodule.vala
 *
 * Copyright (C) 2010-2011  Jürg Billeter
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library 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
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Jürg Billeter <j@bitron.ch>
 * 	Philip Van Hoof <pvanhoof@gnome.org>
 */

#include <glib.h>
#include <glib-object.h>
#include "valacodegen.h"
#include <vala.h>
#include <valaccode.h>
#include <valagee.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#include <math.h>


#define VALA_GD_BUS_CLIENT_MODULE_TYPE_CALL_TYPE (vala_gd_bus_client_module_call_type_get_type ())
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_map_unref0(var) ((var == NULL) ? NULL : (var = (vala_map_unref (var), NULL)))
#define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
#define _vala_iterable_unref0(var) ((var == NULL) ? NULL : (var = (vala_iterable_unref (var), NULL)))

typedef enum  {
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH,
	VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY
} ValaGDBusClientModuleCallType;


static gpointer vala_gd_bus_client_module_parent_class = NULL;

static GType vala_gd_bus_client_module_call_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method);
static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name, gint method_timeout);
static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop);
static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface);
static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space);
static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface);
static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr);
static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym);
static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym);


static GType vala_gd_bus_client_module_call_type_get_type (void) {
	static volatile gsize vala_gd_bus_client_module_call_type_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_call_type_type_id__volatile)) {
		static const GEnumValue values[] = {{VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC", "sync"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC", "async"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH", "finish"}, {VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY, "VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY", "no-reply"}, {0, NULL, NULL}};
		GType vala_gd_bus_client_module_call_type_type_id;
		vala_gd_bus_client_module_call_type_type_id = g_enum_register_static ("ValaGDBusClientModuleCallType", values);
		g_once_init_leave (&vala_gd_bus_client_module_call_type_type_id__volatile, vala_gd_bus_client_module_call_type_type_id);
	}
	return vala_gd_bus_client_module_call_type_type_id__volatile;
}


ValaCCodeConstant* vala_gd_bus_client_module_get_dbus_timeout (ValaGDBusClientModule* self, ValaSymbol* symbol) {
	ValaCCodeConstant* result = NULL;
	gint timeout = 0;
	ValaAttribute* dbus = NULL;
	ValaSymbol* _tmp0_;
	ValaAttribute* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ValaAttribute* _tmp3_;
	gint _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	ValaCCodeConstant* _tmp18_;
	ValaCCodeConstant* _tmp19_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (symbol != NULL, NULL);
	timeout = -1;
	_tmp0_ = symbol;
	_tmp1_ = vala_code_node_get_attribute ((ValaCodeNode*) _tmp0_, "DBus");
	dbus = _tmp1_;
	_tmp3_ = dbus;
	if (_tmp3_ != NULL) {
		ValaAttribute* _tmp4_;
		gboolean _tmp5_;
		_tmp4_ = dbus;
		_tmp5_ = vala_attribute_has_argument (_tmp4_, "timeout");
		_tmp2_ = _tmp5_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ValaAttribute* _tmp6_;
		gint _tmp7_;
		_tmp6_ = dbus;
		_tmp7_ = vala_attribute_get_integer (_tmp6_, "timeout", 0);
		timeout = _tmp7_;
	} else {
		ValaSymbol* _tmp8_;
		ValaSymbol* _tmp9_;
		ValaSymbol* _tmp10_;
		_tmp8_ = symbol;
		_tmp9_ = vala_symbol_get_parent_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		if (_tmp10_ != NULL) {
			ValaSymbol* _tmp11_;
			ValaSymbol* _tmp12_;
			ValaSymbol* _tmp13_;
			ValaCCodeConstant* _tmp14_;
			_tmp11_ = symbol;
			_tmp12_ = vala_symbol_get_parent_symbol (_tmp11_);
			_tmp13_ = _tmp12_;
			_tmp14_ = vala_gd_bus_client_module_get_dbus_timeout (self, _tmp13_);
			result = _tmp14_;
			_vala_code_node_unref0 (dbus);
			return result;
		}
	}
	_tmp15_ = timeout;
	_tmp16_ = g_strdup_printf ("%i", _tmp15_);
	_tmp17_ = _tmp16_;
	_tmp18_ = vala_ccode_constant_new (_tmp17_);
	_tmp19_ = _tmp18_;
	_g_free0 (_tmp17_);
	result = _tmp19_;
	_vala_code_node_unref0 (dbus);
	return result;
}


static gpointer _vala_code_node_ref0 (gpointer self) {
	return self ? vala_code_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_generate_dynamic_method_wrapper (ValaCCodeBaseModule* base, ValaDynamicMethod* method) {
	ValaGDBusClientModule * self;
	ValaDynamicMethod* dynamic_method = NULL;
	ValaDynamicMethod* _tmp0_;
	ValaDynamicMethod* _tmp1_;
	ValaCCodeFunction* func = NULL;
	ValaDynamicMethod* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp8_;
	GEqualFunc _tmp9_;
	GEqualFunc _tmp10_;
	ValaHashMap* _tmp11_;
	ValaDynamicMethod* _tmp12_;
	ValaCCodeFile* _tmp13_;
	ValaHashMap* _tmp14_;
	ValaCCodeFunction* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaDynamicMethod* _tmp17_;
	ValaDataType* _tmp18_;
	ValaDataType* _tmp19_;
	ValaTypeSymbol* _tmp20_;
	ValaTypeSymbol* _tmp21_;
	ValaTypeSymbol* _tmp22_;
	ValaCCodeFile* _tmp37_;
	ValaCCodeFunction* _tmp38_;
	ValaCCodeFile* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (method != NULL);
	_tmp0_ = method;
	_tmp1_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, VALA_TYPE_DYNAMIC_METHOD, ValaDynamicMethod));
	dynamic_method = _tmp1_;
	_tmp2_ = method;
	_tmp3_ = vala_get_ccode_name ((ValaCodeNode*) _tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "void");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	func = _tmp6_;
	_tmp7_ = func;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp7_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp8_ = g_direct_hash;
	_tmp9_ = g_direct_equal;
	_tmp10_ = g_direct_equal;
	_tmp11_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp8_, _tmp9_, _tmp10_);
	cparam_map = _tmp11_;
	_tmp12_ = method;
	_tmp13_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp14_ = cparam_map;
	_tmp15_ = func;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, (ValaMethod*) _tmp12_, _tmp13_, (ValaMap*) _tmp14_, _tmp15_, NULL, NULL, NULL, 3);
	_tmp16_ = func;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp16_);
	_tmp17_ = dynamic_method;
	_tmp18_ = vala_dynamic_method_get_dynamic_type (_tmp17_);
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_data_type_get_data_type (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = ((ValaCCodeBaseModule*) self)->dbus_proxy_type;
	if (_tmp21_ == _tmp22_) {
		ValaDynamicMethod* _tmp23_;
		ValaDynamicMethod* _tmp24_;
		const gchar* _tmp25_;
		const gchar* _tmp26_;
		_tmp23_ = method;
		_tmp24_ = method;
		_tmp25_ = vala_symbol_get_name ((ValaSymbol*) _tmp24_);
		_tmp26_ = _tmp25_;
		vala_gd_bus_client_module_generate_marshalling (self, (ValaMethod*) _tmp23_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC, NULL, _tmp26_, -1);
	} else {
		ValaDynamicMethod* _tmp27_;
		ValaSourceReference* _tmp28_;
		ValaSourceReference* _tmp29_;
		ValaDynamicMethod* _tmp30_;
		ValaDataType* _tmp31_;
		ValaDataType* _tmp32_;
		gchar* _tmp33_;
		gchar* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		_tmp27_ = method;
		_tmp28_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = dynamic_method;
		_tmp31_ = vala_dynamic_method_get_dynamic_type (_tmp30_);
		_tmp32_ = _tmp31_;
		_tmp33_ = vala_code_node_to_string ((ValaCodeNode*) _tmp32_);
		_tmp34_ = _tmp33_;
		_tmp35_ = g_strdup_printf ("dynamic methods are not supported for `%s'", _tmp34_);
		_tmp36_ = _tmp35_;
		vala_report_error (_tmp29_, _tmp36_);
		_g_free0 (_tmp36_);
		_g_free0 (_tmp34_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp37_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp38_ = func;
	vala_ccode_file_add_function_declaration (_tmp37_, _tmp38_);
	_tmp39_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp40_ = func;
	vala_ccode_file_add_function (_tmp39_, _tmp40_);
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (func);
	_vala_code_node_unref0 (dynamic_method);
}


static void vala_gd_bus_client_module_generate_proxy_interface_init (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface) {
	gchar* lower_cname = NULL;
	ValaInterface* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	ValaCCodeFunction* proxy_iface_init = NULL;
	const gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	ValaInterface* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	ValaCCodeFunction* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFunction* _tmp35_;
	ValaInterface* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	ValaCCodeParameter* _tmp41_;
	ValaCCodeParameter* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaCCodeFunction* _tmp162_;
	ValaCCodeFile* _tmp163_;
	ValaCCodeFunction* _tmp164_;
	ValaCCodeFile* _tmp165_;
	ValaCCodeFunction* _tmp166_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (main_iface != NULL);
	g_return_if_fail (iface != NULL);
	{
		ValaList* _prereq_list = NULL;
		ValaInterface* _tmp0_;
		ValaList* _tmp1_;
		gint _prereq_size = 0;
		ValaList* _tmp2_;
		gint _tmp3_;
		gint _tmp4_;
		gint _prereq_index = 0;
		_tmp0_ = iface;
		_tmp1_ = vala_interface_get_prerequisites (_tmp0_);
		_prereq_list = _tmp1_;
		_tmp2_ = _prereq_list;
		_tmp3_ = vala_collection_get_size ((ValaCollection*) _tmp2_);
		_tmp4_ = _tmp3_;
		_prereq_size = _tmp4_;
		_prereq_index = -1;
		while (TRUE) {
			gint _tmp5_;
			gint _tmp6_;
			gint _tmp7_;
			ValaDataType* prereq = NULL;
			ValaList* _tmp8_;
			gint _tmp9_;
			gpointer _tmp10_;
			ValaDataType* _tmp11_;
			ValaTypeSymbol* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			_tmp5_ = _prereq_index;
			_prereq_index = _tmp5_ + 1;
			_tmp6_ = _prereq_index;
			_tmp7_ = _prereq_size;
			if (!(_tmp6_ < _tmp7_)) {
				break;
			}
			_tmp8_ = _prereq_list;
			_tmp9_ = _prereq_index;
			_tmp10_ = vala_list_get (_tmp8_, _tmp9_);
			prereq = (ValaDataType*) _tmp10_;
			_tmp11_ = prereq;
			_tmp12_ = vala_data_type_get_data_type (_tmp11_);
			_tmp13_ = _tmp12_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, VALA_TYPE_INTERFACE)) {
				ValaInterface* _tmp14_;
				ValaDataType* _tmp15_;
				ValaTypeSymbol* _tmp16_;
				ValaTypeSymbol* _tmp17_;
				_tmp14_ = main_iface;
				_tmp15_ = prereq;
				_tmp16_ = vala_data_type_get_data_type (_tmp15_);
				_tmp17_ = _tmp16_;
				vala_gd_bus_client_module_generate_proxy_interface_init (self, _tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, VALA_TYPE_INTERFACE, ValaInterface));
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	_tmp18_ = main_iface;
	_tmp19_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp18_);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_strconcat (_tmp20_, "proxy", NULL);
	_tmp22_ = _tmp21_;
	_g_free0 (_tmp20_);
	lower_cname = _tmp22_;
	_tmp23_ = lower_cname;
	_tmp24_ = g_strconcat (_tmp23_, "_", NULL);
	_tmp25_ = _tmp24_;
	_tmp26_ = iface;
	_tmp27_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp26_);
	_tmp28_ = _tmp27_;
	_tmp29_ = g_strconcat (_tmp25_, _tmp28_, NULL);
	_tmp30_ = _tmp29_;
	_tmp31_ = g_strconcat (_tmp30_, "interface_init", NULL);
	_tmp32_ = _tmp31_;
	_tmp33_ = vala_ccode_function_new (_tmp32_, "void");
	_tmp34_ = _tmp33_;
	_g_free0 (_tmp32_);
	_g_free0 (_tmp30_);
	_g_free0 (_tmp28_);
	_g_free0 (_tmp25_);
	proxy_iface_init = _tmp34_;
	_tmp35_ = proxy_iface_init;
	_tmp36_ = iface;
	_tmp37_ = vala_get_ccode_name ((ValaCodeNode*) _tmp36_);
	_tmp38_ = _tmp37_;
	_tmp39_ = g_strconcat (_tmp38_, "Iface*", NULL);
	_tmp40_ = _tmp39_;
	_tmp41_ = vala_ccode_parameter_new ("iface", _tmp40_);
	_tmp42_ = _tmp41_;
	vala_ccode_function_add_parameter (_tmp35_, _tmp42_);
	_vala_ccode_node_unref0 (_tmp42_);
	_g_free0 (_tmp40_);
	_g_free0 (_tmp38_);
	_tmp43_ = proxy_iface_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp43_);
	{
		ValaList* _m_list = NULL;
		ValaInterface* _tmp44_;
		ValaList* _tmp45_;
		gint _m_size = 0;
		ValaList* _tmp46_;
		gint _tmp47_;
		gint _tmp48_;
		gint _m_index = 0;
		_tmp44_ = iface;
		_tmp45_ = vala_object_type_symbol_get_methods ((ValaObjectTypeSymbol*) _tmp44_);
		_m_list = _tmp45_;
		_tmp46_ = _m_list;
		_tmp47_ = vala_collection_get_size ((ValaCollection*) _tmp46_);
		_tmp48_ = _tmp47_;
		_m_size = _tmp48_;
		_m_index = -1;
		while (TRUE) {
			gint _tmp49_;
			gint _tmp50_;
			gint _tmp51_;
			ValaMethod* m = NULL;
			ValaList* _tmp52_;
			gint _tmp53_;
			gpointer _tmp54_;
			ValaMethod* _tmp55_;
			gboolean _tmp56_;
			gboolean _tmp57_;
			ValaCCodeMemberAccess* vfunc_entry = NULL;
			ValaCCodeIdentifier* _tmp58_;
			ValaCCodeIdentifier* _tmp59_;
			ValaMethod* _tmp60_;
			gchar* _tmp61_;
			gchar* _tmp62_;
			ValaCCodeMemberAccess* _tmp63_;
			ValaCCodeMemberAccess* _tmp64_;
			ValaMethod* _tmp65_;
			gboolean _tmp66_;
			gboolean _tmp67_;
			_tmp49_ = _m_index;
			_m_index = _tmp49_ + 1;
			_tmp50_ = _m_index;
			_tmp51_ = _m_size;
			if (!(_tmp50_ < _tmp51_)) {
				break;
			}
			_tmp52_ = _m_list;
			_tmp53_ = _m_index;
			_tmp54_ = vala_list_get (_tmp52_, _tmp53_);
			m = (ValaMethod*) _tmp54_;
			_tmp55_ = m;
			_tmp56_ = vala_method_get_is_abstract (_tmp55_);
			_tmp57_ = _tmp56_;
			if (!_tmp57_) {
				_vala_code_node_unref0 (m);
				continue;
			}
			_tmp58_ = vala_ccode_identifier_new ("iface");
			_tmp59_ = _tmp58_;
			_tmp60_ = m;
			_tmp61_ = vala_get_ccode_vfunc_name (_tmp60_);
			_tmp62_ = _tmp61_;
			_tmp63_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp59_, _tmp62_);
			_tmp64_ = _tmp63_;
			_g_free0 (_tmp62_);
			_vala_ccode_node_unref0 (_tmp59_);
			vfunc_entry = _tmp64_;
			_tmp65_ = m;
			_tmp66_ = vala_method_get_coroutine (_tmp65_);
			_tmp67_ = _tmp66_;
			if (!_tmp67_) {
				ValaCCodeFunction* _tmp68_;
				ValaCCodeFunction* _tmp69_;
				ValaCCodeMemberAccess* _tmp70_;
				ValaInterface* _tmp71_;
				ValaInterface* _tmp72_;
				ValaMethod* _tmp73_;
				gchar* _tmp74_;
				gchar* _tmp75_;
				ValaCCodeIdentifier* _tmp76_;
				ValaCCodeIdentifier* _tmp77_;
				_tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp69_ = _tmp68_;
				_tmp70_ = vfunc_entry;
				_tmp71_ = main_iface;
				_tmp72_ = iface;
				_tmp73_ = m;
				_tmp74_ = vala_gd_bus_client_module_generate_dbus_proxy_method (self, _tmp71_, _tmp72_, _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp76_ = vala_ccode_identifier_new (_tmp75_);
				_tmp77_ = _tmp76_;
				vala_ccode_function_add_assignment (_tmp69_, (ValaCCodeExpression*) _tmp70_, (ValaCCodeExpression*) _tmp77_);
				_vala_ccode_node_unref0 (_tmp77_);
				_g_free0 (_tmp75_);
			} else {
				ValaCCodeFunction* _tmp78_;
				ValaCCodeFunction* _tmp79_;
				ValaCCodeMemberAccess* _tmp80_;
				ValaInterface* _tmp81_;
				ValaInterface* _tmp82_;
				ValaMethod* _tmp83_;
				gchar* _tmp84_;
				gchar* _tmp85_;
				ValaCCodeIdentifier* _tmp86_;
				ValaCCodeIdentifier* _tmp87_;
				ValaCCodeIdentifier* _tmp88_;
				ValaCCodeIdentifier* _tmp89_;
				ValaMethod* _tmp90_;
				gchar* _tmp91_;
				gchar* _tmp92_;
				ValaCCodeMemberAccess* _tmp93_;
				ValaCCodeFunction* _tmp94_;
				ValaCCodeFunction* _tmp95_;
				ValaCCodeMemberAccess* _tmp96_;
				ValaInterface* _tmp97_;
				ValaInterface* _tmp98_;
				ValaMethod* _tmp99_;
				gchar* _tmp100_;
				gchar* _tmp101_;
				ValaCCodeIdentifier* _tmp102_;
				ValaCCodeIdentifier* _tmp103_;
				_tmp78_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp79_ = _tmp78_;
				_tmp80_ = vfunc_entry;
				_tmp81_ = main_iface;
				_tmp82_ = iface;
				_tmp83_ = m;
				_tmp84_ = vala_gd_bus_client_module_generate_async_dbus_proxy_method (self, _tmp81_, _tmp82_, _tmp83_);
				_tmp85_ = _tmp84_;
				_tmp86_ = vala_ccode_identifier_new (_tmp85_);
				_tmp87_ = _tmp86_;
				vala_ccode_function_add_assignment (_tmp79_, (ValaCCodeExpression*) _tmp80_, (ValaCCodeExpression*) _tmp87_);
				_vala_ccode_node_unref0 (_tmp87_);
				_g_free0 (_tmp85_);
				_tmp88_ = vala_ccode_identifier_new ("iface");
				_tmp89_ = _tmp88_;
				_tmp90_ = m;
				_tmp91_ = vala_get_ccode_finish_vfunc_name (_tmp90_);
				_tmp92_ = _tmp91_;
				_tmp93_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp89_, _tmp92_);
				_vala_ccode_node_unref0 (vfunc_entry);
				vfunc_entry = _tmp93_;
				_g_free0 (_tmp92_);
				_vala_ccode_node_unref0 (_tmp89_);
				_tmp94_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp95_ = _tmp94_;
				_tmp96_ = vfunc_entry;
				_tmp97_ = main_iface;
				_tmp98_ = iface;
				_tmp99_ = m;
				_tmp100_ = vala_gd_bus_client_module_generate_finish_dbus_proxy_method (self, _tmp97_, _tmp98_, _tmp99_);
				_tmp101_ = _tmp100_;
				_tmp102_ = vala_ccode_identifier_new (_tmp101_);
				_tmp103_ = _tmp102_;
				vala_ccode_function_add_assignment (_tmp95_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp103_);
				_vala_ccode_node_unref0 (_tmp103_);
				_g_free0 (_tmp101_);
			}
			_vala_ccode_node_unref0 (vfunc_entry);
			_vala_code_node_unref0 (m);
		}
		_vala_iterable_unref0 (_m_list);
	}
	{
		ValaList* _prop_list = NULL;
		ValaInterface* _tmp104_;
		ValaList* _tmp105_;
		gint _prop_size = 0;
		ValaList* _tmp106_;
		gint _tmp107_;
		gint _tmp108_;
		gint _prop_index = 0;
		_tmp104_ = iface;
		_tmp105_ = vala_object_type_symbol_get_properties ((ValaObjectTypeSymbol*) _tmp104_);
		_prop_list = _tmp105_;
		_tmp106_ = _prop_list;
		_tmp107_ = vala_collection_get_size ((ValaCollection*) _tmp106_);
		_tmp108_ = _tmp107_;
		_prop_size = _tmp108_;
		_prop_index = -1;
		while (TRUE) {
			gint _tmp109_;
			gint _tmp110_;
			gint _tmp111_;
			ValaProperty* prop = NULL;
			ValaList* _tmp112_;
			gint _tmp113_;
			gpointer _tmp114_;
			ValaProperty* _tmp115_;
			gboolean _tmp116_;
			gboolean _tmp117_;
			ValaProperty* _tmp118_;
			ValaPropertyAccessor* _tmp119_;
			ValaPropertyAccessor* _tmp120_;
			ValaProperty* _tmp140_;
			ValaPropertyAccessor* _tmp141_;
			ValaPropertyAccessor* _tmp142_;
			_tmp109_ = _prop_index;
			_prop_index = _tmp109_ + 1;
			_tmp110_ = _prop_index;
			_tmp111_ = _prop_size;
			if (!(_tmp110_ < _tmp111_)) {
				break;
			}
			_tmp112_ = _prop_list;
			_tmp113_ = _prop_index;
			_tmp114_ = vala_list_get (_tmp112_, _tmp113_);
			prop = (ValaProperty*) _tmp114_;
			_tmp115_ = prop;
			_tmp116_ = vala_property_get_is_abstract (_tmp115_);
			_tmp117_ = _tmp116_;
			if (!_tmp117_) {
				_vala_code_node_unref0 (prop);
				continue;
			}
			_tmp118_ = prop;
			_tmp119_ = vala_property_get_get_accessor (_tmp118_);
			_tmp120_ = _tmp119_;
			if (_tmp120_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp121_;
				ValaCCodeIdentifier* _tmp122_;
				ValaProperty* _tmp123_;
				const gchar* _tmp124_;
				const gchar* _tmp125_;
				gchar* _tmp126_;
				gchar* _tmp127_;
				ValaCCodeMemberAccess* _tmp128_;
				ValaCCodeMemberAccess* _tmp129_;
				ValaCCodeFunction* _tmp130_;
				ValaCCodeFunction* _tmp131_;
				ValaCCodeMemberAccess* _tmp132_;
				ValaInterface* _tmp133_;
				ValaInterface* _tmp134_;
				ValaProperty* _tmp135_;
				gchar* _tmp136_;
				gchar* _tmp137_;
				ValaCCodeIdentifier* _tmp138_;
				ValaCCodeIdentifier* _tmp139_;
				_tmp121_ = vala_ccode_identifier_new ("iface");
				_tmp122_ = _tmp121_;
				_tmp123_ = prop;
				_tmp124_ = vala_symbol_get_name ((ValaSymbol*) _tmp123_);
				_tmp125_ = _tmp124_;
				_tmp126_ = g_strconcat ("get_", _tmp125_, NULL);
				_tmp127_ = _tmp126_;
				_tmp128_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp122_, _tmp127_);
				_tmp129_ = _tmp128_;
				_g_free0 (_tmp127_);
				_vala_ccode_node_unref0 (_tmp122_);
				vfunc_entry = _tmp129_;
				_tmp130_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp131_ = _tmp130_;
				_tmp132_ = vfunc_entry;
				_tmp133_ = main_iface;
				_tmp134_ = iface;
				_tmp135_ = prop;
				_tmp136_ = vala_gd_bus_client_module_generate_dbus_proxy_property_get (self, _tmp133_, _tmp134_, _tmp135_);
				_tmp137_ = _tmp136_;
				_tmp138_ = vala_ccode_identifier_new (_tmp137_);
				_tmp139_ = _tmp138_;
				vala_ccode_function_add_assignment (_tmp131_, (ValaCCodeExpression*) _tmp132_, (ValaCCodeExpression*) _tmp139_);
				_vala_ccode_node_unref0 (_tmp139_);
				_g_free0 (_tmp137_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_tmp140_ = prop;
			_tmp141_ = vala_property_get_set_accessor (_tmp140_);
			_tmp142_ = _tmp141_;
			if (_tmp142_ != NULL) {
				ValaCCodeMemberAccess* vfunc_entry = NULL;
				ValaCCodeIdentifier* _tmp143_;
				ValaCCodeIdentifier* _tmp144_;
				ValaProperty* _tmp145_;
				const gchar* _tmp146_;
				const gchar* _tmp147_;
				gchar* _tmp148_;
				gchar* _tmp149_;
				ValaCCodeMemberAccess* _tmp150_;
				ValaCCodeMemberAccess* _tmp151_;
				ValaCCodeFunction* _tmp152_;
				ValaCCodeFunction* _tmp153_;
				ValaCCodeMemberAccess* _tmp154_;
				ValaInterface* _tmp155_;
				ValaInterface* _tmp156_;
				ValaProperty* _tmp157_;
				gchar* _tmp158_;
				gchar* _tmp159_;
				ValaCCodeIdentifier* _tmp160_;
				ValaCCodeIdentifier* _tmp161_;
				_tmp143_ = vala_ccode_identifier_new ("iface");
				_tmp144_ = _tmp143_;
				_tmp145_ = prop;
				_tmp146_ = vala_symbol_get_name ((ValaSymbol*) _tmp145_);
				_tmp147_ = _tmp146_;
				_tmp148_ = g_strconcat ("set_", _tmp147_, NULL);
				_tmp149_ = _tmp148_;
				_tmp150_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp144_, _tmp149_);
				_tmp151_ = _tmp150_;
				_g_free0 (_tmp149_);
				_vala_ccode_node_unref0 (_tmp144_);
				vfunc_entry = _tmp151_;
				_tmp152_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp153_ = _tmp152_;
				_tmp154_ = vfunc_entry;
				_tmp155_ = main_iface;
				_tmp156_ = iface;
				_tmp157_ = prop;
				_tmp158_ = vala_gd_bus_client_module_generate_dbus_proxy_property_set (self, _tmp155_, _tmp156_, _tmp157_);
				_tmp159_ = _tmp158_;
				_tmp160_ = vala_ccode_identifier_new (_tmp159_);
				_tmp161_ = _tmp160_;
				vala_ccode_function_add_assignment (_tmp153_, (ValaCCodeExpression*) _tmp154_, (ValaCCodeExpression*) _tmp161_);
				_vala_ccode_node_unref0 (_tmp161_);
				_g_free0 (_tmp159_);
				_vala_ccode_node_unref0 (vfunc_entry);
			}
			_vala_code_node_unref0 (prop);
		}
		_vala_iterable_unref0 (_prop_list);
	}
	_tmp162_ = proxy_iface_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp162_, VALA_CCODE_MODIFIERS_STATIC);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp163_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp164_ = proxy_iface_init;
	vala_ccode_file_add_function_declaration (_tmp163_, _tmp164_);
	_tmp165_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp166_ = proxy_iface_init;
	vala_ccode_file_add_function (_tmp165_, _tmp166_);
	_vala_ccode_node_unref0 (proxy_iface_init);
	_g_free0 (lower_cname);
}


static gchar* vala_gd_bus_client_module_implement_interface (ValaGDBusClientModule* self, ValaCCodeFunctionCall* define_type, ValaInterface* main_iface, ValaInterface* iface) {
	gchar* result = NULL;
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* interface_macro = NULL;
	gboolean _tmp24_;
	const gchar* _tmp27_;
	const gchar* _tmp28_;
	ValaInterface* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	ValaInterface* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	ValaInterface* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	gchar* _tmp40_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (define_type != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	_tmp0_ = g_strdup ("");
	_result_ = _tmp0_;
	{
		ValaList* _prereq_list = NULL;
		ValaInterface* _tmp1_;
		ValaList* _tmp2_;
		gint _prereq_size = 0;
		ValaList* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gint _prereq_index = 0;
		_tmp1_ = iface;
		_tmp2_ = vala_interface_get_prerequisites (_tmp1_);
		_prereq_list = _tmp2_;
		_tmp3_ = _prereq_list;
		_tmp4_ = vala_collection_get_size ((ValaCollection*) _tmp3_);
		_tmp5_ = _tmp4_;
		_prereq_size = _tmp5_;
		_prereq_index = -1;
		while (TRUE) {
			gint _tmp6_;
			gint _tmp7_;
			gint _tmp8_;
			ValaDataType* prereq = NULL;
			ValaList* _tmp9_;
			gint _tmp10_;
			gpointer _tmp11_;
			ValaDataType* _tmp12_;
			ValaTypeSymbol* _tmp13_;
			ValaTypeSymbol* _tmp14_;
			_tmp6_ = _prereq_index;
			_prereq_index = _tmp6_ + 1;
			_tmp7_ = _prereq_index;
			_tmp8_ = _prereq_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _prereq_list;
			_tmp10_ = _prereq_index;
			_tmp11_ = vala_list_get (_tmp9_, _tmp10_);
			prereq = (ValaDataType*) _tmp11_;
			_tmp12_ = prereq;
			_tmp13_ = vala_data_type_get_data_type (_tmp12_);
			_tmp14_ = _tmp13_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, VALA_TYPE_INTERFACE)) {
				const gchar* _tmp15_;
				ValaCCodeFunctionCall* _tmp16_;
				ValaInterface* _tmp17_;
				ValaDataType* _tmp18_;
				ValaTypeSymbol* _tmp19_;
				ValaTypeSymbol* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				gchar* _tmp23_;
				_tmp15_ = _result_;
				_tmp16_ = define_type;
				_tmp17_ = main_iface;
				_tmp18_ = prereq;
				_tmp19_ = vala_data_type_get_data_type (_tmp18_);
				_tmp20_ = _tmp19_;
				_tmp21_ = vala_gd_bus_client_module_implement_interface (self, _tmp16_, _tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, VALA_TYPE_INTERFACE, ValaInterface));
				_tmp22_ = _tmp21_;
				_tmp23_ = g_strconcat (_tmp15_, _tmp22_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp23_;
				_g_free0 (_tmp22_);
			}
			_vala_code_node_unref0 (prereq);
		}
		_vala_iterable_unref0 (_prereq_list);
	}
	_tmp24_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp24_) {
		gchar* _tmp25_;
		_tmp25_ = g_strdup ("G_IMPLEMENT_INTERFACE_DYNAMIC");
		_g_free0 (interface_macro);
		interface_macro = _tmp25_;
	} else {
		gchar* _tmp26_;
		_tmp26_ = g_strdup ("G_IMPLEMENT_INTERFACE");
		_g_free0 (interface_macro);
		interface_macro = _tmp26_;
	}
	_tmp27_ = _result_;
	_tmp28_ = interface_macro;
	_tmp29_ = iface;
	_tmp30_ = vala_get_ccode_upper_case_name ((ValaSymbol*) _tmp29_, "TYPE_");
	_tmp31_ = _tmp30_;
	_tmp32_ = main_iface;
	_tmp33_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = iface;
	_tmp36_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp35_);
	_tmp37_ = _tmp36_;
	_tmp38_ = g_strdup_printf ("%s (%s, %sproxy_%sinterface_init) ", _tmp28_, _tmp31_, _tmp34_, _tmp37_);
	_tmp39_ = _tmp38_;
	_tmp40_ = g_strconcat (_tmp27_, _tmp39_, NULL);
	_g_free0 (_result_);
	_result_ = _tmp40_;
	_g_free0 (_tmp39_);
	_g_free0 (_tmp37_);
	_g_free0 (_tmp34_);
	_g_free0 (_tmp31_);
	result = _result_;
	_g_free0 (interface_macro);
	return result;
}


static void vala_gd_bus_client_module_real_generate_interface_declaration (ValaCCodeBaseModule* base, ValaInterface* iface, ValaCCodeFile* decl_space) {
	ValaGDBusClientModule * self;
	ValaInterface* _tmp0_;
	ValaCCodeFile* _tmp1_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* get_type_name = NULL;
	ValaInterface* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	ValaCCodeFile* _tmp10_;
	ValaInterface* _tmp11_;
	const gchar* _tmp12_;
	gboolean _tmp13_;
	ValaCCodeFile* _tmp14_;
	ValaCCodeNewline* _tmp15_;
	ValaCCodeNewline* _tmp16_;
	gchar* macro = NULL;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	ValaCCodeFile* _tmp19_;
	ValaInterface* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	const gchar* _tmp25_;
	ValaCCodeMacroReplacement* _tmp26_;
	ValaCCodeMacroReplacement* _tmp27_;
	ValaCCodeFunction* proxy_get_type = NULL;
	const gchar* _tmp28_;
	ValaCCodeFunction* _tmp29_;
	ValaCCodeFunction* _tmp30_;
	ValaCCodeFile* _tmp31_;
	ValaCCodeFunction* _tmp32_;
	gboolean _tmp33_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	g_return_if_fail (decl_space != NULL);
	_tmp0_ = iface;
	_tmp1_ = decl_space;
	VALA_CCODE_BASE_MODULE_CLASS (vala_gd_bus_client_module_parent_class)->generate_interface_declaration ((ValaCCodeBaseModule*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp0_, _tmp1_);
	_tmp2_ = iface;
	_tmp3_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp2_);
	dbus_iface_name = _tmp3_;
	_tmp4_ = dbus_iface_name;
	if (_tmp4_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp5_ = iface;
	_tmp6_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strdup_printf ("%sproxy_get_type", _tmp7_);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	get_type_name = _tmp9_;
	_tmp10_ = decl_space;
	_tmp11_ = iface;
	_tmp12_ = get_type_name;
	_tmp13_ = vala_ccode_base_module_add_symbol_declaration ((ValaCCodeBaseModule*) self, _tmp10_, (ValaSymbol*) _tmp11_, _tmp12_);
	if (_tmp13_) {
		_g_free0 (get_type_name);
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp14_ = decl_space;
	_tmp15_ = vala_ccode_newline_new ();
	_tmp16_ = _tmp15_;
	vala_ccode_file_add_type_declaration (_tmp14_, (ValaCCodeNode*) _tmp16_);
	_vala_ccode_node_unref0 (_tmp16_);
	_tmp17_ = get_type_name;
	_tmp18_ = g_strdup_printf ("(%s ())", _tmp17_);
	macro = _tmp18_;
	_tmp19_ = decl_space;
	_tmp20_ = iface;
	_tmp21_ = vala_get_ccode_type_id ((ValaCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strdup_printf ("%s_PROXY", _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = macro;
	_tmp26_ = vala_ccode_macro_replacement_new (_tmp24_, _tmp25_);
	_tmp27_ = _tmp26_;
	vala_ccode_file_add_type_declaration (_tmp19_, (ValaCCodeNode*) _tmp27_);
	_vala_ccode_node_unref0 (_tmp27_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_tmp28_ = get_type_name;
	_tmp29_ = vala_ccode_function_new (_tmp28_, "GType");
	proxy_get_type = _tmp29_;
	_tmp30_ = proxy_get_type;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp30_, VALA_CCODE_MODIFIERS_CONST);
	_tmp31_ = decl_space;
	_tmp32_ = proxy_get_type;
	vala_ccode_file_add_function_declaration (_tmp31_, _tmp32_);
	_tmp33_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp33_) {
		ValaCCodeFunction* proxy_register_type = NULL;
		ValaInterface* _tmp34_;
		gchar* _tmp35_;
		gchar* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		ValaCCodeFunction* _tmp39_;
		ValaCCodeFunction* _tmp40_;
		ValaCCodeFunction* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		ValaCCodeParameter* _tmp43_;
		ValaCCodeFile* _tmp44_;
		ValaCCodeFunction* _tmp45_;
		_tmp34_ = iface;
		_tmp35_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp34_);
		_tmp36_ = _tmp35_;
		_tmp37_ = g_strdup_printf ("%sproxy_register_dynamic_type", _tmp36_);
		_tmp38_ = _tmp37_;
		_tmp39_ = vala_ccode_function_new (_tmp38_, "void");
		_tmp40_ = _tmp39_;
		_g_free0 (_tmp38_);
		_g_free0 (_tmp36_);
		proxy_register_type = _tmp40_;
		_tmp41_ = proxy_register_type;
		_tmp42_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp43_ = _tmp42_;
		vala_ccode_function_add_parameter (_tmp41_, _tmp43_);
		_vala_ccode_node_unref0 (_tmp43_);
		_tmp44_ = decl_space;
		_tmp45_ = proxy_register_type;
		vala_ccode_file_add_function_declaration (_tmp44_, _tmp45_);
		_vala_ccode_node_unref0 (proxy_register_type);
	}
	_vala_ccode_node_unref0 (proxy_get_type);
	_g_free0 (macro);
	_g_free0 (get_type_name);
	_g_free0 (dbus_iface_name);
}


static void vala_gd_bus_client_module_real_visit_interface (ValaCodeVisitor* base, ValaInterface* iface) {
	ValaGDBusClientModule * self;
	ValaInterface* _tmp0_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	ValaCCodeFile* _tmp4_;
	gchar* cname = NULL;
	ValaInterface* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* lower_cname = NULL;
	ValaInterface* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	ValaCCodeFile* _tmp15_;
	const gchar* _tmp16_;
	ValaCCodeVariableDeclarator* _tmp17_;
	ValaCCodeVariableDeclarator* _tmp18_;
	ValaCCodeTypeDefinition* _tmp19_;
	ValaCCodeTypeDefinition* _tmp20_;
	ValaCCodeFile* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ValaCCodeVariableDeclarator* _tmp25_;
	ValaCCodeVariableDeclarator* _tmp26_;
	ValaCCodeTypeDefinition* _tmp27_;
	ValaCCodeTypeDefinition* _tmp28_;
	gchar* type_macro = NULL;
	gboolean _tmp29_;
	ValaCCodeFunctionCall* define_type = NULL;
	const gchar* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeIdentifier* _tmp34_;
	ValaCCodeFunctionCall* _tmp35_;
	ValaCCodeFunctionCall* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	const gchar* _tmp38_;
	ValaCCodeIdentifier* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeFunctionCall* _tmp41_;
	const gchar* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeIdentifier* _tmp44_;
	ValaCCodeFunctionCall* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeFunctionCall* _tmp48_;
	ValaCCodeConstant* _tmp49_;
	ValaCCodeConstant* _tmp50_;
	ValaCCodeFunctionCall* _tmp51_;
	ValaCCodeFunctionCall* _tmp52_;
	ValaInterface* _tmp53_;
	ValaInterface* _tmp54_;
	gchar* _tmp55_;
	gchar* _tmp56_;
	ValaCCodeIdentifier* _tmp57_;
	ValaCCodeIdentifier* _tmp58_;
	ValaCCodeFile* _tmp59_;
	ValaCCodeFunctionCall* _tmp60_;
	ValaCCodeFunction* proxy_class_init = NULL;
	const gchar* _tmp61_;
	gchar* _tmp62_;
	gchar* _tmp63_;
	ValaCCodeFunction* _tmp64_;
	ValaCCodeFunction* _tmp65_;
	ValaCCodeFunction* _tmp66_;
	const gchar* _tmp67_;
	gchar* _tmp68_;
	gchar* _tmp69_;
	ValaCCodeParameter* _tmp70_;
	ValaCCodeParameter* _tmp71_;
	ValaCCodeFunction* _tmp72_;
	ValaCCodeFunction* _tmp73_;
	ValaCCodeFunctionCall* proxy_class = NULL;
	ValaCCodeIdentifier* _tmp74_;
	ValaCCodeIdentifier* _tmp75_;
	ValaCCodeFunctionCall* _tmp76_;
	ValaCCodeFunctionCall* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeIdentifier* _tmp80_;
	ValaCCodeFunction* _tmp81_;
	ValaCCodeFunction* _tmp82_;
	ValaCCodeFunctionCall* _tmp83_;
	ValaCCodeMemberAccess* _tmp84_;
	ValaCCodeMemberAccess* _tmp85_;
	const gchar* _tmp86_;
	gchar* _tmp87_;
	gchar* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeFile* _tmp91_;
	ValaCCodeFunction* _tmp92_;
	ValaInterface* _tmp93_;
	gboolean _tmp94_;
	ValaCCodeFunction* proxy_instance_init = NULL;
	const gchar* _tmp133_;
	gchar* _tmp134_;
	gchar* _tmp135_;
	ValaCCodeFunction* _tmp136_;
	ValaCCodeFunction* _tmp137_;
	ValaCCodeFunction* _tmp138_;
	const gchar* _tmp139_;
	gchar* _tmp140_;
	gchar* _tmp141_;
	ValaCCodeParameter* _tmp142_;
	ValaCCodeParameter* _tmp143_;
	ValaCCodeFunction* _tmp144_;
	ValaCCodeFile* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaInterface* _tmp147_;
	ValaInterface* _tmp148_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (iface != NULL);
	_tmp0_ = iface;
	VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_interface ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp0_);
	_tmp1_ = iface;
	_tmp2_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp1_);
	dbus_iface_name = _tmp2_;
	_tmp3_ = dbus_iface_name;
	if (_tmp3_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp4_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_include (_tmp4_, "gio/gio.h", FALSE);
	_tmp5_ = iface;
	_tmp6_ = vala_get_ccode_name ((ValaCodeNode*) _tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = g_strconcat (_tmp7_, "Proxy", NULL);
	_tmp9_ = _tmp8_;
	_g_free0 (_tmp7_);
	cname = _tmp9_;
	_tmp10_ = iface;
	_tmp11_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = g_strconcat (_tmp12_, "proxy", NULL);
	_tmp14_ = _tmp13_;
	_g_free0 (_tmp12_);
	lower_cname = _tmp14_;
	_tmp15_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp16_ = cname;
	_tmp17_ = vala_ccode_variable_declarator_new (_tmp16_, NULL, NULL);
	_tmp18_ = _tmp17_;
	_tmp19_ = vala_ccode_type_definition_new ("GDBusProxy", (ValaCCodeDeclarator*) _tmp18_);
	_tmp20_ = _tmp19_;
	vala_ccode_file_add_type_declaration (_tmp15_, (ValaCCodeNode*) _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp21_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp22_ = cname;
	_tmp23_ = g_strconcat (_tmp22_, "Class", NULL);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_variable_declarator_new (_tmp24_, NULL, NULL);
	_tmp26_ = _tmp25_;
	_tmp27_ = vala_ccode_type_definition_new ("GDBusProxyClass", (ValaCCodeDeclarator*) _tmp26_);
	_tmp28_ = _tmp27_;
	vala_ccode_file_add_type_declaration (_tmp21_, (ValaCCodeNode*) _tmp28_);
	_vala_ccode_node_unref0 (_tmp28_);
	_vala_ccode_node_unref0 (_tmp26_);
	_g_free0 (_tmp24_);
	_tmp29_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp29_) {
		gchar* _tmp30_;
		_tmp30_ = g_strdup ("G_DEFINE_DYNAMIC_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp30_;
	} else {
		gchar* _tmp31_;
		_tmp31_ = g_strdup ("G_DEFINE_TYPE_EXTENDED");
		_g_free0 (type_macro);
		type_macro = _tmp31_;
	}
	_tmp32_ = type_macro;
	_tmp33_ = vala_ccode_identifier_new (_tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp34_);
	_tmp36_ = _tmp35_;
	_vala_ccode_node_unref0 (_tmp34_);
	define_type = _tmp36_;
	_tmp37_ = define_type;
	_tmp38_ = cname;
	_tmp39_ = vala_ccode_identifier_new (_tmp38_);
	_tmp40_ = _tmp39_;
	vala_ccode_function_call_add_argument (_tmp37_, (ValaCCodeExpression*) _tmp40_);
	_vala_ccode_node_unref0 (_tmp40_);
	_tmp41_ = define_type;
	_tmp42_ = lower_cname;
	_tmp43_ = vala_ccode_identifier_new (_tmp42_);
	_tmp44_ = _tmp43_;
	vala_ccode_function_call_add_argument (_tmp41_, (ValaCCodeExpression*) _tmp44_);
	_vala_ccode_node_unref0 (_tmp44_);
	_tmp45_ = define_type;
	_tmp46_ = vala_ccode_identifier_new ("G_TYPE_DBUS_PROXY");
	_tmp47_ = _tmp46_;
	vala_ccode_function_call_add_argument (_tmp45_, (ValaCCodeExpression*) _tmp47_);
	_vala_ccode_node_unref0 (_tmp47_);
	_tmp48_ = define_type;
	_tmp49_ = vala_ccode_constant_new ("0");
	_tmp50_ = _tmp49_;
	vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp50_);
	_vala_ccode_node_unref0 (_tmp50_);
	_tmp51_ = define_type;
	_tmp52_ = define_type;
	_tmp53_ = iface;
	_tmp54_ = iface;
	_tmp55_ = vala_gd_bus_client_module_implement_interface (self, _tmp52_, _tmp53_, _tmp54_);
	_tmp56_ = _tmp55_;
	_tmp57_ = vala_ccode_identifier_new (_tmp56_);
	_tmp58_ = _tmp57_;
	vala_ccode_function_call_add_argument (_tmp51_, (ValaCCodeExpression*) _tmp58_);
	_vala_ccode_node_unref0 (_tmp58_);
	_g_free0 (_tmp56_);
	_tmp59_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp60_ = define_type;
	vala_ccode_file_add_type_member_definition (_tmp59_, (ValaCCodeNode*) _tmp60_);
	_tmp61_ = lower_cname;
	_tmp62_ = g_strconcat (_tmp61_, "_class_init", NULL);
	_tmp63_ = _tmp62_;
	_tmp64_ = vala_ccode_function_new (_tmp63_, "void");
	_tmp65_ = _tmp64_;
	_g_free0 (_tmp63_);
	proxy_class_init = _tmp65_;
	_tmp66_ = proxy_class_init;
	_tmp67_ = cname;
	_tmp68_ = g_strconcat (_tmp67_, "Class*", NULL);
	_tmp69_ = _tmp68_;
	_tmp70_ = vala_ccode_parameter_new ("klass", _tmp69_);
	_tmp71_ = _tmp70_;
	vala_ccode_function_add_parameter (_tmp66_, _tmp71_);
	_vala_ccode_node_unref0 (_tmp71_);
	_g_free0 (_tmp69_);
	_tmp72_ = proxy_class_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp72_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp73_ = proxy_class_init;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp73_);
	_tmp74_ = vala_ccode_identifier_new ("G_DBUS_PROXY_CLASS");
	_tmp75_ = _tmp74_;
	_tmp76_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp75_);
	_tmp77_ = _tmp76_;
	_vala_ccode_node_unref0 (_tmp75_);
	proxy_class = _tmp77_;
	_tmp78_ = proxy_class;
	_tmp79_ = vala_ccode_identifier_new ("klass");
	_tmp80_ = _tmp79_;
	vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp80_);
	_vala_ccode_node_unref0 (_tmp80_);
	_tmp81_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp82_ = _tmp81_;
	_tmp83_ = proxy_class;
	_tmp84_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp83_, "g_signal");
	_tmp85_ = _tmp84_;
	_tmp86_ = lower_cname;
	_tmp87_ = g_strconcat (_tmp86_, "_g_signal", NULL);
	_tmp88_ = _tmp87_;
	_tmp89_ = vala_ccode_identifier_new (_tmp88_);
	_tmp90_ = _tmp89_;
	vala_ccode_function_add_assignment (_tmp82_, (ValaCCodeExpression*) _tmp85_, (ValaCCodeExpression*) _tmp90_);
	_vala_ccode_node_unref0 (_tmp90_);
	_g_free0 (_tmp88_);
	_vala_ccode_node_unref0 (_tmp85_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp91_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp92_ = proxy_class_init;
	vala_ccode_file_add_function (_tmp91_, _tmp92_);
	_tmp93_ = iface;
	vala_gd_bus_client_module_generate_signal_handler_function (self, (ValaObjectTypeSymbol*) _tmp93_);
	_tmp94_ = ((ValaCCodeBaseModule*) self)->in_plugin;
	if (_tmp94_) {
		ValaCCodeFunction* proxy_class_finalize = NULL;
		const gchar* _tmp95_;
		gchar* _tmp96_;
		gchar* _tmp97_;
		ValaCCodeFunction* _tmp98_;
		ValaCCodeFunction* _tmp99_;
		ValaCCodeFunction* _tmp100_;
		const gchar* _tmp101_;
		gchar* _tmp102_;
		gchar* _tmp103_;
		ValaCCodeParameter* _tmp104_;
		ValaCCodeParameter* _tmp105_;
		ValaCCodeFunction* _tmp106_;
		ValaCCodeFile* _tmp107_;
		ValaCCodeFunction* _tmp108_;
		ValaCCodeFunction* proxy_type_init = NULL;
		const gchar* _tmp109_;
		gchar* _tmp110_;
		gchar* _tmp111_;
		ValaCCodeFunction* _tmp112_;
		ValaCCodeFunction* _tmp113_;
		ValaCCodeFunction* _tmp114_;
		ValaCCodeParameter* _tmp115_;
		ValaCCodeParameter* _tmp116_;
		ValaCCodeFunction* _tmp117_;
		ValaCCodeFunctionCall* call_register_type = NULL;
		const gchar* _tmp118_;
		gchar* _tmp119_;
		gchar* _tmp120_;
		ValaCCodeIdentifier* _tmp121_;
		ValaCCodeIdentifier* _tmp122_;
		ValaCCodeFunctionCall* _tmp123_;
		ValaCCodeFunctionCall* _tmp124_;
		ValaCCodeFunctionCall* _tmp125_;
		ValaCCodeIdentifier* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeFunction* _tmp128_;
		ValaCCodeFunction* _tmp129_;
		ValaCCodeFunctionCall* _tmp130_;
		ValaCCodeFile* _tmp131_;
		ValaCCodeFunction* _tmp132_;
		_tmp95_ = lower_cname;
		_tmp96_ = g_strconcat (_tmp95_, "_class_finalize", NULL);
		_tmp97_ = _tmp96_;
		_tmp98_ = vala_ccode_function_new (_tmp97_, "void");
		_tmp99_ = _tmp98_;
		_g_free0 (_tmp97_);
		proxy_class_finalize = _tmp99_;
		_tmp100_ = proxy_class_finalize;
		_tmp101_ = cname;
		_tmp102_ = g_strconcat (_tmp101_, "Class*", NULL);
		_tmp103_ = _tmp102_;
		_tmp104_ = vala_ccode_parameter_new ("klass", _tmp103_);
		_tmp105_ = _tmp104_;
		vala_ccode_function_add_parameter (_tmp100_, _tmp105_);
		_vala_ccode_node_unref0 (_tmp105_);
		_g_free0 (_tmp103_);
		_tmp106_ = proxy_class_finalize;
		vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp106_, VALA_CCODE_MODIFIERS_STATIC);
		_tmp107_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp108_ = proxy_class_finalize;
		vala_ccode_file_add_function (_tmp107_, _tmp108_);
		_tmp109_ = lower_cname;
		_tmp110_ = g_strconcat (_tmp109_, "_register_dynamic_type", NULL);
		_tmp111_ = _tmp110_;
		_tmp112_ = vala_ccode_function_new (_tmp111_, "void");
		_tmp113_ = _tmp112_;
		_g_free0 (_tmp111_);
		proxy_type_init = _tmp113_;
		_tmp114_ = proxy_type_init;
		_tmp115_ = vala_ccode_parameter_new ("module", "GTypeModule*");
		_tmp116_ = _tmp115_;
		vala_ccode_function_add_parameter (_tmp114_, _tmp116_);
		_vala_ccode_node_unref0 (_tmp116_);
		_tmp117_ = proxy_type_init;
		vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp117_);
		_tmp118_ = lower_cname;
		_tmp119_ = g_strconcat (_tmp118_, "_register_type", NULL);
		_tmp120_ = _tmp119_;
		_tmp121_ = vala_ccode_identifier_new (_tmp120_);
		_tmp122_ = _tmp121_;
		_tmp123_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp122_);
		_tmp124_ = _tmp123_;
		_vala_ccode_node_unref0 (_tmp122_);
		_g_free0 (_tmp120_);
		call_register_type = _tmp124_;
		_tmp125_ = call_register_type;
		_tmp126_ = vala_ccode_identifier_new ("module");
		_tmp127_ = _tmp126_;
		vala_ccode_function_call_add_argument (_tmp125_, (ValaCCodeExpression*) _tmp127_);
		_vala_ccode_node_unref0 (_tmp127_);
		_tmp128_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp129_ = _tmp128_;
		_tmp130_ = call_register_type;
		vala_ccode_function_add_expression (_tmp129_, (ValaCCodeExpression*) _tmp130_);
		vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
		_tmp131_ = ((ValaCCodeBaseModule*) self)->cfile;
		_tmp132_ = proxy_type_init;
		vala_ccode_file_add_function (_tmp131_, _tmp132_);
		_vala_ccode_node_unref0 (call_register_type);
		_vala_ccode_node_unref0 (proxy_type_init);
		_vala_ccode_node_unref0 (proxy_class_finalize);
	}
	_tmp133_ = lower_cname;
	_tmp134_ = g_strconcat (_tmp133_, "_init", NULL);
	_tmp135_ = _tmp134_;
	_tmp136_ = vala_ccode_function_new (_tmp135_, "void");
	_tmp137_ = _tmp136_;
	_g_free0 (_tmp135_);
	proxy_instance_init = _tmp137_;
	_tmp138_ = proxy_instance_init;
	_tmp139_ = cname;
	_tmp140_ = g_strconcat (_tmp139_, "*", NULL);
	_tmp141_ = _tmp140_;
	_tmp142_ = vala_ccode_parameter_new ("self", _tmp141_);
	_tmp143_ = _tmp142_;
	vala_ccode_function_add_parameter (_tmp138_, _tmp143_);
	_vala_ccode_node_unref0 (_tmp143_);
	_g_free0 (_tmp141_);
	_tmp144_ = proxy_instance_init;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp144_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp145_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp146_ = proxy_instance_init;
	vala_ccode_file_add_function (_tmp145_, _tmp146_);
	_tmp147_ = iface;
	_tmp148_ = iface;
	vala_gd_bus_client_module_generate_proxy_interface_init (self, _tmp147_, _tmp148_);
	_vala_ccode_node_unref0 (proxy_instance_init);
	_vala_ccode_node_unref0 (proxy_class);
	_vala_ccode_node_unref0 (proxy_class_init);
	_vala_ccode_node_unref0 (define_type);
	_g_free0 (type_macro);
	_g_free0 (lower_cname);
	_g_free0 (cname);
	_g_free0 (dbus_iface_name);
}


static gpointer _vala_ccode_node_ref0 (gpointer self) {
	return self ? vala_ccode_node_ref (self) : NULL;
}


static void vala_gd_bus_client_module_real_visit_method_call (ValaCodeVisitor* base, ValaMethodCall* expr) {
	ValaGDBusClientModule * self;
	ValaMethodType* mtype = NULL;
	ValaMethodCall* _tmp0_;
	ValaExpression* _tmp1_;
	ValaExpression* _tmp2_;
	ValaDataType* _tmp3_;
	ValaDataType* _tmp4_;
	ValaMethodType* _tmp5_;
	gboolean _tmp6_ = FALSE;
	ValaMethodType* _tmp7_;
	gboolean bus_get_proxy_async = FALSE;
	gboolean _tmp13_ = FALSE;
	ValaMethodType* _tmp14_;
	gboolean bus_get_proxy_sync = FALSE;
	gboolean _tmp20_ = FALSE;
	ValaMethodType* _tmp21_;
	gboolean conn_get_proxy_async = FALSE;
	gboolean _tmp27_ = FALSE;
	ValaMethodType* _tmp28_;
	gboolean conn_get_proxy_sync = FALSE;
	gboolean _tmp34_ = FALSE;
	gboolean _tmp35_ = FALSE;
	gboolean _tmp36_ = FALSE;
	gboolean _tmp37_;
	ValaMemberAccess* ma = NULL;
	ValaMethodCall* _tmp42_;
	ValaExpression* _tmp43_;
	ValaExpression* _tmp44_;
	ValaMemberAccess* _tmp45_;
	ValaDataType* type_arg = NULL;
	ValaMemberAccess* _tmp46_;
	ValaList* _tmp47_;
	ValaList* _tmp48_;
	gpointer _tmp49_;
	ValaDataType* _tmp50_;
	ValaCCodeExpression* proxy_type = NULL;
	ValaCCodeExpression* dbus_iface_name = NULL;
	ValaCCodeExpression* dbus_iface_info = NULL;
	ValaObjectType* object_type = NULL;
	ValaDataType* _tmp51_;
	ValaObjectType* _tmp52_;
	ValaObjectType* _tmp53_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp120_;
	ValaCCodeIdentifier* _tmp121_;
	ValaCCodeFunctionCall* _tmp122_;
	ValaCCodeFunctionCall* _tmp123_;
	ValaCCodeFunctionCall* _tmp124_;
	ValaCCodeConstant* _tmp125_;
	ValaCCodeConstant* _tmp126_;
	ValaCCodeFunctionCall* get_qdata = NULL;
	ValaCCodeIdentifier* _tmp127_;
	ValaCCodeIdentifier* _tmp128_;
	ValaCCodeFunctionCall* _tmp129_;
	ValaCCodeFunctionCall* _tmp130_;
	ValaCCodeFunctionCall* _tmp131_;
	ValaDataType* _tmp132_;
	ValaCCodeExpression* _tmp133_;
	ValaCCodeExpression* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeFunctionCall* _tmp137_;
	ValaCCodeExpression* _tmp138_;
	gboolean _tmp139_ = FALSE;
	gboolean _tmp140_;
	gint base_arg_index = 0;
	gboolean _tmp228_ = FALSE;
	gboolean _tmp229_;
	ValaList* args = NULL;
	ValaMethodCall* _tmp231_;
	ValaList* _tmp232_;
	ValaExpression* name = NULL;
	ValaList* _tmp233_;
	gint _tmp234_;
	gpointer _tmp235_;
	ValaExpression* object_path = NULL;
	ValaList* _tmp236_;
	gint _tmp237_;
	gpointer _tmp238_;
	ValaExpression* flags = NULL;
	ValaList* _tmp239_;
	gint _tmp240_;
	gpointer _tmp241_;
	ValaExpression* cancellable = NULL;
	ValaList* _tmp242_;
	gint _tmp243_;
	gpointer _tmp244_;
	ValaCCodeFunctionCall* ccall = NULL;
	gboolean _tmp245_ = FALSE;
	gboolean _tmp246_;
	ValaCCodeFunctionCall* _tmp254_;
	ValaCCodeExpression* _tmp255_;
	gboolean _tmp256_ = FALSE;
	gboolean _tmp257_;
	ValaCCodeFunctionCall* _tmp262_;
	ValaExpression* _tmp263_;
	ValaCCodeExpression* _tmp264_;
	ValaCCodeExpression* _tmp265_;
	gboolean _tmp266_ = FALSE;
	gboolean _tmp267_;
	ValaCCodeFunctionCall* _tmp298_;
	ValaCCodeConstant* _tmp299_;
	ValaCCodeConstant* _tmp300_;
	ValaCCodeFunctionCall* _tmp301_;
	ValaExpression* _tmp302_;
	ValaCCodeExpression* _tmp303_;
	ValaCCodeExpression* _tmp304_;
	ValaCCodeFunctionCall* _tmp305_;
	ValaCCodeConstant* _tmp306_;
	ValaCCodeConstant* _tmp307_;
	ValaCCodeFunctionCall* _tmp308_;
	ValaExpression* _tmp309_;
	ValaCCodeExpression* _tmp310_;
	ValaCCodeExpression* _tmp311_;
	gboolean _tmp312_ = FALSE;
	gboolean _tmp313_;
	ValaCCodeFunctionCall* _tmp355_;
	ValaCCodeConstant* _tmp356_;
	ValaCCodeConstant* _tmp357_;
	ValaCCodeFunctionCall* _tmp358_;
	ValaExpression* _tmp359_;
	ValaCCodeExpression* _tmp360_;
	ValaCCodeExpression* _tmp361_;
	ValaCCodeFunctionCall* _tmp362_;
	ValaCCodeConstant* _tmp363_;
	ValaCCodeConstant* _tmp364_;
	ValaCCodeFunctionCall* _tmp365_;
	ValaCCodeExpression* _tmp366_;
	ValaCCodeExpression* _tmp367_;
	ValaCCodeFunctionCall* _tmp373_;
	ValaCCodeConstant* _tmp374_;
	ValaCCodeConstant* _tmp375_;
	gboolean _tmp376_ = FALSE;
	gboolean _tmp377_;
	ValaLocalVariable* temp_var = NULL;
	ValaMethodCall* _tmp428_;
	ValaDataType* _tmp429_;
	ValaDataType* _tmp430_;
	ValaMethodCall* _tmp431_;
	ValaDataType* _tmp432_;
	ValaDataType* _tmp433_;
	gboolean _tmp434_;
	gboolean _tmp435_;
	ValaLocalVariable* _tmp436_;
	ValaCCodeExpression* temp_ref = NULL;
	ValaLocalVariable* _tmp437_;
	const gchar* _tmp438_;
	const gchar* _tmp439_;
	ValaCCodeExpression* _tmp440_;
	ValaLocalVariable* _tmp441_;
	ValaCCodeFunction* _tmp442_;
	ValaCCodeFunction* _tmp443_;
	ValaCCodeExpression* _tmp444_;
	ValaCCodeFunctionCall* _tmp445_;
	ValaMethodCall* _tmp446_;
	ValaCCodeExpression* _tmp447_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (expr != NULL);
	_tmp0_ = expr;
	_tmp1_ = vala_method_call_get_call (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = vala_expression_get_value_type (_tmp2_);
	_tmp4_ = _tmp3_;
	_tmp5_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, VALA_TYPE_METHOD_TYPE) ? ((ValaMethodType*) _tmp4_) : NULL);
	mtype = _tmp5_;
	_tmp7_ = mtype;
	if (_tmp7_ != NULL) {
		ValaMethodType* _tmp8_;
		ValaMethod* _tmp9_;
		ValaMethod* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp8_ = mtype;
		_tmp9_ = vala_method_type_get_method_symbol (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = vala_get_ccode_name ((ValaCodeNode*) _tmp10_);
		_tmp12_ = _tmp11_;
		_tmp6_ = g_strcmp0 (_tmp12_, "g_bus_get_proxy") == 0;
		_g_free0 (_tmp12_);
	} else {
		_tmp6_ = FALSE;
	}
	bus_get_proxy_async = _tmp6_;
	_tmp14_ = mtype;
	if (_tmp14_ != NULL) {
		ValaMethodType* _tmp15_;
		ValaMethod* _tmp16_;
		ValaMethod* _tmp17_;
		gchar* _tmp18_;
		gchar* _tmp19_;
		_tmp15_ = mtype;
		_tmp16_ = vala_method_type_get_method_symbol (_tmp15_);
		_tmp17_ = _tmp16_;
		_tmp18_ = vala_get_ccode_name ((ValaCodeNode*) _tmp17_);
		_tmp19_ = _tmp18_;
		_tmp13_ = g_strcmp0 (_tmp19_, "g_bus_get_proxy_sync") == 0;
		_g_free0 (_tmp19_);
	} else {
		_tmp13_ = FALSE;
	}
	bus_get_proxy_sync = _tmp13_;
	_tmp21_ = mtype;
	if (_tmp21_ != NULL) {
		ValaMethodType* _tmp22_;
		ValaMethod* _tmp23_;
		ValaMethod* _tmp24_;
		gchar* _tmp25_;
		gchar* _tmp26_;
		_tmp22_ = mtype;
		_tmp23_ = vala_method_type_get_method_symbol (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = vala_get_ccode_name ((ValaCodeNode*) _tmp24_);
		_tmp26_ = _tmp25_;
		_tmp20_ = g_strcmp0 (_tmp26_, "g_dbus_connection_get_proxy") == 0;
		_g_free0 (_tmp26_);
	} else {
		_tmp20_ = FALSE;
	}
	conn_get_proxy_async = _tmp20_;
	_tmp28_ = mtype;
	if (_tmp28_ != NULL) {
		ValaMethodType* _tmp29_;
		ValaMethod* _tmp30_;
		ValaMethod* _tmp31_;
		gchar* _tmp32_;
		gchar* _tmp33_;
		_tmp29_ = mtype;
		_tmp30_ = vala_method_type_get_method_symbol (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_get_ccode_name ((ValaCodeNode*) _tmp31_);
		_tmp33_ = _tmp32_;
		_tmp27_ = g_strcmp0 (_tmp33_, "g_dbus_connection_get_proxy_sync") == 0;
		_g_free0 (_tmp33_);
	} else {
		_tmp27_ = FALSE;
	}
	conn_get_proxy_sync = _tmp27_;
	_tmp37_ = bus_get_proxy_async;
	if (!_tmp37_) {
		gboolean _tmp38_;
		_tmp38_ = bus_get_proxy_sync;
		_tmp36_ = !_tmp38_;
	} else {
		_tmp36_ = FALSE;
	}
	if (_tmp36_) {
		gboolean _tmp39_;
		_tmp39_ = conn_get_proxy_async;
		_tmp35_ = !_tmp39_;
	} else {
		_tmp35_ = FALSE;
	}
	if (_tmp35_) {
		gboolean _tmp40_;
		_tmp40_ = conn_get_proxy_sync;
		_tmp34_ = !_tmp40_;
	} else {
		_tmp34_ = FALSE;
	}
	if (_tmp34_) {
		ValaMethodCall* _tmp41_;
		_tmp41_ = expr;
		VALA_CODE_VISITOR_CLASS (vala_gd_bus_client_module_parent_class)->visit_method_call ((ValaCodeVisitor*) G_TYPE_CHECK_INSTANCE_CAST (self, VALA_TYPE_GD_BUS_MODULE, ValaGDBusModule), _tmp41_);
		_vala_code_node_unref0 (mtype);
		return;
	}
	_tmp42_ = expr;
	_tmp43_ = vala_method_call_get_call (_tmp42_);
	_tmp44_ = _tmp43_;
	_tmp45_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
	ma = _tmp45_;
	_tmp46_ = ma;
	_tmp47_ = vala_member_access_get_type_arguments (_tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_list_get (_tmp48_, 0);
	_tmp50_ = (ValaDataType*) _tmp49_;
	_vala_iterable_unref0 (_tmp48_);
	type_arg = _tmp50_;
	_tmp51_ = type_arg;
	_tmp52_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp51_, VALA_TYPE_OBJECT_TYPE) ? ((ValaObjectType*) _tmp51_) : NULL);
	object_type = _tmp52_;
	_tmp53_ = object_type;
	if (_tmp53_ != NULL) {
		ValaInterface* iface = NULL;
		ValaObjectType* _tmp54_;
		ValaObjectTypeSymbol* _tmp55_;
		ValaObjectTypeSymbol* _tmp56_;
		ValaInterface* _tmp57_;
		ValaInterface* _tmp58_;
		gchar* _tmp59_;
		gchar* _tmp60_;
		gboolean _tmp61_;
		ValaInterface* _tmp70_;
		gchar* _tmp71_;
		gchar* _tmp72_;
		gchar* _tmp73_;
		gchar* _tmp74_;
		ValaCCodeIdentifier* _tmp75_;
		ValaInterface* _tmp76_;
		gchar* _tmp77_;
		gchar* _tmp78_;
		gchar* _tmp79_;
		gchar* _tmp80_;
		ValaCCodeConstant* _tmp81_;
		_tmp54_ = object_type;
		_tmp55_ = vala_object_type_get_type_symbol (_tmp54_);
		_tmp56_ = _tmp55_;
		_tmp57_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, VALA_TYPE_INTERFACE, ValaInterface));
		iface = _tmp57_;
		_tmp58_ = iface;
		_tmp59_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp58_);
		_tmp60_ = _tmp59_;
		_tmp61_ = _tmp60_ == NULL;
		_g_free0 (_tmp60_);
		if (_tmp61_) {
			ValaMethodCall* _tmp62_;
			ValaSourceReference* _tmp63_;
			ValaSourceReference* _tmp64_;
			ValaInterface* _tmp65_;
			gchar* _tmp66_;
			gchar* _tmp67_;
			gchar* _tmp68_;
			gchar* _tmp69_;
			_tmp62_ = expr;
			_tmp63_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp62_);
			_tmp64_ = _tmp63_;
			_tmp65_ = iface;
			_tmp66_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp65_);
			_tmp67_ = _tmp66_;
			_tmp68_ = g_strdup_printf ("`%s' is not a D-Bus interface", _tmp67_);
			_tmp69_ = _tmp68_;
			vala_report_error (_tmp64_, _tmp69_);
			_g_free0 (_tmp69_);
			_g_free0 (_tmp67_);
			_vala_code_node_unref0 (iface);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
		_tmp70_ = iface;
		_tmp71_ = vala_get_ccode_type_id ((ValaCodeNode*) _tmp70_);
		_tmp72_ = _tmp71_;
		_tmp73_ = g_strdup_printf ("%s_PROXY", _tmp72_);
		_tmp74_ = _tmp73_;
		_tmp75_ = vala_ccode_identifier_new (_tmp74_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp75_;
		_g_free0 (_tmp74_);
		_g_free0 (_tmp72_);
		_tmp76_ = iface;
		_tmp77_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp76_);
		_tmp78_ = _tmp77_;
		_tmp79_ = g_strdup_printf ("\"%s\"", _tmp78_);
		_tmp80_ = _tmp79_;
		_tmp81_ = vala_ccode_constant_new (_tmp80_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = (ValaCCodeExpression*) _tmp81_;
		_g_free0 (_tmp80_);
		_g_free0 (_tmp78_);
		_vala_code_node_unref0 (iface);
	} else {
		ValaCCodeFunctionCall* quark = NULL;
		ValaCCodeIdentifier* _tmp82_;
		ValaCCodeIdentifier* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		ValaCCodeFunctionCall* _tmp85_;
		ValaCCodeFunctionCall* _tmp86_;
		ValaCCodeConstant* _tmp87_;
		ValaCCodeConstant* _tmp88_;
		ValaCCodeFunctionCall* get_qdata = NULL;
		ValaCCodeIdentifier* _tmp89_;
		ValaCCodeIdentifier* _tmp90_;
		ValaCCodeFunctionCall* _tmp91_;
		ValaCCodeFunctionCall* _tmp92_;
		ValaCCodeFunctionCall* _tmp93_;
		ValaDataType* _tmp94_;
		ValaCCodeExpression* _tmp95_;
		ValaCCodeExpression* _tmp96_;
		ValaCCodeFunctionCall* _tmp97_;
		ValaCCodeFunctionCall* _tmp98_;
		ValaCCodeFunctionCall* _tmp99_;
		ValaCCodeCastExpression* _tmp100_;
		ValaCCodeCastExpression* _tmp101_;
		ValaCCodeFunctionCall* _tmp102_;
		ValaCCodeIdentifier* _tmp103_;
		ValaCCodeIdentifier* _tmp104_;
		ValaCCodeFunctionCall* _tmp105_;
		ValaCCodeFunctionCall* _tmp106_;
		ValaCCodeConstant* _tmp107_;
		ValaCCodeConstant* _tmp108_;
		ValaCCodeIdentifier* _tmp109_;
		ValaCCodeIdentifier* _tmp110_;
		ValaCCodeFunctionCall* _tmp111_;
		ValaCCodeFunctionCall* _tmp112_;
		ValaDataType* _tmp113_;
		ValaCCodeExpression* _tmp114_;
		ValaCCodeExpression* _tmp115_;
		ValaCCodeFunctionCall* _tmp116_;
		ValaCCodeFunctionCall* _tmp117_;
		ValaCCodeFunctionCall* _tmp118_;
		ValaCCodeExpression* _tmp119_;
		_tmp82_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp83_ = _tmp82_;
		_tmp84_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp83_);
		_tmp85_ = _tmp84_;
		_vala_ccode_node_unref0 (_tmp83_);
		quark = _tmp85_;
		_tmp86_ = quark;
		_tmp87_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
		_tmp88_ = _tmp87_;
		vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_);
		_vala_ccode_node_unref0 (_tmp88_);
		_tmp89_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp90_ = _tmp89_;
		_tmp91_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp90_);
		_tmp92_ = _tmp91_;
		_vala_ccode_node_unref0 (_tmp90_);
		get_qdata = _tmp92_;
		_tmp93_ = get_qdata;
		_tmp94_ = type_arg;
		_tmp95_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp94_, FALSE);
		_tmp96_ = _tmp95_;
		vala_ccode_function_call_add_argument (_tmp93_, _tmp96_);
		_vala_ccode_node_unref0 (_tmp96_);
		_tmp97_ = get_qdata;
		_tmp98_ = quark;
		vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp98_);
		_tmp99_ = get_qdata;
		_tmp100_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp99_, "GType (*) (void)");
		_tmp101_ = _tmp100_;
		_tmp102_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp101_);
		_vala_ccode_node_unref0 (proxy_type);
		proxy_type = (ValaCCodeExpression*) _tmp102_;
		_vala_ccode_node_unref0 (_tmp101_);
		_tmp103_ = vala_ccode_identifier_new ("g_quark_from_static_string");
		_tmp104_ = _tmp103_;
		_tmp105_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp104_);
		_vala_ccode_node_unref0 (quark);
		quark = _tmp105_;
		_vala_ccode_node_unref0 (_tmp104_);
		_tmp106_ = quark;
		_tmp107_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
		_tmp108_ = _tmp107_;
		vala_ccode_function_call_add_argument (_tmp106_, (ValaCCodeExpression*) _tmp108_);
		_vala_ccode_node_unref0 (_tmp108_);
		_tmp109_ = vala_ccode_identifier_new ("g_type_get_qdata");
		_tmp110_ = _tmp109_;
		_tmp111_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp110_);
		_vala_ccode_node_unref0 (get_qdata);
		get_qdata = _tmp111_;
		_vala_ccode_node_unref0 (_tmp110_);
		_tmp112_ = get_qdata;
		_tmp113_ = type_arg;
		_tmp114_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp113_, FALSE);
		_tmp115_ = _tmp114_;
		vala_ccode_function_call_add_argument (_tmp112_, _tmp115_);
		_vala_ccode_node_unref0 (_tmp115_);
		_tmp116_ = get_qdata;
		_tmp117_ = quark;
		vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp117_);
		_tmp118_ = get_qdata;
		_tmp119_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp118_);
		_vala_ccode_node_unref0 (dbus_iface_name);
		dbus_iface_name = _tmp119_;
		_vala_ccode_node_unref0 (get_qdata);
		_vala_ccode_node_unref0 (quark);
	}
	_tmp120_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp121_ = _tmp120_;
	_tmp122_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp121_);
	_tmp123_ = _tmp122_;
	_vala_ccode_node_unref0 (_tmp121_);
	quark = _tmp123_;
	_tmp124_ = quark;
	_tmp125_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp126_ = _tmp125_;
	vala_ccode_function_call_add_argument (_tmp124_, (ValaCCodeExpression*) _tmp126_);
	_vala_ccode_node_unref0 (_tmp126_);
	_tmp127_ = vala_ccode_identifier_new ("g_type_get_qdata");
	_tmp128_ = _tmp127_;
	_tmp129_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp128_);
	_tmp130_ = _tmp129_;
	_vala_ccode_node_unref0 (_tmp128_);
	get_qdata = _tmp130_;
	_tmp131_ = get_qdata;
	_tmp132_ = type_arg;
	_tmp133_ = vala_ccode_base_module_get_type_id_expression ((ValaCCodeBaseModule*) self, _tmp132_, FALSE);
	_tmp134_ = _tmp133_;
	vala_ccode_function_call_add_argument (_tmp131_, _tmp134_);
	_vala_ccode_node_unref0 (_tmp134_);
	_tmp135_ = get_qdata;
	_tmp136_ = quark;
	vala_ccode_function_call_add_argument (_tmp135_, (ValaCCodeExpression*) _tmp136_);
	_tmp137_ = get_qdata;
	_tmp138_ = _vala_ccode_node_ref0 ((ValaCCodeExpression*) _tmp137_);
	_vala_ccode_node_unref0 (dbus_iface_info);
	dbus_iface_info = _tmp138_;
	_tmp140_ = bus_get_proxy_async;
	if (_tmp140_) {
		_tmp139_ = TRUE;
	} else {
		gboolean _tmp141_;
		_tmp141_ = conn_get_proxy_async;
		_tmp139_ = _tmp141_;
	}
	if (_tmp139_) {
		gboolean _tmp142_ = FALSE;
		ValaMemberAccess* _tmp143_;
		const gchar* _tmp144_;
		const gchar* _tmp145_;
		_tmp143_ = ma;
		_tmp144_ = vala_member_access_get_member_name (_tmp143_);
		_tmp145_ = _tmp144_;
		if (g_strcmp0 (_tmp145_, "end") == 0) {
			ValaMemberAccess* _tmp146_;
			ValaExpression* _tmp147_;
			ValaExpression* _tmp148_;
			ValaSymbol* _tmp149_;
			ValaSymbol* _tmp150_;
			ValaMemberAccess* _tmp151_;
			ValaSymbol* _tmp152_;
			ValaSymbol* _tmp153_;
			_tmp146_ = ma;
			_tmp147_ = vala_member_access_get_inner (_tmp146_);
			_tmp148_ = _tmp147_;
			_tmp149_ = vala_expression_get_symbol_reference (_tmp148_);
			_tmp150_ = _tmp149_;
			_tmp151_ = ma;
			_tmp152_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp151_);
			_tmp153_ = _tmp152_;
			_tmp142_ = _tmp150_ == _tmp153_;
		} else {
			_tmp142_ = FALSE;
		}
		if (_tmp142_) {
			ValaList* args = NULL;
			ValaMethodCall* _tmp154_;
			ValaList* _tmp155_;
			ValaExpression* res = NULL;
			ValaList* _tmp156_;
			gpointer _tmp157_;
			ValaLocalVariable* source_var = NULL;
			ValaMethodCall* _tmp158_;
			ValaDataType* _tmp159_;
			ValaDataType* _tmp160_;
			ValaMethodCall* _tmp161_;
			ValaDataType* _tmp162_;
			ValaDataType* _tmp163_;
			gboolean _tmp164_;
			gboolean _tmp165_;
			ValaLocalVariable* _tmp166_;
			ValaCCodeExpression* source_ref = NULL;
			ValaLocalVariable* _tmp167_;
			const gchar* _tmp168_;
			const gchar* _tmp169_;
			ValaCCodeExpression* _tmp170_;
			ValaLocalVariable* _tmp171_;
			ValaCCodeFunctionCall* source = NULL;
			ValaCCodeIdentifier* _tmp172_;
			ValaCCodeIdentifier* _tmp173_;
			ValaCCodeFunctionCall* _tmp174_;
			ValaCCodeFunctionCall* _tmp175_;
			ValaCCodeFunctionCall* _tmp176_;
			ValaExpression* _tmp177_;
			ValaCCodeExpression* _tmp178_;
			ValaCCodeExpression* _tmp179_;
			ValaCCodeFunction* _tmp180_;
			ValaCCodeFunction* _tmp181_;
			ValaCCodeExpression* _tmp182_;
			ValaCCodeFunctionCall* _tmp183_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaCCodeIdentifier* _tmp184_;
			ValaCCodeIdentifier* _tmp185_;
			ValaCCodeFunctionCall* _tmp186_;
			ValaCCodeFunctionCall* _tmp187_;
			ValaCCodeFunctionCall* _tmp188_;
			ValaCCodeExpression* _tmp189_;
			ValaCCodeFunctionCall* _tmp190_;
			ValaExpression* _tmp191_;
			ValaCCodeExpression* _tmp192_;
			ValaCCodeExpression* _tmp193_;
			ValaCCodeFunctionCall* _tmp194_;
			ValaCCodeExpression* _tmp195_;
			ValaCCodeExpression* _tmp196_;
			ValaCCodeUnaryExpression* _tmp197_;
			ValaCCodeUnaryExpression* _tmp198_;
			ValaLocalVariable* temp_var = NULL;
			ValaMethodCall* _tmp199_;
			ValaDataType* _tmp200_;
			ValaDataType* _tmp201_;
			ValaMethodCall* _tmp202_;
			ValaDataType* _tmp203_;
			ValaDataType* _tmp204_;
			gboolean _tmp205_;
			gboolean _tmp206_;
			ValaLocalVariable* _tmp207_;
			ValaCCodeExpression* temp_ref = NULL;
			ValaLocalVariable* _tmp208_;
			const gchar* _tmp209_;
			const gchar* _tmp210_;
			ValaCCodeExpression* _tmp211_;
			ValaLocalVariable* _tmp212_;
			ValaCCodeFunction* _tmp213_;
			ValaCCodeFunction* _tmp214_;
			ValaCCodeExpression* _tmp215_;
			ValaCCodeFunctionCall* _tmp216_;
			ValaCCodeFunctionCall* unref_proxy = NULL;
			ValaCCodeIdentifier* _tmp217_;
			ValaCCodeIdentifier* _tmp218_;
			ValaCCodeFunctionCall* _tmp219_;
			ValaCCodeFunctionCall* _tmp220_;
			ValaCCodeFunctionCall* _tmp221_;
			ValaCCodeExpression* _tmp222_;
			ValaCCodeFunction* _tmp223_;
			ValaCCodeFunction* _tmp224_;
			ValaCCodeFunctionCall* _tmp225_;
			ValaMethodCall* _tmp226_;
			ValaCCodeExpression* _tmp227_;
			vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
			_tmp154_ = expr;
			_tmp155_ = vala_method_call_get_argument_list (_tmp154_);
			args = _tmp155_;
			_tmp156_ = args;
			_tmp157_ = vala_list_get (_tmp156_, 0);
			res = (ValaExpression*) _tmp157_;
			_tmp158_ = expr;
			_tmp159_ = vala_expression_get_value_type ((ValaExpression*) _tmp158_);
			_tmp160_ = _tmp159_;
			_tmp161_ = expr;
			_tmp162_ = vala_expression_get_value_type ((ValaExpression*) _tmp161_);
			_tmp163_ = _tmp162_;
			_tmp164_ = vala_data_type_get_value_owned (_tmp163_);
			_tmp165_ = _tmp164_;
			_tmp166_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp160_, _tmp165_, NULL, FALSE);
			source_var = _tmp166_;
			_tmp167_ = source_var;
			_tmp168_ = vala_symbol_get_name ((ValaSymbol*) _tmp167_);
			_tmp169_ = _tmp168_;
			_tmp170_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp169_);
			source_ref = _tmp170_;
			_tmp171_ = source_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp171_);
			_tmp172_ = vala_ccode_identifier_new ("g_async_result_get_source_object");
			_tmp173_ = _tmp172_;
			_tmp174_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp173_);
			_tmp175_ = _tmp174_;
			_vala_ccode_node_unref0 (_tmp173_);
			source = _tmp175_;
			_tmp176_ = source;
			_tmp177_ = res;
			_tmp178_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp177_);
			_tmp179_ = _tmp178_;
			vala_ccode_function_call_add_argument (_tmp176_, _tmp179_);
			_vala_ccode_node_unref0 (_tmp179_);
			_tmp180_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp181_ = _tmp180_;
			_tmp182_ = source_ref;
			_tmp183_ = source;
			vala_ccode_function_add_assignment (_tmp181_, _tmp182_, (ValaCCodeExpression*) _tmp183_);
			_tmp184_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp185_ = _tmp184_;
			_tmp186_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp185_);
			_tmp187_ = _tmp186_;
			_vala_ccode_node_unref0 (_tmp185_);
			ccall = _tmp187_;
			_tmp188_ = ccall;
			_tmp189_ = source_ref;
			vala_ccode_function_call_add_argument (_tmp188_, _tmp189_);
			_tmp190_ = ccall;
			_tmp191_ = res;
			_tmp192_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp191_);
			_tmp193_ = _tmp192_;
			vala_ccode_function_call_add_argument (_tmp190_, _tmp193_);
			_vala_ccode_node_unref0 (_tmp193_);
			_tmp194_ = ccall;
			_tmp195_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
			_tmp196_ = _tmp195_;
			_tmp197_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp196_);
			_tmp198_ = _tmp197_;
			vala_ccode_function_call_add_argument (_tmp194_, (ValaCCodeExpression*) _tmp198_);
			_vala_ccode_node_unref0 (_tmp198_);
			_vala_ccode_node_unref0 (_tmp196_);
			_tmp199_ = expr;
			_tmp200_ = vala_expression_get_value_type ((ValaExpression*) _tmp199_);
			_tmp201_ = _tmp200_;
			_tmp202_ = expr;
			_tmp203_ = vala_expression_get_value_type ((ValaExpression*) _tmp202_);
			_tmp204_ = _tmp203_;
			_tmp205_ = vala_data_type_get_value_owned (_tmp204_);
			_tmp206_ = _tmp205_;
			_tmp207_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp201_, _tmp206_, NULL, FALSE);
			temp_var = _tmp207_;
			_tmp208_ = temp_var;
			_tmp209_ = vala_symbol_get_name ((ValaSymbol*) _tmp208_);
			_tmp210_ = _tmp209_;
			_tmp211_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp210_);
			temp_ref = _tmp211_;
			_tmp212_ = temp_var;
			vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp212_);
			_tmp213_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp214_ = _tmp213_;
			_tmp215_ = temp_ref;
			_tmp216_ = ccall;
			vala_ccode_function_add_assignment (_tmp214_, _tmp215_, (ValaCCodeExpression*) _tmp216_);
			_tmp217_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp218_ = _tmp217_;
			_tmp219_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp218_);
			_tmp220_ = _tmp219_;
			_vala_ccode_node_unref0 (_tmp218_);
			unref_proxy = _tmp220_;
			_tmp221_ = unref_proxy;
			_tmp222_ = source_ref;
			vala_ccode_function_call_add_argument (_tmp221_, _tmp222_);
			_tmp223_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp224_ = _tmp223_;
			_tmp225_ = unref_proxy;
			vala_ccode_function_add_expression (_tmp224_, (ValaCCodeExpression*) _tmp225_);
			_tmp226_ = expr;
			_tmp227_ = temp_ref;
			vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp226_, _tmp227_);
			_vala_ccode_node_unref0 (unref_proxy);
			_vala_ccode_node_unref0 (temp_ref);
			_vala_code_node_unref0 (temp_var);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (source);
			_vala_ccode_node_unref0 (source_ref);
			_vala_code_node_unref0 (source_var);
			_vala_code_node_unref0 (res);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	base_arg_index = 0;
	_tmp229_ = bus_get_proxy_async;
	if (_tmp229_) {
		_tmp228_ = TRUE;
	} else {
		gboolean _tmp230_;
		_tmp230_ = bus_get_proxy_sync;
		_tmp228_ = _tmp230_;
	}
	if (_tmp228_) {
		base_arg_index = 1;
	}
	_tmp231_ = expr;
	_tmp232_ = vala_method_call_get_argument_list (_tmp231_);
	args = _tmp232_;
	_tmp233_ = args;
	_tmp234_ = base_arg_index;
	_tmp235_ = vala_list_get (_tmp233_, _tmp234_ + 0);
	name = (ValaExpression*) _tmp235_;
	_tmp236_ = args;
	_tmp237_ = base_arg_index;
	_tmp238_ = vala_list_get (_tmp236_, _tmp237_ + 1);
	object_path = (ValaExpression*) _tmp238_;
	_tmp239_ = args;
	_tmp240_ = base_arg_index;
	_tmp241_ = vala_list_get (_tmp239_, _tmp240_ + 2);
	flags = (ValaExpression*) _tmp241_;
	_tmp242_ = args;
	_tmp243_ = base_arg_index;
	_tmp244_ = vala_list_get (_tmp242_, _tmp243_ + 3);
	cancellable = (ValaExpression*) _tmp244_;
	vala_ccode_base_module_set_current_method_inner_error ((ValaCCodeBaseModule*) self, TRUE);
	_tmp246_ = bus_get_proxy_async;
	if (_tmp246_) {
		_tmp245_ = TRUE;
	} else {
		gboolean _tmp247_;
		_tmp247_ = conn_get_proxy_async;
		_tmp245_ = _tmp247_;
	}
	if (_tmp245_) {
		ValaCCodeIdentifier* _tmp248_;
		ValaCCodeIdentifier* _tmp249_;
		ValaCCodeFunctionCall* _tmp250_;
		_tmp248_ = vala_ccode_identifier_new ("g_async_initable_new_async");
		_tmp249_ = _tmp248_;
		_tmp250_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp249_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp250_;
		_vala_ccode_node_unref0 (_tmp249_);
	} else {
		ValaCCodeIdentifier* _tmp251_;
		ValaCCodeIdentifier* _tmp252_;
		ValaCCodeFunctionCall* _tmp253_;
		_tmp251_ = vala_ccode_identifier_new ("g_initable_new");
		_tmp252_ = _tmp251_;
		_tmp253_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp252_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp253_;
		_vala_ccode_node_unref0 (_tmp252_);
	}
	_tmp254_ = ccall;
	_tmp255_ = proxy_type;
	vala_ccode_function_call_add_argument (_tmp254_, _tmp255_);
	_tmp257_ = bus_get_proxy_async;
	if (_tmp257_) {
		_tmp256_ = TRUE;
	} else {
		gboolean _tmp258_;
		_tmp258_ = conn_get_proxy_async;
		_tmp256_ = _tmp258_;
	}
	if (_tmp256_) {
		ValaCCodeFunctionCall* _tmp259_;
		ValaCCodeConstant* _tmp260_;
		ValaCCodeConstant* _tmp261_;
		_tmp259_ = ccall;
		_tmp260_ = vala_ccode_constant_new ("0");
		_tmp261_ = _tmp260_;
		vala_ccode_function_call_add_argument (_tmp259_, (ValaCCodeExpression*) _tmp261_);
		_vala_ccode_node_unref0 (_tmp261_);
	}
	_tmp262_ = ccall;
	_tmp263_ = cancellable;
	_tmp264_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp263_);
	_tmp265_ = _tmp264_;
	vala_ccode_function_call_add_argument (_tmp262_, _tmp265_);
	_vala_ccode_node_unref0 (_tmp265_);
	_tmp267_ = bus_get_proxy_async;
	if (_tmp267_) {
		_tmp266_ = TRUE;
	} else {
		gboolean _tmp268_;
		_tmp268_ = conn_get_proxy_async;
		_tmp266_ = _tmp268_;
	}
	if (_tmp266_) {
		ValaMethodCall* _tmp269_;
		gboolean _tmp270_;
		gboolean _tmp271_;
		_tmp269_ = expr;
		_tmp270_ = vala_method_call_get_is_yield_expression (_tmp269_);
		_tmp271_ = _tmp270_;
		if (_tmp271_) {
			ValaCCodeFunctionCall* _tmp272_;
			ValaMethod* _tmp273_;
			ValaMethod* _tmp274_;
			gchar* _tmp275_;
			gchar* _tmp276_;
			ValaCCodeIdentifier* _tmp277_;
			ValaCCodeIdentifier* _tmp278_;
			ValaCCodeFunctionCall* _tmp279_;
			ValaCCodeIdentifier* _tmp280_;
			ValaCCodeIdentifier* _tmp281_;
			_tmp272_ = ccall;
			_tmp273_ = vala_ccode_base_module_get_current_method ((ValaCCodeBaseModule*) self);
			_tmp274_ = _tmp273_;
			_tmp275_ = vala_ccode_base_module_generate_ready_function ((ValaCCodeBaseModule*) self, _tmp274_);
			_tmp276_ = _tmp275_;
			_tmp277_ = vala_ccode_identifier_new (_tmp276_);
			_tmp278_ = _tmp277_;
			vala_ccode_function_call_add_argument (_tmp272_, (ValaCCodeExpression*) _tmp278_);
			_vala_ccode_node_unref0 (_tmp278_);
			_g_free0 (_tmp276_);
			_tmp279_ = ccall;
			_tmp280_ = vala_ccode_identifier_new ("_data_");
			_tmp281_ = _tmp280_;
			vala_ccode_function_call_add_argument (_tmp279_, (ValaCCodeExpression*) _tmp281_);
			_vala_ccode_node_unref0 (_tmp281_);
		} else {
			ValaExpression* callback = NULL;
			ValaList* _tmp282_;
			gint _tmp283_;
			gpointer _tmp284_;
			ValaCCodeFunctionCall* _tmp285_;
			ValaExpression* _tmp286_;
			ValaCCodeExpression* _tmp287_;
			ValaCCodeExpression* _tmp288_;
			ValaCCodeFunctionCall* _tmp289_;
			ValaExpression* _tmp290_;
			ValaCCodeExpression* _tmp291_;
			ValaCCodeExpression* _tmp292_;
			_tmp282_ = args;
			_tmp283_ = base_arg_index;
			_tmp284_ = vala_list_get (_tmp282_, _tmp283_ + 4);
			callback = (ValaExpression*) _tmp284_;
			_tmp285_ = ccall;
			_tmp286_ = callback;
			_tmp287_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp286_);
			_tmp288_ = _tmp287_;
			vala_ccode_function_call_add_argument (_tmp285_, _tmp288_);
			_vala_ccode_node_unref0 (_tmp288_);
			_tmp289_ = ccall;
			_tmp290_ = callback;
			_tmp291_ = vala_ccode_base_module_get_delegate_target ((ValaCCodeBaseModule*) self, _tmp290_);
			_tmp292_ = _tmp291_;
			vala_ccode_function_call_add_argument (_tmp289_, _tmp292_);
			_vala_ccode_node_unref0 (_tmp292_);
			_vala_code_node_unref0 (callback);
		}
	} else {
		ValaCCodeFunctionCall* _tmp293_;
		ValaCCodeExpression* _tmp294_;
		ValaCCodeExpression* _tmp295_;
		ValaCCodeUnaryExpression* _tmp296_;
		ValaCCodeUnaryExpression* _tmp297_;
		_tmp293_ = ccall;
		_tmp294_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
		_tmp295_ = _tmp294_;
		_tmp296_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp295_);
		_tmp297_ = _tmp296_;
		vala_ccode_function_call_add_argument (_tmp293_, (ValaCCodeExpression*) _tmp297_);
		_vala_ccode_node_unref0 (_tmp297_);
		_vala_ccode_node_unref0 (_tmp295_);
	}
	_tmp298_ = ccall;
	_tmp299_ = vala_ccode_constant_new ("\"g-flags\"");
	_tmp300_ = _tmp299_;
	vala_ccode_function_call_add_argument (_tmp298_, (ValaCCodeExpression*) _tmp300_);
	_vala_ccode_node_unref0 (_tmp300_);
	_tmp301_ = ccall;
	_tmp302_ = flags;
	_tmp303_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp302_);
	_tmp304_ = _tmp303_;
	vala_ccode_function_call_add_argument (_tmp301_, _tmp304_);
	_vala_ccode_node_unref0 (_tmp304_);
	_tmp305_ = ccall;
	_tmp306_ = vala_ccode_constant_new ("\"g-name\"");
	_tmp307_ = _tmp306_;
	vala_ccode_function_call_add_argument (_tmp305_, (ValaCCodeExpression*) _tmp307_);
	_vala_ccode_node_unref0 (_tmp307_);
	_tmp308_ = ccall;
	_tmp309_ = name;
	_tmp310_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp309_);
	_tmp311_ = _tmp310_;
	vala_ccode_function_call_add_argument (_tmp308_, _tmp311_);
	_vala_ccode_node_unref0 (_tmp311_);
	_tmp313_ = bus_get_proxy_async;
	if (_tmp313_) {
		_tmp312_ = TRUE;
	} else {
		gboolean _tmp314_;
		_tmp314_ = bus_get_proxy_sync;
		_tmp312_ = _tmp314_;
	}
	if (_tmp312_) {
		ValaExpression* bus_type = NULL;
		ValaList* _tmp315_;
		gpointer _tmp316_;
		ValaCCodeFunctionCall* _tmp317_;
		ValaCCodeConstant* _tmp318_;
		ValaCCodeConstant* _tmp319_;
		ValaCCodeFunctionCall* _tmp320_;
		ValaExpression* _tmp321_;
		ValaCCodeExpression* _tmp322_;
		ValaCCodeExpression* _tmp323_;
		_tmp315_ = args;
		_tmp316_ = vala_list_get (_tmp315_, 0);
		bus_type = (ValaExpression*) _tmp316_;
		_tmp317_ = ccall;
		_tmp318_ = vala_ccode_constant_new ("\"g-bus-type\"");
		_tmp319_ = _tmp318_;
		vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_);
		_vala_ccode_node_unref0 (_tmp319_);
		_tmp320_ = ccall;
		_tmp321_ = bus_type;
		_tmp322_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp321_);
		_tmp323_ = _tmp322_;
		vala_ccode_function_call_add_argument (_tmp320_, _tmp323_);
		_vala_ccode_node_unref0 (_tmp323_);
		_vala_code_node_unref0 (bus_type);
	} else {
		ValaExpression* connection = NULL;
		ValaMemberAccess* _tmp324_;
		ValaExpression* _tmp325_;
		ValaExpression* _tmp326_;
		ValaExpression* _tmp327_;
		gboolean _tmp328_ = FALSE;
		ValaMemberAccess* _tmp329_;
		const gchar* _tmp330_;
		const gchar* _tmp331_;
		ValaCCodeFunctionCall* _tmp348_;
		ValaCCodeConstant* _tmp349_;
		ValaCCodeConstant* _tmp350_;
		ValaCCodeFunctionCall* _tmp351_;
		ValaExpression* _tmp352_;
		ValaCCodeExpression* _tmp353_;
		ValaCCodeExpression* _tmp354_;
		_tmp324_ = ma;
		_tmp325_ = vala_member_access_get_inner (_tmp324_);
		_tmp326_ = _tmp325_;
		_tmp327_ = _vala_code_node_ref0 (_tmp326_);
		connection = _tmp327_;
		_tmp329_ = ma;
		_tmp330_ = vala_member_access_get_member_name (_tmp329_);
		_tmp331_ = _tmp330_;
		if (g_strcmp0 (_tmp331_, "begin") == 0) {
			ValaMemberAccess* _tmp332_;
			ValaExpression* _tmp333_;
			ValaExpression* _tmp334_;
			ValaSymbol* _tmp335_;
			ValaSymbol* _tmp336_;
			ValaMemberAccess* _tmp337_;
			ValaSymbol* _tmp338_;
			ValaSymbol* _tmp339_;
			_tmp332_ = ma;
			_tmp333_ = vala_member_access_get_inner (_tmp332_);
			_tmp334_ = _tmp333_;
			_tmp335_ = vala_expression_get_symbol_reference (_tmp334_);
			_tmp336_ = _tmp335_;
			_tmp337_ = ma;
			_tmp338_ = vala_expression_get_symbol_reference ((ValaExpression*) _tmp337_);
			_tmp339_ = _tmp338_;
			_tmp328_ = _tmp336_ == _tmp339_;
		} else {
			_tmp328_ = FALSE;
		}
		if (_tmp328_) {
			ValaMemberAccess* inner_ma = NULL;
			ValaMemberAccess* _tmp340_;
			ValaExpression* _tmp341_;
			ValaExpression* _tmp342_;
			ValaMemberAccess* _tmp343_;
			ValaMemberAccess* _tmp344_;
			ValaExpression* _tmp345_;
			ValaExpression* _tmp346_;
			ValaExpression* _tmp347_;
			_tmp340_ = ma;
			_tmp341_ = vala_member_access_get_inner (_tmp340_);
			_tmp342_ = _tmp341_;
			_tmp343_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp342_, VALA_TYPE_MEMBER_ACCESS, ValaMemberAccess));
			inner_ma = _tmp343_;
			_tmp344_ = inner_ma;
			_tmp345_ = vala_member_access_get_inner (_tmp344_);
			_tmp346_ = _tmp345_;
			_tmp347_ = _vala_code_node_ref0 (_tmp346_);
			_vala_code_node_unref0 (connection);
			connection = _tmp347_;
			_vala_code_node_unref0 (inner_ma);
		}
		_tmp348_ = ccall;
		_tmp349_ = vala_ccode_constant_new ("\"g-connection\"");
		_tmp350_ = _tmp349_;
		vala_ccode_function_call_add_argument (_tmp348_, (ValaCCodeExpression*) _tmp350_);
		_vala_ccode_node_unref0 (_tmp350_);
		_tmp351_ = ccall;
		_tmp352_ = connection;
		_tmp353_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp352_);
		_tmp354_ = _tmp353_;
		vala_ccode_function_call_add_argument (_tmp351_, _tmp354_);
		_vala_ccode_node_unref0 (_tmp354_);
		_vala_code_node_unref0 (connection);
	}
	_tmp355_ = ccall;
	_tmp356_ = vala_ccode_constant_new ("\"g-object-path\"");
	_tmp357_ = _tmp356_;
	vala_ccode_function_call_add_argument (_tmp355_, (ValaCCodeExpression*) _tmp357_);
	_vala_ccode_node_unref0 (_tmp357_);
	_tmp358_ = ccall;
	_tmp359_ = object_path;
	_tmp360_ = vala_ccode_base_module_get_cvalue ((ValaCCodeBaseModule*) self, _tmp359_);
	_tmp361_ = _tmp360_;
	vala_ccode_function_call_add_argument (_tmp358_, _tmp361_);
	_vala_ccode_node_unref0 (_tmp361_);
	_tmp362_ = ccall;
	_tmp363_ = vala_ccode_constant_new ("\"g-interface-name\"");
	_tmp364_ = _tmp363_;
	vala_ccode_function_call_add_argument (_tmp362_, (ValaCCodeExpression*) _tmp364_);
	_vala_ccode_node_unref0 (_tmp364_);
	_tmp365_ = ccall;
	_tmp366_ = dbus_iface_name;
	vala_ccode_function_call_add_argument (_tmp365_, _tmp366_);
	_tmp367_ = dbus_iface_info;
	if (_tmp367_ != NULL) {
		ValaCCodeFunctionCall* _tmp368_;
		ValaCCodeConstant* _tmp369_;
		ValaCCodeConstant* _tmp370_;
		ValaCCodeFunctionCall* _tmp371_;
		ValaCCodeExpression* _tmp372_;
		_tmp368_ = ccall;
		_tmp369_ = vala_ccode_constant_new ("\"g-interface-info\"");
		_tmp370_ = _tmp369_;
		vala_ccode_function_call_add_argument (_tmp368_, (ValaCCodeExpression*) _tmp370_);
		_vala_ccode_node_unref0 (_tmp370_);
		_tmp371_ = ccall;
		_tmp372_ = dbus_iface_info;
		vala_ccode_function_call_add_argument (_tmp371_, _tmp372_);
	}
	_tmp373_ = ccall;
	_tmp374_ = vala_ccode_constant_new ("NULL");
	_tmp375_ = _tmp374_;
	vala_ccode_function_call_add_argument (_tmp373_, (ValaCCodeExpression*) _tmp375_);
	_vala_ccode_node_unref0 (_tmp375_);
	_tmp377_ = bus_get_proxy_async;
	if (_tmp377_) {
		_tmp376_ = TRUE;
	} else {
		gboolean _tmp378_;
		_tmp378_ = conn_get_proxy_async;
		_tmp376_ = _tmp378_;
	}
	if (_tmp376_) {
		ValaMethodCall* _tmp379_;
		gboolean _tmp380_;
		gboolean _tmp381_;
		_tmp379_ = expr;
		_tmp380_ = vala_method_call_get_is_yield_expression (_tmp379_);
		_tmp381_ = _tmp380_;
		if (_tmp381_) {
			gint state = 0;
			ValaCCodeBaseModuleEmitContext* _tmp382_;
			gint _tmp383_;
			ValaCCodeFunction* _tmp384_;
			ValaCCodeFunction* _tmp385_;
			ValaCCodeIdentifier* _tmp386_;
			ValaCCodeIdentifier* _tmp387_;
			ValaCCodeMemberAccess* _tmp388_;
			ValaCCodeMemberAccess* _tmp389_;
			gint _tmp390_;
			gchar* _tmp391_;
			gchar* _tmp392_;
			ValaCCodeConstant* _tmp393_;
			ValaCCodeConstant* _tmp394_;
			ValaCCodeFunction* _tmp395_;
			ValaCCodeFunction* _tmp396_;
			ValaCCodeFunctionCall* _tmp397_;
			ValaCCodeFunction* _tmp398_;
			ValaCCodeFunction* _tmp399_;
			ValaCCodeConstant* _tmp400_;
			ValaCCodeConstant* _tmp401_;
			ValaCCodeFunction* _tmp402_;
			ValaCCodeFunction* _tmp403_;
			gint _tmp404_;
			gchar* _tmp405_;
			gchar* _tmp406_;
			ValaCCodeIdentifier* _tmp407_;
			ValaCCodeIdentifier* _tmp408_;
			ValaCCodeFunctionCall* _tmp409_;
			ValaCCodeFunctionCall* _tmp410_;
			ValaCCodeIdentifier* _tmp411_;
			ValaCCodeIdentifier* _tmp412_;
			ValaCCodeMemberAccess* _tmp413_;
			ValaCCodeMemberAccess* _tmp414_;
			ValaCCodeFunctionCall* _tmp415_;
			ValaCCodeIdentifier* _tmp416_;
			ValaCCodeIdentifier* _tmp417_;
			ValaCCodeMemberAccess* _tmp418_;
			ValaCCodeMemberAccess* _tmp419_;
			ValaCCodeFunctionCall* _tmp420_;
			ValaCCodeExpression* _tmp421_;
			ValaCCodeExpression* _tmp422_;
			ValaCCodeUnaryExpression* _tmp423_;
			ValaCCodeUnaryExpression* _tmp424_;
			_tmp382_ = ((ValaCCodeBaseModule*) self)->emit_context;
			_tmp383_ = _tmp382_->next_coroutine_state;
			_tmp382_->next_coroutine_state = _tmp383_ + 1;
			state = _tmp383_;
			_tmp384_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp385_ = _tmp384_;
			_tmp386_ = vala_ccode_identifier_new ("_data_");
			_tmp387_ = _tmp386_;
			_tmp388_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp387_, "_state_");
			_tmp389_ = _tmp388_;
			_tmp390_ = state;
			_tmp391_ = g_strdup_printf ("%i", _tmp390_);
			_tmp392_ = _tmp391_;
			_tmp393_ = vala_ccode_constant_new (_tmp392_);
			_tmp394_ = _tmp393_;
			vala_ccode_function_add_assignment (_tmp385_, (ValaCCodeExpression*) _tmp389_, (ValaCCodeExpression*) _tmp394_);
			_vala_ccode_node_unref0 (_tmp394_);
			_g_free0 (_tmp392_);
			_vala_ccode_node_unref0 (_tmp389_);
			_vala_ccode_node_unref0 (_tmp387_);
			_tmp395_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp396_ = _tmp395_;
			_tmp397_ = ccall;
			vala_ccode_function_add_expression (_tmp396_, (ValaCCodeExpression*) _tmp397_);
			_tmp398_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp399_ = _tmp398_;
			_tmp400_ = vala_ccode_constant_new ("FALSE");
			_tmp401_ = _tmp400_;
			vala_ccode_function_add_return (_tmp399_, (ValaCCodeExpression*) _tmp401_);
			_vala_ccode_node_unref0 (_tmp401_);
			_tmp402_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp403_ = _tmp402_;
			_tmp404_ = state;
			_tmp405_ = g_strdup_printf ("_state_%d", _tmp404_);
			_tmp406_ = _tmp405_;
			vala_ccode_function_add_label (_tmp403_, _tmp406_);
			_g_free0 (_tmp406_);
			_tmp407_ = vala_ccode_identifier_new ("g_async_initable_new_finish");
			_tmp408_ = _tmp407_;
			_tmp409_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp408_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp409_;
			_vala_ccode_node_unref0 (_tmp408_);
			_tmp410_ = ccall;
			_tmp411_ = vala_ccode_identifier_new ("_data_");
			_tmp412_ = _tmp411_;
			_tmp413_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp412_, "_source_object_");
			_tmp414_ = _tmp413_;
			vala_ccode_function_call_add_argument (_tmp410_, (ValaCCodeExpression*) _tmp414_);
			_vala_ccode_node_unref0 (_tmp414_);
			_vala_ccode_node_unref0 (_tmp412_);
			_tmp415_ = ccall;
			_tmp416_ = vala_ccode_identifier_new ("_data_");
			_tmp417_ = _tmp416_;
			_tmp418_ = vala_ccode_member_access_new_pointer ((ValaCCodeExpression*) _tmp417_, "_res_");
			_tmp419_ = _tmp418_;
			vala_ccode_function_call_add_argument (_tmp415_, (ValaCCodeExpression*) _tmp419_);
			_vala_ccode_node_unref0 (_tmp419_);
			_vala_ccode_node_unref0 (_tmp417_);
			_tmp420_ = ccall;
			_tmp421_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, "_inner_error_");
			_tmp422_ = _tmp421_;
			_tmp423_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp422_);
			_tmp424_ = _tmp423_;
			vala_ccode_function_call_add_argument (_tmp420_, (ValaCCodeExpression*) _tmp424_);
			_vala_ccode_node_unref0 (_tmp424_);
			_vala_ccode_node_unref0 (_tmp422_);
		} else {
			ValaCCodeFunction* _tmp425_;
			ValaCCodeFunction* _tmp426_;
			ValaCCodeFunctionCall* _tmp427_;
			_tmp425_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp426_ = _tmp425_;
			_tmp427_ = ccall;
			vala_ccode_function_add_expression (_tmp426_, (ValaCCodeExpression*) _tmp427_);
			_vala_ccode_node_unref0 (ccall);
			_vala_code_node_unref0 (cancellable);
			_vala_code_node_unref0 (flags);
			_vala_code_node_unref0 (object_path);
			_vala_code_node_unref0 (name);
			_vala_iterable_unref0 (args);
			_vala_ccode_node_unref0 (get_qdata);
			_vala_ccode_node_unref0 (quark);
			_vala_code_node_unref0 (object_type);
			_vala_ccode_node_unref0 (dbus_iface_info);
			_vala_ccode_node_unref0 (dbus_iface_name);
			_vala_ccode_node_unref0 (proxy_type);
			_vala_code_node_unref0 (type_arg);
			_vala_code_node_unref0 (ma);
			_vala_code_node_unref0 (mtype);
			return;
		}
	}
	_tmp428_ = expr;
	_tmp429_ = vala_expression_get_value_type ((ValaExpression*) _tmp428_);
	_tmp430_ = _tmp429_;
	_tmp431_ = expr;
	_tmp432_ = vala_expression_get_value_type ((ValaExpression*) _tmp431_);
	_tmp433_ = _tmp432_;
	_tmp434_ = vala_data_type_get_value_owned (_tmp433_);
	_tmp435_ = _tmp434_;
	_tmp436_ = vala_ccode_base_module_get_temp_variable ((ValaCCodeBaseModule*) self, _tmp430_, _tmp435_, NULL, FALSE);
	temp_var = _tmp436_;
	_tmp437_ = temp_var;
	_tmp438_ = vala_symbol_get_name ((ValaSymbol*) _tmp437_);
	_tmp439_ = _tmp438_;
	_tmp440_ = vala_ccode_base_module_get_variable_cexpression ((ValaCCodeBaseModule*) self, _tmp439_);
	temp_ref = _tmp440_;
	_tmp441_ = temp_var;
	vala_ccode_base_module_emit_temp_var ((ValaCCodeBaseModule*) self, _tmp441_);
	_tmp442_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp443_ = _tmp442_;
	_tmp444_ = temp_ref;
	_tmp445_ = ccall;
	vala_ccode_function_add_assignment (_tmp443_, _tmp444_, (ValaCCodeExpression*) _tmp445_);
	_tmp446_ = expr;
	_tmp447_ = temp_ref;
	vala_ccode_base_module_set_cvalue ((ValaCCodeBaseModule*) self, (ValaExpression*) _tmp446_, _tmp447_);
	_vala_ccode_node_unref0 (temp_ref);
	_vala_code_node_unref0 (temp_var);
	_vala_ccode_node_unref0 (ccall);
	_vala_code_node_unref0 (cancellable);
	_vala_code_node_unref0 (flags);
	_vala_code_node_unref0 (object_path);
	_vala_code_node_unref0 (name);
	_vala_iterable_unref0 (args);
	_vala_ccode_node_unref0 (get_qdata);
	_vala_ccode_node_unref0 (quark);
	_vala_code_node_unref0 (object_type);
	_vala_ccode_node_unref0 (dbus_iface_info);
	_vala_ccode_node_unref0 (dbus_iface_name);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_code_node_unref0 (type_arg);
	_vala_code_node_unref0 (ma);
	_vala_code_node_unref0 (mtype);
}


static gchar* vala_gd_bus_client_module_generate_dbus_signal_handler (ValaGDBusClientModule* self, ValaSignal* sig, ValaObjectTypeSymbol* sym) {
	gchar* result = NULL;
	gchar* wrapper_name = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaSignal* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp8_;
	ValaCCodeFunction* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeFunction* _tmp11_;
	ValaObjectTypeSymbol* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaCCodeParameter* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	ValaCCodeVariableDeclarator* _tmp25_;
	ValaCCodeVariableDeclarator* _tmp26_;
	ValaCCodeFunctionCall* iter_init = NULL;
	ValaCCodeIdentifier* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeFunctionCall* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeIdentifier* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeUnaryExpression* _tmp34_;
	ValaCCodeUnaryExpression* _tmp35_;
	ValaCCodeFunctionCall* _tmp36_;
	ValaCCodeIdentifier* _tmp37_;
	ValaCCodeIdentifier* _tmp38_;
	ValaCCodeFunction* _tmp39_;
	ValaCCodeFunction* _tmp40_;
	ValaCCodeFunctionCall* _tmp41_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp42_;
	ValaCCodeIdentifier* _tmp43_;
	ValaCCodeFunctionCall* _tmp44_;
	ValaCCodeFunctionCall* _tmp45_;
	ValaCCodeFunctionCall* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeIdentifier* _tmp48_;
	ValaCCodeFunctionCall* _tmp49_;
	ValaSignal* _tmp50_;
	ValaCCodeConstant* _tmp51_;
	ValaCCodeConstant* _tmp52_;
	ValaCCodeFunction* _tmp142_;
	ValaCCodeFunction* _tmp143_;
	ValaCCodeFunctionCall* _tmp144_;
	ValaCCodeFile* _tmp173_;
	ValaCCodeFunction* _tmp174_;
	ValaCCodeFile* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (sig != NULL, NULL);
	g_return_val_if_fail (sym != NULL, NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp0_, NULL);
	_tmp2_ = _tmp1_;
	_tmp3_ = sig;
	_tmp4_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp3_, NULL);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("_dbus_handle_%s_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp5_);
	_g_free0 (_tmp2_);
	wrapper_name = _tmp7_;
	_tmp8_ = wrapper_name;
	_tmp9_ = vala_ccode_function_new (_tmp8_, "void");
	function = _tmp9_;
	_tmp10_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp10_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp11_ = function;
	_tmp12_ = sym;
	_tmp13_ = vala_get_ccode_name ((ValaCodeNode*) _tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = g_strconcat (_tmp14_, "*", NULL);
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_ccode_parameter_new ("self", _tmp16_);
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp11_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_g_free0 (_tmp16_);
	_g_free0 (_tmp14_);
	_tmp19_ = function;
	_tmp20_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp21_ = _tmp20_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp21_);
	_vala_ccode_node_unref0 (_tmp21_);
	_tmp22_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp22_);
	_tmp23_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_variable_declarator_new ("_arguments_iter", NULL, NULL);
	_tmp26_ = _tmp25_;
	vala_ccode_function_add_declaration (_tmp24_, "GVariantIter", (ValaCCodeDeclarator*) _tmp26_, 0);
	_vala_ccode_node_unref0 (_tmp26_);
	_tmp27_ = vala_ccode_identifier_new ("g_variant_iter_init");
	_tmp28_ = _tmp27_;
	_tmp29_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp28_);
	_tmp30_ = _tmp29_;
	_vala_ccode_node_unref0 (_tmp28_);
	iter_init = _tmp30_;
	_tmp31_ = iter_init;
	_tmp32_ = vala_ccode_identifier_new ("_arguments_iter");
	_tmp33_ = _tmp32_;
	_tmp34_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp33_);
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp31_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_vala_ccode_node_unref0 (_tmp33_);
	_tmp36_ = iter_init;
	_tmp37_ = vala_ccode_identifier_new ("parameters");
	_tmp38_ = _tmp37_;
	vala_ccode_function_call_add_argument (_tmp36_, (ValaCCodeExpression*) _tmp38_);
	_vala_ccode_node_unref0 (_tmp38_);
	_tmp39_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp40_ = _tmp39_;
	_tmp41_ = iter_init;
	vala_ccode_function_add_expression (_tmp40_, (ValaCCodeExpression*) _tmp41_);
	_tmp42_ = vala_ccode_identifier_new ("g_signal_emit_by_name");
	_tmp43_ = _tmp42_;
	_tmp44_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp43_);
	_tmp45_ = _tmp44_;
	_vala_ccode_node_unref0 (_tmp43_);
	ccall = _tmp45_;
	_tmp46_ = ccall;
	_tmp47_ = vala_ccode_identifier_new ("self");
	_tmp48_ = _tmp47_;
	vala_ccode_function_call_add_argument (_tmp46_, (ValaCCodeExpression*) _tmp48_);
	_vala_ccode_node_unref0 (_tmp48_);
	_tmp49_ = ccall;
	_tmp50_ = sig;
	_tmp51_ = vala_ccode_base_module_get_signal_canonical_constant ((ValaCCodeBaseModule*) self, _tmp50_, NULL);
	_tmp52_ = _tmp51_;
	vala_ccode_function_call_add_argument (_tmp49_, (ValaCCodeExpression*) _tmp52_);
	_vala_ccode_node_unref0 (_tmp52_);
	{
		ValaList* _param_list = NULL;
		ValaSignal* _tmp53_;
		ValaList* _tmp54_;
		gint _param_size = 0;
		ValaList* _tmp55_;
		gint _tmp56_;
		gint _tmp57_;
		gint _param_index = 0;
		_tmp53_ = sig;
		_tmp54_ = vala_callable_get_parameters ((ValaCallable*) _tmp53_);
		_param_list = _tmp54_;
		_tmp55_ = _param_list;
		_tmp56_ = vala_collection_get_size ((ValaCollection*) _tmp55_);
		_tmp57_ = _tmp56_;
		_param_size = _tmp57_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp58_;
			gint _tmp59_;
			gint _tmp60_;
			ValaParameter* param = NULL;
			ValaList* _tmp61_;
			gint _tmp62_;
			gpointer _tmp63_;
			gchar* param_name = NULL;
			ValaParameter* _tmp64_;
			const gchar* _tmp65_;
			const gchar* _tmp66_;
			gchar* _tmp67_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp68_;
			ValaDataType* _tmp69_;
			ValaDataType* _tmp70_;
			ValaDataType* _tmp71_;
			ValaDataType* _tmp72_;
			ValaCCodeFunction* _tmp73_;
			ValaCCodeFunction* _tmp74_;
			ValaDataType* _tmp75_;
			gchar* _tmp76_;
			gchar* _tmp77_;
			const gchar* _tmp78_;
			ValaParameter* _tmp79_;
			ValaDataType* _tmp80_;
			ValaDataType* _tmp81_;
			ValaCCodeExpression* _tmp82_;
			ValaCCodeExpression* _tmp83_;
			ValaCCodeVariableDeclarator* _tmp84_;
			ValaCCodeVariableDeclarator* _tmp85_;
			ValaStruct* st = NULL;
			ValaParameter* _tmp86_;
			ValaDataType* _tmp87_;
			ValaDataType* _tmp88_;
			ValaTypeSymbol* _tmp89_;
			ValaTypeSymbol* _tmp90_;
			ValaStruct* _tmp91_;
			gboolean _tmp92_ = FALSE;
			ValaStruct* _tmp93_;
			ValaParameter* _tmp106_;
			ValaDataType* _tmp107_;
			ValaDataType* _tmp108_;
			ValaParameter* _tmp133_;
			ValaDataType* _tmp134_;
			ValaDataType* _tmp135_;
			ValaCCodeIdentifier* _tmp136_;
			ValaCCodeIdentifier* _tmp137_;
			const gchar* _tmp138_;
			ValaCCodeIdentifier* _tmp139_;
			ValaCCodeIdentifier* _tmp140_;
			ValaParameter* _tmp141_;
			_tmp58_ = _param_index;
			_param_index = _tmp58_ + 1;
			_tmp59_ = _param_index;
			_tmp60_ = _param_size;
			if (!(_tmp59_ < _tmp60_)) {
				break;
			}
			_tmp61_ = _param_list;
			_tmp62_ = _param_index;
			_tmp63_ = vala_list_get (_tmp61_, _tmp62_);
			param = (ValaParameter*) _tmp63_;
			_tmp64_ = param;
			_tmp65_ = vala_symbol_get_name ((ValaSymbol*) _tmp64_);
			_tmp66_ = _tmp65_;
			_tmp67_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp66_);
			param_name = _tmp67_;
			_tmp68_ = param;
			_tmp69_ = vala_variable_get_variable_type ((ValaVariable*) _tmp68_);
			_tmp70_ = _tmp69_;
			_tmp71_ = vala_data_type_copy (_tmp70_);
			owned_type = _tmp71_;
			_tmp72_ = owned_type;
			vala_data_type_set_value_owned (_tmp72_, TRUE);
			_tmp73_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp74_ = _tmp73_;
			_tmp75_ = owned_type;
			_tmp76_ = vala_get_ccode_name ((ValaCodeNode*) _tmp75_);
			_tmp77_ = _tmp76_;
			_tmp78_ = param_name;
			_tmp79_ = param;
			_tmp80_ = vala_variable_get_variable_type ((ValaVariable*) _tmp79_);
			_tmp81_ = _tmp80_;
			_tmp82_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp81_, TRUE);
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_variable_declarator_new_zero (_tmp78_, _tmp83_, NULL);
			_tmp85_ = _tmp84_;
			vala_ccode_function_add_declaration (_tmp74_, _tmp77_, (ValaCCodeDeclarator*) _tmp85_, 0);
			_vala_ccode_node_unref0 (_tmp85_);
			_vala_ccode_node_unref0 (_tmp83_);
			_g_free0 (_tmp77_);
			_tmp86_ = param;
			_tmp87_ = vala_variable_get_variable_type ((ValaVariable*) _tmp86_);
			_tmp88_ = _tmp87_;
			_tmp89_ = vala_data_type_get_data_type (_tmp88_);
			_tmp90_ = _tmp89_;
			_tmp91_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp90_, VALA_TYPE_STRUCT) ? ((ValaStruct*) _tmp90_) : NULL);
			st = _tmp91_;
			_tmp93_ = st;
			if (_tmp93_ != NULL) {
				ValaStruct* _tmp94_;
				gboolean _tmp95_;
				_tmp94_ = st;
				_tmp95_ = vala_struct_is_simple_type (_tmp94_);
				_tmp92_ = !_tmp95_;
			} else {
				_tmp92_ = FALSE;
			}
			if (_tmp92_) {
				ValaCCodeFunctionCall* _tmp96_;
				const gchar* _tmp97_;
				ValaCCodeIdentifier* _tmp98_;
				ValaCCodeIdentifier* _tmp99_;
				ValaCCodeUnaryExpression* _tmp100_;
				ValaCCodeUnaryExpression* _tmp101_;
				_tmp96_ = ccall;
				_tmp97_ = param_name;
				_tmp98_ = vala_ccode_identifier_new (_tmp97_);
				_tmp99_ = _tmp98_;
				_tmp100_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp99_);
				_tmp101_ = _tmp100_;
				vala_ccode_function_call_add_argument (_tmp96_, (ValaCCodeExpression*) _tmp101_);
				_vala_ccode_node_unref0 (_tmp101_);
				_vala_ccode_node_unref0 (_tmp99_);
			} else {
				ValaCCodeFunctionCall* _tmp102_;
				const gchar* _tmp103_;
				ValaCCodeIdentifier* _tmp104_;
				ValaCCodeIdentifier* _tmp105_;
				_tmp102_ = ccall;
				_tmp103_ = param_name;
				_tmp104_ = vala_ccode_identifier_new (_tmp103_);
				_tmp105_ = _tmp104_;
				vala_ccode_function_call_add_argument (_tmp102_, (ValaCCodeExpression*) _tmp105_);
				_vala_ccode_node_unref0 (_tmp105_);
			}
			_tmp106_ = param;
			_tmp107_ = vala_variable_get_variable_type ((ValaVariable*) _tmp106_);
			_tmp108_ = _tmp107_;
			if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp108_, VALA_TYPE_ARRAY_TYPE)) {
				ValaArrayType* array_type = NULL;
				ValaParameter* _tmp109_;
				ValaDataType* _tmp110_;
				ValaDataType* _tmp111_;
				ValaArrayType* _tmp112_;
				_tmp109_ = param;
				_tmp110_ = vala_variable_get_variable_type ((ValaVariable*) _tmp109_);
				_tmp111_ = _tmp110_;
				_tmp112_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, VALA_TYPE_ARRAY_TYPE, ValaArrayType));
				array_type = _tmp112_;
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp113_ = FALSE;
						_tmp113_ = TRUE;
						while (TRUE) {
							gint _tmp115_;
							ValaArrayType* _tmp116_;
							gint _tmp117_;
							gint _tmp118_;
							gchar* length_cname = NULL;
							ValaParameter* _tmp119_;
							gint _tmp120_;
							gchar* _tmp121_;
							ValaCCodeFunction* _tmp122_;
							ValaCCodeFunction* _tmp123_;
							const gchar* _tmp124_;
							ValaCCodeConstant* _tmp125_;
							ValaCCodeConstant* _tmp126_;
							ValaCCodeVariableDeclarator* _tmp127_;
							ValaCCodeVariableDeclarator* _tmp128_;
							ValaCCodeFunctionCall* _tmp129_;
							const gchar* _tmp130_;
							ValaCCodeIdentifier* _tmp131_;
							ValaCCodeIdentifier* _tmp132_;
							if (!_tmp113_) {
								gint _tmp114_;
								_tmp114_ = dim;
								dim = _tmp114_ + 1;
							}
							_tmp113_ = FALSE;
							_tmp115_ = dim;
							_tmp116_ = array_type;
							_tmp117_ = vala_array_type_get_rank (_tmp116_);
							_tmp118_ = _tmp117_;
							if (!(_tmp115_ <= _tmp118_)) {
								break;
							}
							_tmp119_ = param;
							_tmp120_ = dim;
							_tmp121_ = vala_ccode_base_module_get_parameter_array_length_cname ((ValaCCodeBaseModule*) self, _tmp119_, _tmp120_);
							length_cname = _tmp121_;
							_tmp122_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp123_ = _tmp122_;
							_tmp124_ = length_cname;
							_tmp125_ = vala_ccode_constant_new ("0");
							_tmp126_ = _tmp125_;
							_tmp127_ = vala_ccode_variable_declarator_new (_tmp124_, (ValaCCodeExpression*) _tmp126_, NULL);
							_tmp128_ = _tmp127_;
							vala_ccode_function_add_declaration (_tmp123_, "int", (ValaCCodeDeclarator*) _tmp128_, 0);
							_vala_ccode_node_unref0 (_tmp128_);
							_vala_ccode_node_unref0 (_tmp126_);
							_tmp129_ = ccall;
							_tmp130_ = length_cname;
							_tmp131_ = vala_ccode_identifier_new (_tmp130_);
							_tmp132_ = _tmp131_;
							vala_ccode_function_call_add_argument (_tmp129_, (ValaCCodeExpression*) _tmp132_);
							_vala_ccode_node_unref0 (_tmp132_);
							_g_free0 (length_cname);
						}
					}
				}
				_vala_code_node_unref0 (array_type);
			}
			_tmp133_ = param;
			_tmp134_ = vala_variable_get_variable_type ((ValaVariable*) _tmp133_);
			_tmp135_ = _tmp134_;
			_tmp136_ = vala_ccode_identifier_new ("_arguments_iter");
			_tmp137_ = _tmp136_;
			_tmp138_ = param_name;
			_tmp139_ = vala_ccode_identifier_new (_tmp138_);
			_tmp140_ = _tmp139_;
			_tmp141_ = param;
			vala_gvariant_module_read_expression ((ValaGVariantModule*) self, _tmp135_, (ValaCCodeExpression*) _tmp137_, (ValaCCodeExpression*) _tmp140_, (ValaSymbol*) _tmp141_, NULL, NULL);
			_vala_ccode_node_unref0 (_tmp140_);
			_vala_ccode_node_unref0 (_tmp137_);
			_vala_code_node_unref0 (st);
			_vala_code_node_unref0 (owned_type);
			_g_free0 (param_name);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	_tmp142_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp143_ = _tmp142_;
	_tmp144_ = ccall;
	vala_ccode_function_add_expression (_tmp143_, (ValaCCodeExpression*) _tmp144_);
	{
		ValaList* _param_list = NULL;
		ValaSignal* _tmp145_;
		ValaList* _tmp146_;
		gint _param_size = 0;
		ValaList* _tmp147_;
		gint _tmp148_;
		gint _tmp149_;
		gint _param_index = 0;
		_tmp145_ = sig;
		_tmp146_ = vala_callable_get_parameters ((ValaCallable*) _tmp145_);
		_param_list = _tmp146_;
		_tmp147_ = _param_list;
		_tmp148_ = vala_collection_get_size ((ValaCollection*) _tmp147_);
		_tmp149_ = _tmp148_;
		_param_size = _tmp149_;
		_param_index = -1;
		while (TRUE) {
			gint _tmp150_;
			gint _tmp151_;
			gint _tmp152_;
			ValaParameter* param = NULL;
			ValaList* _tmp153_;
			gint _tmp154_;
			gpointer _tmp155_;
			ValaDataType* owned_type = NULL;
			ValaParameter* _tmp156_;
			ValaDataType* _tmp157_;
			ValaDataType* _tmp158_;
			ValaDataType* _tmp159_;
			ValaDataType* _tmp160_;
			ValaDataType* _tmp161_;
			gboolean _tmp162_;
			_tmp150_ = _param_index;
			_param_index = _tmp150_ + 1;
			_tmp151_ = _param_index;
			_tmp152_ = _param_size;
			if (!(_tmp151_ < _tmp152_)) {
				break;
			}
			_tmp153_ = _param_list;
			_tmp154_ = _param_index;
			_tmp155_ = vala_list_get (_tmp153_, _tmp154_);
			param = (ValaParameter*) _tmp155_;
			_tmp156_ = param;
			_tmp157_ = vala_variable_get_variable_type ((ValaVariable*) _tmp156_);
			_tmp158_ = _tmp157_;
			_tmp159_ = vala_data_type_copy (_tmp158_);
			owned_type = _tmp159_;
			_tmp160_ = owned_type;
			vala_data_type_set_value_owned (_tmp160_, TRUE);
			_tmp161_ = owned_type;
			_tmp162_ = vala_ccode_base_module_requires_destroy ((ValaCCodeBaseModule*) self, _tmp161_);
			if (_tmp162_) {
				ValaLocalVariable* local = NULL;
				ValaDataType* _tmp163_;
				ValaParameter* _tmp164_;
				const gchar* _tmp165_;
				const gchar* _tmp166_;
				ValaLocalVariable* _tmp167_;
				ValaCCodeFunction* _tmp168_;
				ValaCCodeFunction* _tmp169_;
				ValaLocalVariable* _tmp170_;
				ValaCCodeExpression* _tmp171_;
				ValaCCodeExpression* _tmp172_;
				_tmp163_ = owned_type;
				_tmp164_ = param;
				_tmp165_ = vala_symbol_get_name ((ValaSymbol*) _tmp164_);
				_tmp166_ = _tmp165_;
				_tmp167_ = vala_local_variable_new (_tmp163_, _tmp166_, NULL, NULL);
				local = _tmp167_;
				_tmp168_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp169_ = _tmp168_;
				_tmp170_ = local;
				_tmp171_ = vala_ccode_base_module_destroy_local ((ValaCCodeBaseModule*) self, _tmp170_);
				_tmp172_ = _tmp171_;
				vala_ccode_function_add_expression (_tmp169_, _tmp172_);
				_vala_ccode_node_unref0 (_tmp172_);
				_vala_code_node_unref0 (local);
			}
			_vala_code_node_unref0 (owned_type);
			_vala_code_node_unref0 (param);
		}
		_vala_iterable_unref0 (_param_list);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp173_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp174_ = function;
	vala_ccode_file_add_function_declaration (_tmp173_, _tmp174_);
	_tmp175_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp176_ = function;
	vala_ccode_file_add_function (_tmp175_, _tmp176_);
	result = wrapper_name;
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (iter_init);
	_vala_ccode_node_unref0 (function);
	return result;
}


static void vala_gd_bus_client_module_generate_signal_handler_function (ValaGDBusClientModule* self, ValaObjectTypeSymbol* sym) {
	ValaCCodeFunction* cfunc = NULL;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	ValaCCodeFunction* _tmp5_;
	ValaCCodeFunction* _tmp6_;
	ValaCCodeFunction* _tmp7_;
	ValaCCodeParameter* _tmp8_;
	ValaCCodeParameter* _tmp9_;
	ValaCCodeFunction* _tmp10_;
	ValaCCodeParameter* _tmp11_;
	ValaCCodeParameter* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaCCodeFunction* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	ValaCCodeParameter* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaCCodeFunction* _tmp20_;
	ValaCCodeModifiers _tmp21_;
	ValaCCodeModifiers _tmp22_;
	ValaCCodeFile* _tmp23_;
	ValaCCodeFunction* _tmp24_;
	ValaCCodeFunction* _tmp25_;
	gboolean firstif = FALSE;
	gboolean _tmp92_;
	ValaCCodeFile* _tmp95_;
	ValaCCodeFunction* _tmp96_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_strconcat (_tmp2_, "proxy_g_signal", NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = vala_ccode_function_new (_tmp4_, "void");
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp4_);
	_g_free0 (_tmp2_);
	cfunc = _tmp6_;
	_tmp7_ = cfunc;
	_tmp8_ = vala_ccode_parameter_new ("proxy", "GDBusProxy*");
	_tmp9_ = _tmp8_;
	vala_ccode_function_add_parameter (_tmp7_, _tmp9_);
	_vala_ccode_node_unref0 (_tmp9_);
	_tmp10_ = cfunc;
	_tmp11_ = vala_ccode_parameter_new ("sender_name", "const gchar*");
	_tmp12_ = _tmp11_;
	vala_ccode_function_add_parameter (_tmp10_, _tmp12_);
	_vala_ccode_node_unref0 (_tmp12_);
	_tmp13_ = cfunc;
	_tmp14_ = vala_ccode_parameter_new ("signal_name", "const gchar*");
	_tmp15_ = _tmp14_;
	vala_ccode_function_add_parameter (_tmp13_, _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = cfunc;
	_tmp17_ = vala_ccode_parameter_new ("parameters", "GVariant*");
	_tmp18_ = _tmp17_;
	vala_ccode_function_add_parameter (_tmp16_, _tmp18_);
	_vala_ccode_node_unref0 (_tmp18_);
	_tmp19_ = cfunc;
	_tmp20_ = cfunc;
	_tmp21_ = vala_ccode_node_get_modifiers ((ValaCCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp20_, _tmp22_ | VALA_CCODE_MODIFIERS_STATIC);
	_tmp23_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp24_ = cfunc;
	vala_ccode_file_add_function_declaration (_tmp23_, _tmp24_);
	_tmp25_ = cfunc;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp25_);
	firstif = TRUE;
	{
		ValaList* _sig_list = NULL;
		ValaObjectTypeSymbol* _tmp26_;
		ValaList* _tmp27_;
		gint _sig_size = 0;
		ValaList* _tmp28_;
		gint _tmp29_;
		gint _tmp30_;
		gint _sig_index = 0;
		_tmp26_ = sym;
		_tmp27_ = vala_object_type_symbol_get_signals (_tmp26_);
		_sig_list = _tmp27_;
		_tmp28_ = _sig_list;
		_tmp29_ = vala_collection_get_size ((ValaCollection*) _tmp28_);
		_tmp30_ = _tmp29_;
		_sig_size = _tmp30_;
		_sig_index = -1;
		while (TRUE) {
			gint _tmp31_;
			gint _tmp32_;
			gint _tmp33_;
			ValaSignal* sig = NULL;
			ValaList* _tmp34_;
			gint _tmp35_;
			gpointer _tmp36_;
			ValaSignal* _tmp37_;
			ValaSymbolAccessibility _tmp38_;
			ValaSymbolAccessibility _tmp39_;
			ValaCCodeFile* _tmp40_;
			ValaCCodeFunctionCall* ccheck = NULL;
			ValaCCodeIdentifier* _tmp41_;
			ValaCCodeIdentifier* _tmp42_;
			ValaCCodeFunctionCall* _tmp43_;
			ValaCCodeFunctionCall* _tmp44_;
			ValaCCodeFunctionCall* _tmp45_;
			ValaCCodeIdentifier* _tmp46_;
			ValaCCodeIdentifier* _tmp47_;
			ValaCCodeFunctionCall* _tmp48_;
			ValaSignal* _tmp49_;
			gchar* _tmp50_;
			gchar* _tmp51_;
			gchar* _tmp52_;
			gchar* _tmp53_;
			ValaCCodeConstant* _tmp54_;
			ValaCCodeConstant* _tmp55_;
			ValaCCodeBinaryExpression* cond = NULL;
			ValaCCodeFunctionCall* _tmp56_;
			ValaCCodeConstant* _tmp57_;
			ValaCCodeConstant* _tmp58_;
			ValaCCodeBinaryExpression* _tmp59_;
			ValaCCodeBinaryExpression* _tmp60_;
			gboolean _tmp61_;
			ValaCCodeFunctionCall* ccall = NULL;
			ValaSignal* _tmp68_;
			ValaObjectTypeSymbol* _tmp69_;
			gchar* _tmp70_;
			gchar* _tmp71_;
			ValaCCodeIdentifier* _tmp72_;
			ValaCCodeIdentifier* _tmp73_;
			ValaCCodeFunctionCall* _tmp74_;
			ValaCCodeFunctionCall* _tmp75_;
			ValaCCodeFunctionCall* _tmp76_;
			ValaCCodeIdentifier* _tmp77_;
			ValaCCodeIdentifier* _tmp78_;
			ValaObjectTypeSymbol* _tmp79_;
			gchar* _tmp80_;
			gchar* _tmp81_;
			gchar* _tmp82_;
			gchar* _tmp83_;
			ValaCCodeCastExpression* _tmp84_;
			ValaCCodeCastExpression* _tmp85_;
			ValaCCodeFunctionCall* _tmp86_;
			ValaCCodeIdentifier* _tmp87_;
			ValaCCodeIdentifier* _tmp88_;
			ValaCCodeFunction* _tmp89_;
			ValaCCodeFunction* _tmp90_;
			ValaCCodeFunctionCall* _tmp91_;
			_tmp31_ = _sig_index;
			_sig_index = _tmp31_ + 1;
			_tmp32_ = _sig_index;
			_tmp33_ = _sig_size;
			if (!(_tmp32_ < _tmp33_)) {
				break;
			}
			_tmp34_ = _sig_list;
			_tmp35_ = _sig_index;
			_tmp36_ = vala_list_get (_tmp34_, _tmp35_);
			sig = (ValaSignal*) _tmp36_;
			_tmp37_ = sig;
			_tmp38_ = vala_symbol_get_access ((ValaSymbol*) _tmp37_);
			_tmp39_ = _tmp38_;
			if (_tmp39_ != VALA_SYMBOL_ACCESSIBILITY_PUBLIC) {
				_vala_code_node_unref0 (sig);
				continue;
			}
			_tmp40_ = ((ValaCCodeBaseModule*) self)->cfile;
			vala_ccode_file_add_include (_tmp40_, "string.h", FALSE);
			_tmp41_ = vala_ccode_identifier_new ("strcmp");
			_tmp42_ = _tmp41_;
			_tmp43_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp42_);
			_tmp44_ = _tmp43_;
			_vala_ccode_node_unref0 (_tmp42_);
			ccheck = _tmp44_;
			_tmp45_ = ccheck;
			_tmp46_ = vala_ccode_identifier_new ("signal_name");
			_tmp47_ = _tmp46_;
			vala_ccode_function_call_add_argument (_tmp45_, (ValaCCodeExpression*) _tmp47_);
			_vala_ccode_node_unref0 (_tmp47_);
			_tmp48_ = ccheck;
			_tmp49_ = sig;
			_tmp50_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp49_);
			_tmp51_ = _tmp50_;
			_tmp52_ = g_strdup_printf ("\"%s\"", _tmp51_);
			_tmp53_ = _tmp52_;
			_tmp54_ = vala_ccode_constant_new (_tmp53_);
			_tmp55_ = _tmp54_;
			vala_ccode_function_call_add_argument (_tmp48_, (ValaCCodeExpression*) _tmp55_);
			_vala_ccode_node_unref0 (_tmp55_);
			_g_free0 (_tmp53_);
			_g_free0 (_tmp51_);
			_tmp56_ = ccheck;
			_tmp57_ = vala_ccode_constant_new ("0");
			_tmp58_ = _tmp57_;
			_tmp59_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_EQUALITY, (ValaCCodeExpression*) _tmp56_, (ValaCCodeExpression*) _tmp58_);
			_tmp60_ = _tmp59_;
			_vala_ccode_node_unref0 (_tmp58_);
			cond = _tmp60_;
			_tmp61_ = firstif;
			if (_tmp61_) {
				ValaCCodeFunction* _tmp62_;
				ValaCCodeFunction* _tmp63_;
				ValaCCodeBinaryExpression* _tmp64_;
				_tmp62_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp63_ = _tmp62_;
				_tmp64_ = cond;
				vala_ccode_function_open_if (_tmp63_, (ValaCCodeExpression*) _tmp64_);
				firstif = FALSE;
			} else {
				ValaCCodeFunction* _tmp65_;
				ValaCCodeFunction* _tmp66_;
				ValaCCodeBinaryExpression* _tmp67_;
				_tmp65_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp66_ = _tmp65_;
				_tmp67_ = cond;
				vala_ccode_function_else_if (_tmp66_, (ValaCCodeExpression*) _tmp67_);
			}
			_tmp68_ = sig;
			_tmp69_ = sym;
			_tmp70_ = vala_gd_bus_client_module_generate_dbus_signal_handler (self, _tmp68_, _tmp69_);
			_tmp71_ = _tmp70_;
			_tmp72_ = vala_ccode_identifier_new (_tmp71_);
			_tmp73_ = _tmp72_;
			_tmp74_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp73_);
			_tmp75_ = _tmp74_;
			_vala_ccode_node_unref0 (_tmp73_);
			_g_free0 (_tmp71_);
			ccall = _tmp75_;
			_tmp76_ = ccall;
			_tmp77_ = vala_ccode_identifier_new ("proxy");
			_tmp78_ = _tmp77_;
			_tmp79_ = sym;
			_tmp80_ = vala_get_ccode_name ((ValaCodeNode*) _tmp79_);
			_tmp81_ = _tmp80_;
			_tmp82_ = g_strconcat (_tmp81_, "*", NULL);
			_tmp83_ = _tmp82_;
			_tmp84_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp78_, _tmp83_);
			_tmp85_ = _tmp84_;
			vala_ccode_function_call_add_argument (_tmp76_, (ValaCCodeExpression*) _tmp85_);
			_vala_ccode_node_unref0 (_tmp85_);
			_g_free0 (_tmp83_);
			_g_free0 (_tmp81_);
			_vala_ccode_node_unref0 (_tmp78_);
			_tmp86_ = ccall;
			_tmp87_ = vala_ccode_identifier_new ("parameters");
			_tmp88_ = _tmp87_;
			vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp88_);
			_vala_ccode_node_unref0 (_tmp88_);
			_tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp90_ = _tmp89_;
			_tmp91_ = ccall;
			vala_ccode_function_add_expression (_tmp90_, (ValaCCodeExpression*) _tmp91_);
			_vala_ccode_node_unref0 (ccall);
			_vala_ccode_node_unref0 (cond);
			_vala_ccode_node_unref0 (ccheck);
			_vala_code_node_unref0 (sig);
		}
		_vala_iterable_unref0 (_sig_list);
	}
	_tmp92_ = firstif;
	if (!_tmp92_) {
		ValaCCodeFunction* _tmp93_;
		ValaCCodeFunction* _tmp94_;
		_tmp93_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp94_ = _tmp93_;
		vala_ccode_function_close (_tmp94_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp95_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp96_ = cfunc;
	vala_ccode_file_add_function (_tmp95_, _tmp96_);
	_vala_ccode_node_unref0 (cfunc);
}


static void vala_gd_bus_client_module_generate_marshalling (ValaGDBusClientModule* self, ValaMethod* m, ValaGDBusClientModuleCallType call_type, const gchar* iface_name, const gchar* method_name, gint method_timeout) {
	ValaCCodeCastExpression* gdbusproxy = NULL;
	ValaCCodeIdentifier* _tmp0_;
	ValaCCodeIdentifier* _tmp1_;
	ValaCCodeCastExpression* _tmp2_;
	ValaCCodeCastExpression* _tmp3_;
	ValaCCodeFunctionCall* connection = NULL;
	ValaCCodeIdentifier* _tmp4_;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeCastExpression* _tmp9_;
	gboolean uses_fd = FALSE;
	ValaMethod* _tmp10_;
	gboolean _tmp11_;
	gboolean _tmp12_;
	gboolean has_error_argument = FALSE;
	ValaMethod* _tmp14_;
	ValaList* _tmp15_;
	ValaList* _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	gboolean _tmp19_;
	ValaCCodeExpression* error_argument = NULL;
	gboolean _tmp20_;
	ValaGDBusClientModuleCallType _tmp23_;
	gboolean _tmp410_ = FALSE;
	ValaGDBusClientModuleCallType _tmp411_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (m != NULL);
	_tmp0_ = vala_ccode_identifier_new ("self");
	_tmp1_ = _tmp0_;
	_tmp2_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp1_, "GDBusProxy *");
	_tmp3_ = _tmp2_;
	_vala_ccode_node_unref0 (_tmp1_);
	gdbusproxy = _tmp3_;
	_tmp4_ = vala_ccode_identifier_new ("g_dbus_proxy_get_connection");
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
	_tmp7_ = _tmp6_;
	_vala_ccode_node_unref0 (_tmp5_);
	connection = _tmp7_;
	_tmp8_ = connection;
	_tmp9_ = gdbusproxy;
	vala_ccode_function_call_add_argument (_tmp8_, (ValaCCodeExpression*) _tmp9_);
	_tmp10_ = m;
	_tmp11_ = vala_gd_bus_module_dbus_method_uses_file_descriptor ((ValaGDBusModule*) self, _tmp10_);
	uses_fd = _tmp11_;
	_tmp12_ = uses_fd;
	if (_tmp12_) {
		ValaCCodeFile* _tmp13_;
		_tmp13_ = ((ValaCCodeBaseModule*) self)->cfile;
		vala_ccode_file_add_include (_tmp13_, "gio/gunixfdlist.h", FALSE);
	}
	_tmp14_ = m;
	_tmp15_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp14_);
	_tmp16_ = _tmp15_;
	_tmp17_ = vala_collection_get_size ((ValaCollection*) _tmp16_);
	_tmp18_ = _tmp17_;
	_tmp19_ = _tmp18_ > 0;
	_vala_iterable_unref0 (_tmp16_);
	has_error_argument = _tmp19_;
	_tmp20_ = has_error_argument;
	if (_tmp20_) {
		ValaCCodeIdentifier* _tmp21_;
		_tmp21_ = vala_ccode_identifier_new ("error");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp21_;
	} else {
		ValaCCodeConstant* _tmp22_;
		_tmp22_ = vala_ccode_constant_new ("NULL");
		_vala_ccode_node_unref0 (error_argument);
		error_argument = (ValaCCodeExpression*) _tmp22_;
	}
	_tmp23_ = call_type;
	if (_tmp23_ != VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH) {
		ValaCCodeFunctionCall* destination = NULL;
		ValaCCodeIdentifier* _tmp24_;
		ValaCCodeIdentifier* _tmp25_;
		ValaCCodeFunctionCall* _tmp26_;
		ValaCCodeFunctionCall* _tmp27_;
		ValaCCodeFunctionCall* _tmp28_;
		ValaCCodeCastExpression* _tmp29_;
		ValaCCodeFunctionCall* interface_name = NULL;
		ValaCCodeIdentifier* _tmp30_;
		ValaCCodeIdentifier* _tmp31_;
		ValaCCodeFunctionCall* _tmp32_;
		ValaCCodeFunctionCall* _tmp33_;
		ValaCCodeFunctionCall* _tmp34_;
		ValaCCodeCastExpression* _tmp35_;
		ValaCCodeFunctionCall* object_path = NULL;
		ValaCCodeIdentifier* _tmp36_;
		ValaCCodeIdentifier* _tmp37_;
		ValaCCodeFunctionCall* _tmp38_;
		ValaCCodeFunctionCall* _tmp39_;
		ValaCCodeFunctionCall* _tmp40_;
		ValaCCodeCastExpression* _tmp41_;
		ValaCCodeExpression* timeout = NULL;
		gint _tmp42_;
		ValaCCodeFunction* _tmp77_;
		ValaCCodeFunction* _tmp78_;
		ValaCCodeVariableDeclarator* _tmp79_;
		ValaCCodeVariableDeclarator* _tmp80_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp81_;
		ValaCCodeIdentifier* _tmp82_;
		ValaCCodeFunctionCall* _tmp83_;
		ValaCCodeFunctionCall* _tmp84_;
		ValaCCodeFunctionCall* _tmp85_;
		ValaCCodeFunctionCall* _tmp86_;
		ValaCCodeFunctionCall* _tmp87_;
		ValaCCodeFunctionCall* _tmp88_;
		const gchar* _tmp89_;
		ValaCCodeFunctionCall* _tmp98_;
		const gchar* _tmp99_;
		gchar* _tmp100_;
		gchar* _tmp101_;
		ValaCCodeConstant* _tmp102_;
		ValaCCodeConstant* _tmp103_;
		ValaCCodeFunction* _tmp104_;
		ValaCCodeFunction* _tmp105_;
		ValaCCodeIdentifier* _tmp106_;
		ValaCCodeIdentifier* _tmp107_;
		ValaCCodeFunctionCall* _tmp108_;
		ValaCCodeFunction* _tmp109_;
		ValaCCodeFunction* _tmp110_;
		ValaCCodeVariableDeclarator* _tmp111_;
		ValaCCodeVariableDeclarator* _tmp112_;
		ValaCCodeFunction* _tmp113_;
		ValaCCodeFunction* _tmp114_;
		ValaCCodeVariableDeclarator* _tmp115_;
		ValaCCodeVariableDeclarator* _tmp116_;
		ValaCCodeFunctionCall* builder_init = NULL;
		ValaCCodeIdentifier* _tmp117_;
		ValaCCodeIdentifier* _tmp118_;
		ValaCCodeFunctionCall* _tmp119_;
		ValaCCodeFunctionCall* _tmp120_;
		ValaCCodeFunctionCall* _tmp121_;
		ValaCCodeIdentifier* _tmp122_;
		ValaCCodeIdentifier* _tmp123_;
		ValaCCodeUnaryExpression* _tmp124_;
		ValaCCodeUnaryExpression* _tmp125_;
		ValaCCodeFunctionCall* _tmp126_;
		ValaCCodeIdentifier* _tmp127_;
		ValaCCodeIdentifier* _tmp128_;
		ValaCCodeFunction* _tmp129_;
		ValaCCodeFunction* _tmp130_;
		ValaCCodeFunctionCall* _tmp131_;
		gboolean _tmp132_;
		ValaCCodeExpression* cancellable = NULL;
		ValaCCodeConstant* _tmp141_;
		ValaCCodeFunctionCall* builder_end = NULL;
		ValaCCodeIdentifier* _tmp200_;
		ValaCCodeIdentifier* _tmp201_;
		ValaCCodeFunctionCall* _tmp202_;
		ValaCCodeFunctionCall* _tmp203_;
		ValaCCodeFunctionCall* _tmp204_;
		ValaCCodeIdentifier* _tmp205_;
		ValaCCodeIdentifier* _tmp206_;
		ValaCCodeUnaryExpression* _tmp207_;
		ValaCCodeUnaryExpression* _tmp208_;
		ValaCCodeFunction* _tmp209_;
		ValaCCodeFunction* _tmp210_;
		ValaCCodeIdentifier* _tmp211_;
		ValaCCodeIdentifier* _tmp212_;
		ValaCCodeFunctionCall* _tmp213_;
		ValaCCodeFunctionCall* set_body = NULL;
		ValaCCodeIdentifier* _tmp214_;
		ValaCCodeIdentifier* _tmp215_;
		ValaCCodeFunctionCall* _tmp216_;
		ValaCCodeFunctionCall* _tmp217_;
		ValaCCodeFunctionCall* _tmp218_;
		ValaCCodeIdentifier* _tmp219_;
		ValaCCodeIdentifier* _tmp220_;
		ValaCCodeFunctionCall* _tmp221_;
		ValaCCodeIdentifier* _tmp222_;
		ValaCCodeIdentifier* _tmp223_;
		ValaCCodeFunction* _tmp224_;
		ValaCCodeFunction* _tmp225_;
		ValaCCodeFunctionCall* _tmp226_;
		gboolean _tmp227_;
		ValaGDBusClientModuleCallType _tmp249_;
		ValaCCodeIdentifier* _tmp354_;
		ValaCCodeIdentifier* _tmp355_;
		ValaCCodeFunctionCall* _tmp356_;
		ValaCCodeFunctionCall* _tmp357_;
		ValaCCodeIdentifier* _tmp358_;
		ValaCCodeIdentifier* _tmp359_;
		ValaCCodeFunction* _tmp360_;
		ValaCCodeFunction* _tmp361_;
		ValaCCodeFunctionCall* _tmp362_;
		_tmp24_ = vala_ccode_identifier_new ("g_dbus_proxy_get_name");
		_tmp25_ = _tmp24_;
		_tmp26_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp25_);
		_tmp27_ = _tmp26_;
		_vala_ccode_node_unref0 (_tmp25_);
		destination = _tmp27_;
		_tmp28_ = destination;
		_tmp29_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp28_, (ValaCCodeExpression*) _tmp29_);
		_tmp30_ = vala_ccode_identifier_new ("g_dbus_proxy_get_interface_name");
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp31_);
		_tmp33_ = _tmp32_;
		_vala_ccode_node_unref0 (_tmp31_);
		interface_name = _tmp33_;
		_tmp34_ = interface_name;
		_tmp35_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp34_, (ValaCCodeExpression*) _tmp35_);
		_tmp36_ = vala_ccode_identifier_new ("g_dbus_proxy_get_object_path");
		_tmp37_ = _tmp36_;
		_tmp38_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp37_);
		_tmp39_ = _tmp38_;
		_vala_ccode_node_unref0 (_tmp37_);
		object_path = _tmp39_;
		_tmp40_ = object_path;
		_tmp41_ = gdbusproxy;
		vala_ccode_function_call_add_argument (_tmp40_, (ValaCCodeExpression*) _tmp41_);
		_tmp42_ = method_timeout;
		if (_tmp42_ <= 0) {
			ValaCCodeIdentifier* _tmp43_;
			ValaCCodeIdentifier* _tmp44_;
			ValaCCodeFunctionCall* _tmp45_;
			ValaCCodeExpression* _tmp46_;
			ValaCCodeCastExpression* _tmp47_;
			_tmp43_ = vala_ccode_identifier_new ("g_dbus_proxy_get_default_timeout");
			_tmp44_ = _tmp43_;
			_tmp45_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp44_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp45_;
			_vala_ccode_node_unref0 (_tmp44_);
			_tmp46_ = timeout;
			_tmp47_ = gdbusproxy;
			vala_ccode_function_call_add_argument (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, VALA_TYPE_CCODE_FUNCTION_CALL, ValaCCodeFunctionCall), (ValaCCodeExpression*) _tmp47_);
		} else {
			gint _tmp48_;
			gchar* _tmp49_;
			gchar* _tmp50_;
			ValaCCodeConstant* _tmp51_;
			_tmp48_ = method_timeout;
			_tmp49_ = g_strdup_printf ("%d", _tmp48_);
			_tmp50_ = _tmp49_;
			_tmp51_ = vala_ccode_constant_new (_tmp50_);
			_vala_ccode_node_unref0 (timeout);
			timeout = (ValaCCodeExpression*) _tmp51_;
			_g_free0 (_tmp50_);
		}
		{
			ValaList* _error_type_list = NULL;
			ValaMethod* _tmp52_;
			ValaList* _tmp53_;
			gint _error_type_size = 0;
			ValaList* _tmp54_;
			gint _tmp55_;
			gint _tmp56_;
			gint _error_type_index = 0;
			_tmp52_ = m;
			_tmp53_ = vala_code_node_get_error_types ((ValaCodeNode*) _tmp52_);
			_error_type_list = _tmp53_;
			_tmp54_ = _error_type_list;
			_tmp55_ = vala_collection_get_size ((ValaCollection*) _tmp54_);
			_tmp56_ = _tmp55_;
			_error_type_size = _tmp56_;
			_error_type_index = -1;
			while (TRUE) {
				gint _tmp57_;
				gint _tmp58_;
				gint _tmp59_;
				ValaDataType* error_type = NULL;
				ValaList* _tmp60_;
				gint _tmp61_;
				gpointer _tmp62_;
				ValaErrorType* errtype = NULL;
				ValaDataType* _tmp63_;
				ValaErrorType* _tmp64_;
				ValaErrorType* _tmp65_;
				ValaErrorDomain* _tmp66_;
				ValaErrorDomain* _tmp67_;
				_tmp57_ = _error_type_index;
				_error_type_index = _tmp57_ + 1;
				_tmp58_ = _error_type_index;
				_tmp59_ = _error_type_size;
				if (!(_tmp58_ < _tmp59_)) {
					break;
				}
				_tmp60_ = _error_type_list;
				_tmp61_ = _error_type_index;
				_tmp62_ = vala_list_get (_tmp60_, _tmp61_);
				error_type = (ValaDataType*) _tmp62_;
				_tmp63_ = error_type;
				_tmp64_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, VALA_TYPE_ERROR_TYPE, ValaErrorType));
				errtype = _tmp64_;
				_tmp65_ = errtype;
				_tmp66_ = vala_error_type_get_error_domain (_tmp65_);
				_tmp67_ = _tmp66_;
				if (_tmp67_ != NULL) {
					ValaCCodeFunction* _tmp68_;
					ValaCCodeFunction* _tmp69_;
					ValaErrorType* _tmp70_;
					ValaErrorDomain* _tmp71_;
					ValaErrorDomain* _tmp72_;
					gchar* _tmp73_;
					gchar* _tmp74_;
					ValaCCodeIdentifier* _tmp75_;
					ValaCCodeIdentifier* _tmp76_;
					_tmp68_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp69_ = _tmp68_;
					_tmp70_ = errtype;
					_tmp71_ = vala_error_type_get_error_domain (_tmp70_);
					_tmp72_ = _tmp71_;
					_tmp73_ = vala_get_ccode_upper_case_name ((ValaSymbol*) _tmp72_, NULL);
					_tmp74_ = _tmp73_;
					_tmp75_ = vala_ccode_identifier_new (_tmp74_);
					_tmp76_ = _tmp75_;
					vala_ccode_function_add_expression (_tmp69_, (ValaCCodeExpression*) _tmp76_);
					_vala_ccode_node_unref0 (_tmp76_);
					_g_free0 (_tmp74_);
				}
				_vala_code_node_unref0 (errtype);
				_vala_code_node_unref0 (error_type);
			}
			_vala_iterable_unref0 (_error_type_list);
		}
		_tmp77_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp78_ = _tmp77_;
		_tmp79_ = vala_ccode_variable_declarator_new ("*_message", NULL, NULL);
		_tmp80_ = _tmp79_;
		vala_ccode_function_add_declaration (_tmp78_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp80_, 0);
		_vala_ccode_node_unref0 (_tmp80_);
		_tmp81_ = vala_ccode_identifier_new ("g_dbus_message_new_method_call");
		_tmp82_ = _tmp81_;
		_tmp83_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp82_);
		_tmp84_ = _tmp83_;
		_vala_ccode_node_unref0 (_tmp82_);
		ccall = _tmp84_;
		_tmp85_ = ccall;
		_tmp86_ = destination;
		vala_ccode_function_call_add_argument (_tmp85_, (ValaCCodeExpression*) _tmp86_);
		_tmp87_ = ccall;
		_tmp88_ = object_path;
		vala_ccode_function_call_add_argument (_tmp87_, (ValaCCodeExpression*) _tmp88_);
		_tmp89_ = iface_name;
		if (_tmp89_ != NULL) {
			ValaCCodeFunctionCall* _tmp90_;
			const gchar* _tmp91_;
			gchar* _tmp92_;
			gchar* _tmp93_;
			ValaCCodeConstant* _tmp94_;
			ValaCCodeConstant* _tmp95_;
			_tmp90_ = ccall;
			_tmp91_ = iface_name;
			_tmp92_ = g_strdup_printf ("\"%s\"", _tmp91_);
			_tmp93_ = _tmp92_;
			_tmp94_ = vala_ccode_constant_new (_tmp93_);
			_tmp95_ = _tmp94_;
			vala_ccode_function_call_add_argument (_tmp90_, (ValaCCodeExpression*) _tmp95_);
			_vala_ccode_node_unref0 (_tmp95_);
			_g_free0 (_tmp93_);
		} else {
			ValaCCodeFunctionCall* _tmp96_;
			ValaCCodeFunctionCall* _tmp97_;
			_tmp96_ = ccall;
			_tmp97_ = interface_name;
			vala_ccode_function_call_add_argument (_tmp96_, (ValaCCodeExpression*) _tmp97_);
		}
		_tmp98_ = ccall;
		_tmp99_ = method_name;
		_tmp100_ = g_strdup_printf ("\"%s\"", _tmp99_);
		_tmp101_ = _tmp100_;
		_tmp102_ = vala_ccode_constant_new (_tmp101_);
		_tmp103_ = _tmp102_;
		vala_ccode_function_call_add_argument (_tmp98_, (ValaCCodeExpression*) _tmp103_);
		_vala_ccode_node_unref0 (_tmp103_);
		_g_free0 (_tmp101_);
		_tmp104_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp105_ = _tmp104_;
		_tmp106_ = vala_ccode_identifier_new ("_message");
		_tmp107_ = _tmp106_;
		_tmp108_ = ccall;
		vala_ccode_function_add_assignment (_tmp105_, (ValaCCodeExpression*) _tmp107_, (ValaCCodeExpression*) _tmp108_);
		_vala_ccode_node_unref0 (_tmp107_);
		_tmp109_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp110_ = _tmp109_;
		_tmp111_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
		_tmp112_ = _tmp111_;
		vala_ccode_function_add_declaration (_tmp110_, "GVariant", (ValaCCodeDeclarator*) _tmp112_, 0);
		_vala_ccode_node_unref0 (_tmp112_);
		_tmp113_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp114_ = _tmp113_;
		_tmp115_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
		_tmp116_ = _tmp115_;
		vala_ccode_function_add_declaration (_tmp114_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp116_, 0);
		_vala_ccode_node_unref0 (_tmp116_);
		_tmp117_ = vala_ccode_identifier_new ("g_variant_builder_init");
		_tmp118_ = _tmp117_;
		_tmp119_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp118_);
		_tmp120_ = _tmp119_;
		_vala_ccode_node_unref0 (_tmp118_);
		builder_init = _tmp120_;
		_tmp121_ = builder_init;
		_tmp122_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp123_ = _tmp122_;
		_tmp124_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp123_);
		_tmp125_ = _tmp124_;
		vala_ccode_function_call_add_argument (_tmp121_, (ValaCCodeExpression*) _tmp125_);
		_vala_ccode_node_unref0 (_tmp125_);
		_vala_ccode_node_unref0 (_tmp123_);
		_tmp126_ = builder_init;
		_tmp127_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
		_tmp128_ = _tmp127_;
		vala_ccode_function_call_add_argument (_tmp126_, (ValaCCodeExpression*) _tmp128_);
		_vala_ccode_node_unref0 (_tmp128_);
		_tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp130_ = _tmp129_;
		_tmp131_ = builder_init;
		vala_ccode_function_add_expression (_tmp130_, (ValaCCodeExpression*) _tmp131_);
		_tmp132_ = uses_fd;
		if (_tmp132_) {
			ValaCCodeFunction* _tmp133_;
			ValaCCodeFunction* _tmp134_;
			ValaCCodeIdentifier* _tmp135_;
			ValaCCodeIdentifier* _tmp136_;
			ValaCCodeIdentifier* _tmp137_;
			ValaCCodeIdentifier* _tmp138_;
			ValaCCodeFunctionCall* _tmp139_;
			ValaCCodeFunctionCall* _tmp140_;
			_tmp133_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp134_ = _tmp133_;
			_tmp135_ = vala_ccode_identifier_new ("_fd_list");
			_tmp136_ = _tmp135_;
			_tmp137_ = vala_ccode_identifier_new ("g_unix_fd_list_new");
			_tmp138_ = _tmp137_;
			_tmp139_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp138_);
			_tmp140_ = _tmp139_;
			vala_ccode_function_add_assignment (_tmp134_, (ValaCCodeExpression*) _tmp136_, (ValaCCodeExpression*) _tmp140_);
			_vala_ccode_node_unref0 (_tmp140_);
			_vala_ccode_node_unref0 (_tmp138_);
			_vala_ccode_node_unref0 (_tmp136_);
		}
		_tmp141_ = vala_ccode_constant_new ("NULL");
		cancellable = (ValaCCodeExpression*) _tmp141_;
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp142_;
			ValaList* _tmp143_;
			gint _param_size = 0;
			ValaList* _tmp144_;
			gint _tmp145_;
			gint _tmp146_;
			gint _param_index = 0;
			_tmp142_ = m;
			_tmp143_ = vala_callable_get_parameters ((ValaCallable*) _tmp142_);
			_param_list = _tmp143_;
			_tmp144_ = _param_list;
			_tmp145_ = vala_collection_get_size ((ValaCollection*) _tmp144_);
			_tmp146_ = _tmp145_;
			_param_size = _tmp146_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp147_;
				gint _tmp148_;
				gint _tmp149_;
				ValaParameter* param = NULL;
				ValaList* _tmp150_;
				gint _tmp151_;
				gpointer _tmp152_;
				ValaParameter* _tmp153_;
				ValaParameterDirection _tmp154_;
				ValaParameterDirection _tmp155_;
				_tmp147_ = _param_index;
				_param_index = _tmp147_ + 1;
				_tmp148_ = _param_index;
				_tmp149_ = _param_size;
				if (!(_tmp148_ < _tmp149_)) {
					break;
				}
				_tmp150_ = _param_list;
				_tmp151_ = _param_index;
				_tmp152_ = vala_list_get (_tmp150_, _tmp151_);
				param = (ValaParameter*) _tmp152_;
				_tmp153_ = param;
				_tmp154_ = vala_parameter_get_direction (_tmp153_);
				_tmp155_ = _tmp154_;
				if (_tmp155_ == VALA_PARAMETER_DIRECTION_IN) {
					ValaCCodeExpression* expr = NULL;
					ValaParameter* _tmp156_;
					const gchar* _tmp157_;
					const gchar* _tmp158_;
					gchar* _tmp159_;
					gchar* _tmp160_;
					ValaCCodeIdentifier* _tmp161_;
					ValaCCodeExpression* _tmp162_;
					ValaParameter* _tmp163_;
					ValaDataType* _tmp164_;
					ValaDataType* _tmp165_;
					gboolean _tmp166_;
					gboolean _tmp169_ = FALSE;
					ValaParameter* _tmp170_;
					ValaDataType* _tmp171_;
					ValaDataType* _tmp172_;
					gboolean _tmp182_ = FALSE;
					ValaParameter* _tmp183_;
					ValaDataType* _tmp184_;
					ValaDataType* _tmp185_;
					ValaParameter* _tmp193_;
					ValaDataType* _tmp194_;
					ValaDataType* _tmp195_;
					ValaCCodeIdentifier* _tmp196_;
					ValaCCodeIdentifier* _tmp197_;
					ValaCCodeExpression* _tmp198_;
					ValaParameter* _tmp199_;
					_tmp156_ = param;
					_tmp157_ = vala_symbol_get_name ((ValaSymbol*) _tmp156_);
					_tmp158_ = _tmp157_;
					_tmp159_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp158_);
					_tmp160_ = _tmp159_;
					_tmp161_ = vala_ccode_identifier_new (_tmp160_);
					_tmp162_ = (ValaCCodeExpression*) _tmp161_;
					_g_free0 (_tmp160_);
					expr = _tmp162_;
					_tmp163_ = param;
					_tmp164_ = vala_variable_get_variable_type ((ValaVariable*) _tmp163_);
					_tmp165_ = _tmp164_;
					_tmp166_ = vala_data_type_is_real_struct_type (_tmp165_);
					if (_tmp166_) {
						ValaCCodeExpression* _tmp167_;
						ValaCCodeUnaryExpression* _tmp168_;
						_tmp167_ = expr;
						_tmp168_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, _tmp167_);
						_vala_ccode_node_unref0 (expr);
						expr = (ValaCCodeExpression*) _tmp168_;
					}
					_tmp170_ = param;
					_tmp171_ = vala_variable_get_variable_type ((ValaVariable*) _tmp170_);
					_tmp172_ = _tmp171_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp172_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp173_;
						ValaDataType* _tmp174_;
						ValaDataType* _tmp175_;
						ValaTypeSymbol* _tmp176_;
						ValaTypeSymbol* _tmp177_;
						gchar* _tmp178_;
						gchar* _tmp179_;
						_tmp173_ = param;
						_tmp174_ = vala_variable_get_variable_type ((ValaVariable*) _tmp173_);
						_tmp175_ = _tmp174_;
						_tmp176_ = vala_data_type_get_data_type (_tmp175_);
						_tmp177_ = _tmp176_;
						_tmp178_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp177_);
						_tmp179_ = _tmp178_;
						_tmp169_ = g_strcmp0 (_tmp179_, "GLib.Cancellable") == 0;
						_g_free0 (_tmp179_);
					} else {
						_tmp169_ = FALSE;
					}
					if (_tmp169_) {
						ValaCCodeExpression* _tmp180_;
						ValaCCodeExpression* _tmp181_;
						_tmp180_ = expr;
						_tmp181_ = _vala_ccode_node_ref0 (_tmp180_);
						_vala_ccode_node_unref0 (cancellable);
						cancellable = _tmp181_;
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp183_ = param;
					_tmp184_ = vala_variable_get_variable_type ((ValaVariable*) _tmp183_);
					_tmp185_ = _tmp184_;
					if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp185_, VALA_TYPE_OBJECT_TYPE)) {
						ValaParameter* _tmp186_;
						ValaDataType* _tmp187_;
						ValaDataType* _tmp188_;
						ValaTypeSymbol* _tmp189_;
						ValaTypeSymbol* _tmp190_;
						gchar* _tmp191_;
						gchar* _tmp192_;
						_tmp186_ = param;
						_tmp187_ = vala_variable_get_variable_type ((ValaVariable*) _tmp186_);
						_tmp188_ = _tmp187_;
						_tmp189_ = vala_data_type_get_data_type (_tmp188_);
						_tmp190_ = _tmp189_;
						_tmp191_ = vala_symbol_get_full_name ((ValaSymbol*) _tmp190_);
						_tmp192_ = _tmp191_;
						_tmp182_ = g_strcmp0 (_tmp192_, "GLib.BusName") == 0;
						_g_free0 (_tmp192_);
					} else {
						_tmp182_ = FALSE;
					}
					if (_tmp182_) {
						_vala_ccode_node_unref0 (expr);
						_vala_code_node_unref0 (param);
						continue;
					}
					_tmp193_ = param;
					_tmp194_ = vala_variable_get_variable_type ((ValaVariable*) _tmp193_);
					_tmp195_ = _tmp194_;
					_tmp196_ = vala_ccode_identifier_new ("_arguments_builder");
					_tmp197_ = _tmp196_;
					_tmp198_ = expr;
					_tmp199_ = param;
					vala_gd_bus_module_send_dbus_value ((ValaGDBusModule*) self, _tmp195_, (ValaCCodeExpression*) _tmp197_, _tmp198_, (ValaSymbol*) _tmp199_);
					_vala_ccode_node_unref0 (_tmp197_);
					_vala_ccode_node_unref0 (expr);
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp200_ = vala_ccode_identifier_new ("g_variant_builder_end");
		_tmp201_ = _tmp200_;
		_tmp202_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp201_);
		_tmp203_ = _tmp202_;
		_vala_ccode_node_unref0 (_tmp201_);
		builder_end = _tmp203_;
		_tmp204_ = builder_end;
		_tmp205_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp206_ = _tmp205_;
		_tmp207_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp206_);
		_tmp208_ = _tmp207_;
		vala_ccode_function_call_add_argument (_tmp204_, (ValaCCodeExpression*) _tmp208_);
		_vala_ccode_node_unref0 (_tmp208_);
		_vala_ccode_node_unref0 (_tmp206_);
		_tmp209_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp210_ = _tmp209_;
		_tmp211_ = vala_ccode_identifier_new ("_arguments");
		_tmp212_ = _tmp211_;
		_tmp213_ = builder_end;
		vala_ccode_function_add_assignment (_tmp210_, (ValaCCodeExpression*) _tmp212_, (ValaCCodeExpression*) _tmp213_);
		_vala_ccode_node_unref0 (_tmp212_);
		_tmp214_ = vala_ccode_identifier_new ("g_dbus_message_set_body");
		_tmp215_ = _tmp214_;
		_tmp216_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp215_);
		_tmp217_ = _tmp216_;
		_vala_ccode_node_unref0 (_tmp215_);
		set_body = _tmp217_;
		_tmp218_ = set_body;
		_tmp219_ = vala_ccode_identifier_new ("_message");
		_tmp220_ = _tmp219_;
		vala_ccode_function_call_add_argument (_tmp218_, (ValaCCodeExpression*) _tmp220_);
		_vala_ccode_node_unref0 (_tmp220_);
		_tmp221_ = set_body;
		_tmp222_ = vala_ccode_identifier_new ("_arguments");
		_tmp223_ = _tmp222_;
		vala_ccode_function_call_add_argument (_tmp221_, (ValaCCodeExpression*) _tmp223_);
		_vala_ccode_node_unref0 (_tmp223_);
		_tmp224_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp225_ = _tmp224_;
		_tmp226_ = set_body;
		vala_ccode_function_add_expression (_tmp225_, (ValaCCodeExpression*) _tmp226_);
		_tmp227_ = uses_fd;
		if (_tmp227_) {
			ValaCCodeIdentifier* _tmp228_;
			ValaCCodeIdentifier* _tmp229_;
			ValaCCodeFunctionCall* _tmp230_;
			ValaCCodeFunctionCall* _tmp231_;
			ValaCCodeIdentifier* _tmp232_;
			ValaCCodeIdentifier* _tmp233_;
			ValaCCodeFunctionCall* _tmp234_;
			ValaCCodeIdentifier* _tmp235_;
			ValaCCodeIdentifier* _tmp236_;
			ValaCCodeFunction* _tmp237_;
			ValaCCodeFunction* _tmp238_;
			ValaCCodeFunctionCall* _tmp239_;
			ValaCCodeIdentifier* _tmp240_;
			ValaCCodeIdentifier* _tmp241_;
			ValaCCodeFunctionCall* _tmp242_;
			ValaCCodeFunctionCall* _tmp243_;
			ValaCCodeIdentifier* _tmp244_;
			ValaCCodeIdentifier* _tmp245_;
			ValaCCodeFunction* _tmp246_;
			ValaCCodeFunction* _tmp247_;
			ValaCCodeFunctionCall* _tmp248_;
			_tmp228_ = vala_ccode_identifier_new ("g_dbus_message_set_unix_fd_list");
			_tmp229_ = _tmp228_;
			_tmp230_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp229_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp230_;
			_vala_ccode_node_unref0 (_tmp229_);
			_tmp231_ = ccall;
			_tmp232_ = vala_ccode_identifier_new ("_message");
			_tmp233_ = _tmp232_;
			vala_ccode_function_call_add_argument (_tmp231_, (ValaCCodeExpression*) _tmp233_);
			_vala_ccode_node_unref0 (_tmp233_);
			_tmp234_ = ccall;
			_tmp235_ = vala_ccode_identifier_new ("_fd_list");
			_tmp236_ = _tmp235_;
			vala_ccode_function_call_add_argument (_tmp234_, (ValaCCodeExpression*) _tmp236_);
			_vala_ccode_node_unref0 (_tmp236_);
			_tmp237_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp238_ = _tmp237_;
			_tmp239_ = ccall;
			vala_ccode_function_add_expression (_tmp238_, (ValaCCodeExpression*) _tmp239_);
			_tmp240_ = vala_ccode_identifier_new ("g_object_unref");
			_tmp241_ = _tmp240_;
			_tmp242_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp241_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp242_;
			_vala_ccode_node_unref0 (_tmp241_);
			_tmp243_ = ccall;
			_tmp244_ = vala_ccode_identifier_new ("_fd_list");
			_tmp245_ = _tmp244_;
			vala_ccode_function_call_add_argument (_tmp243_, (ValaCCodeExpression*) _tmp245_);
			_vala_ccode_node_unref0 (_tmp245_);
			_tmp246_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp247_ = _tmp246_;
			_tmp248_ = ccall;
			vala_ccode_function_add_expression (_tmp247_, (ValaCCodeExpression*) _tmp248_);
		}
		_tmp249_ = call_type;
		if (_tmp249_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
			ValaCCodeIdentifier* _tmp250_;
			ValaCCodeIdentifier* _tmp251_;
			ValaCCodeFunctionCall* _tmp252_;
			ValaCCodeFunctionCall* _tmp253_;
			ValaCCodeFunctionCall* _tmp254_;
			ValaCCodeFunctionCall* _tmp255_;
			ValaCCodeIdentifier* _tmp256_;
			ValaCCodeIdentifier* _tmp257_;
			ValaCCodeFunctionCall* _tmp258_;
			ValaCCodeConstant* _tmp259_;
			ValaCCodeConstant* _tmp260_;
			ValaCCodeFunctionCall* _tmp261_;
			ValaCCodeExpression* _tmp262_;
			ValaCCodeFunctionCall* _tmp263_;
			ValaCCodeConstant* _tmp264_;
			ValaCCodeConstant* _tmp265_;
			ValaCCodeFunctionCall* _tmp266_;
			ValaCCodeExpression* _tmp267_;
			ValaCCodeFunctionCall* _tmp268_;
			ValaCCodeExpression* _tmp269_;
			ValaCCodeFunction* _tmp270_;
			ValaCCodeFunction* _tmp271_;
			ValaCCodeIdentifier* _tmp272_;
			ValaCCodeIdentifier* _tmp273_;
			ValaCCodeFunctionCall* _tmp274_;
			_tmp250_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_sync");
			_tmp251_ = _tmp250_;
			_tmp252_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp251_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp252_;
			_vala_ccode_node_unref0 (_tmp251_);
			_tmp253_ = ccall;
			_tmp254_ = connection;
			vala_ccode_function_call_add_argument (_tmp253_, (ValaCCodeExpression*) _tmp254_);
			_tmp255_ = ccall;
			_tmp256_ = vala_ccode_identifier_new ("_message");
			_tmp257_ = _tmp256_;
			vala_ccode_function_call_add_argument (_tmp255_, (ValaCCodeExpression*) _tmp257_);
			_vala_ccode_node_unref0 (_tmp257_);
			_tmp258_ = ccall;
			_tmp259_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
			_tmp260_ = _tmp259_;
			vala_ccode_function_call_add_argument (_tmp258_, (ValaCCodeExpression*) _tmp260_);
			_vala_ccode_node_unref0 (_tmp260_);
			_tmp261_ = ccall;
			_tmp262_ = timeout;
			vala_ccode_function_call_add_argument (_tmp261_, _tmp262_);
			_tmp263_ = ccall;
			_tmp264_ = vala_ccode_constant_new ("NULL");
			_tmp265_ = _tmp264_;
			vala_ccode_function_call_add_argument (_tmp263_, (ValaCCodeExpression*) _tmp265_);
			_vala_ccode_node_unref0 (_tmp265_);
			_tmp266_ = ccall;
			_tmp267_ = cancellable;
			vala_ccode_function_call_add_argument (_tmp266_, _tmp267_);
			_tmp268_ = ccall;
			_tmp269_ = error_argument;
			vala_ccode_function_call_add_argument (_tmp268_, _tmp269_);
			_tmp270_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp271_ = _tmp270_;
			_tmp272_ = vala_ccode_identifier_new ("_reply_message");
			_tmp273_ = _tmp272_;
			_tmp274_ = ccall;
			vala_ccode_function_add_assignment (_tmp271_, (ValaCCodeExpression*) _tmp273_, (ValaCCodeExpression*) _tmp274_);
			_vala_ccode_node_unref0 (_tmp273_);
		} else {
			ValaGDBusClientModuleCallType _tmp275_;
			_tmp275_ = call_type;
			if (_tmp275_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY) {
				ValaCCodeFunctionCall* set_flags = NULL;
				ValaCCodeIdentifier* _tmp276_;
				ValaCCodeIdentifier* _tmp277_;
				ValaCCodeFunctionCall* _tmp278_;
				ValaCCodeFunctionCall* _tmp279_;
				ValaCCodeFunctionCall* _tmp280_;
				ValaCCodeIdentifier* _tmp281_;
				ValaCCodeIdentifier* _tmp282_;
				ValaCCodeFunctionCall* _tmp283_;
				ValaCCodeConstant* _tmp284_;
				ValaCCodeConstant* _tmp285_;
				ValaCCodeFunction* _tmp286_;
				ValaCCodeFunction* _tmp287_;
				ValaCCodeFunctionCall* _tmp288_;
				ValaCCodeIdentifier* _tmp289_;
				ValaCCodeIdentifier* _tmp290_;
				ValaCCodeFunctionCall* _tmp291_;
				ValaCCodeFunctionCall* _tmp292_;
				ValaCCodeFunctionCall* _tmp293_;
				ValaCCodeFunctionCall* _tmp294_;
				ValaCCodeIdentifier* _tmp295_;
				ValaCCodeIdentifier* _tmp296_;
				ValaCCodeFunctionCall* _tmp297_;
				ValaCCodeConstant* _tmp298_;
				ValaCCodeConstant* _tmp299_;
				ValaCCodeFunctionCall* _tmp300_;
				ValaCCodeConstant* _tmp301_;
				ValaCCodeConstant* _tmp302_;
				ValaCCodeFunctionCall* _tmp303_;
				ValaCCodeExpression* _tmp304_;
				ValaCCodeFunction* _tmp305_;
				ValaCCodeFunction* _tmp306_;
				ValaCCodeFunctionCall* _tmp307_;
				_tmp276_ = vala_ccode_identifier_new ("g_dbus_message_set_flags");
				_tmp277_ = _tmp276_;
				_tmp278_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp277_);
				_tmp279_ = _tmp278_;
				_vala_ccode_node_unref0 (_tmp277_);
				set_flags = _tmp279_;
				_tmp280_ = set_flags;
				_tmp281_ = vala_ccode_identifier_new ("_message");
				_tmp282_ = _tmp281_;
				vala_ccode_function_call_add_argument (_tmp280_, (ValaCCodeExpression*) _tmp282_);
				_vala_ccode_node_unref0 (_tmp282_);
				_tmp283_ = set_flags;
				_tmp284_ = vala_ccode_constant_new ("G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED");
				_tmp285_ = _tmp284_;
				vala_ccode_function_call_add_argument (_tmp283_, (ValaCCodeExpression*) _tmp285_);
				_vala_ccode_node_unref0 (_tmp285_);
				_tmp286_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp287_ = _tmp286_;
				_tmp288_ = set_flags;
				vala_ccode_function_add_expression (_tmp287_, (ValaCCodeExpression*) _tmp288_);
				_tmp289_ = vala_ccode_identifier_new ("g_dbus_connection_send_message");
				_tmp290_ = _tmp289_;
				_tmp291_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp290_);
				_vala_ccode_node_unref0 (ccall);
				ccall = _tmp291_;
				_vala_ccode_node_unref0 (_tmp290_);
				_tmp292_ = ccall;
				_tmp293_ = connection;
				vala_ccode_function_call_add_argument (_tmp292_, (ValaCCodeExpression*) _tmp293_);
				_tmp294_ = ccall;
				_tmp295_ = vala_ccode_identifier_new ("_message");
				_tmp296_ = _tmp295_;
				vala_ccode_function_call_add_argument (_tmp294_, (ValaCCodeExpression*) _tmp296_);
				_vala_ccode_node_unref0 (_tmp296_);
				_tmp297_ = ccall;
				_tmp298_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
				_tmp299_ = _tmp298_;
				vala_ccode_function_call_add_argument (_tmp297_, (ValaCCodeExpression*) _tmp299_);
				_vala_ccode_node_unref0 (_tmp299_);
				_tmp300_ = ccall;
				_tmp301_ = vala_ccode_constant_new ("NULL");
				_tmp302_ = _tmp301_;
				vala_ccode_function_call_add_argument (_tmp300_, (ValaCCodeExpression*) _tmp302_);
				_vala_ccode_node_unref0 (_tmp302_);
				_tmp303_ = ccall;
				_tmp304_ = error_argument;
				vala_ccode_function_call_add_argument (_tmp303_, _tmp304_);
				_tmp305_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
				_tmp306_ = _tmp305_;
				_tmp307_ = ccall;
				vala_ccode_function_add_expression (_tmp306_, (ValaCCodeExpression*) _tmp307_);
				_vala_ccode_node_unref0 (set_flags);
			} else {
				ValaGDBusClientModuleCallType _tmp308_;
				_tmp308_ = call_type;
				if (_tmp308_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC) {
					ValaCCodeIdentifier* _tmp309_;
					ValaCCodeIdentifier* _tmp310_;
					ValaCCodeFunctionCall* _tmp311_;
					ValaCCodeFunctionCall* _tmp312_;
					ValaCCodeFunctionCall* _tmp313_;
					ValaCCodeFunctionCall* _tmp314_;
					ValaCCodeIdentifier* _tmp315_;
					ValaCCodeIdentifier* _tmp316_;
					ValaCCodeFunctionCall* _tmp317_;
					ValaCCodeConstant* _tmp318_;
					ValaCCodeConstant* _tmp319_;
					ValaCCodeFunctionCall* _tmp320_;
					ValaCCodeExpression* _tmp321_;
					ValaCCodeFunctionCall* _tmp322_;
					ValaCCodeConstant* _tmp323_;
					ValaCCodeConstant* _tmp324_;
					ValaCCodeFunctionCall* _tmp325_;
					ValaCCodeExpression* _tmp326_;
					ValaCCodeFunctionCall* res_wrapper = NULL;
					ValaCCodeFunctionCall* _tmp327_;
					gchar* _tmp328_;
					gchar* _tmp329_;
					ValaCCodeIdentifier* _tmp330_;
					ValaCCodeIdentifier* _tmp331_;
					ValaCCodeIdentifier* _tmp332_;
					ValaCCodeIdentifier* _tmp333_;
					ValaCCodeFunctionCall* _tmp334_;
					ValaCCodeFunctionCall* _tmp335_;
					ValaCCodeIdentifier* _tmp336_;
					ValaCCodeIdentifier* _tmp337_;
					ValaCCodeCastExpression* _tmp338_;
					ValaCCodeCastExpression* _tmp339_;
					ValaCCodeFunctionCall* _tmp340_;
					ValaCCodeConstant* _tmp341_;
					ValaCCodeConstant* _tmp342_;
					ValaCCodeFunctionCall* _tmp343_;
					ValaCCodeIdentifier* _tmp344_;
					ValaCCodeIdentifier* _tmp345_;
					ValaCCodeFunctionCall* _tmp346_;
					ValaCCodeIdentifier* _tmp347_;
					ValaCCodeIdentifier* _tmp348_;
					ValaCCodeFunctionCall* _tmp349_;
					ValaCCodeFunctionCall* _tmp350_;
					ValaCCodeFunction* _tmp351_;
					ValaCCodeFunction* _tmp352_;
					ValaCCodeFunctionCall* _tmp353_;
					_tmp309_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply");
					_tmp310_ = _tmp309_;
					_tmp311_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp310_);
					_vala_ccode_node_unref0 (ccall);
					ccall = _tmp311_;
					_vala_ccode_node_unref0 (_tmp310_);
					_tmp312_ = ccall;
					_tmp313_ = connection;
					vala_ccode_function_call_add_argument (_tmp312_, (ValaCCodeExpression*) _tmp313_);
					_tmp314_ = ccall;
					_tmp315_ = vala_ccode_identifier_new ("_message");
					_tmp316_ = _tmp315_;
					vala_ccode_function_call_add_argument (_tmp314_, (ValaCCodeExpression*) _tmp316_);
					_vala_ccode_node_unref0 (_tmp316_);
					_tmp317_ = ccall;
					_tmp318_ = vala_ccode_constant_new ("G_DBUS_SEND_MESSAGE_FLAGS_NONE");
					_tmp319_ = _tmp318_;
					vala_ccode_function_call_add_argument (_tmp317_, (ValaCCodeExpression*) _tmp319_);
					_vala_ccode_node_unref0 (_tmp319_);
					_tmp320_ = ccall;
					_tmp321_ = timeout;
					vala_ccode_function_call_add_argument (_tmp320_, _tmp321_);
					_tmp322_ = ccall;
					_tmp323_ = vala_ccode_constant_new ("NULL");
					_tmp324_ = _tmp323_;
					vala_ccode_function_call_add_argument (_tmp322_, (ValaCCodeExpression*) _tmp324_);
					_vala_ccode_node_unref0 (_tmp324_);
					_tmp325_ = ccall;
					_tmp326_ = cancellable;
					vala_ccode_function_call_add_argument (_tmp325_, _tmp326_);
					res_wrapper = NULL;
					_tmp327_ = ccall;
					_tmp328_ = vala_gasync_module_generate_async_callback_wrapper ((ValaGAsyncModule*) self);
					_tmp329_ = _tmp328_;
					_tmp330_ = vala_ccode_identifier_new (_tmp329_);
					_tmp331_ = _tmp330_;
					vala_ccode_function_call_add_argument (_tmp327_, (ValaCCodeExpression*) _tmp331_);
					_vala_ccode_node_unref0 (_tmp331_);
					_g_free0 (_tmp329_);
					_tmp332_ = vala_ccode_identifier_new ("g_task_new");
					_tmp333_ = _tmp332_;
					_tmp334_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp333_);
					_vala_ccode_node_unref0 (res_wrapper);
					res_wrapper = _tmp334_;
					_vala_ccode_node_unref0 (_tmp333_);
					_tmp335_ = res_wrapper;
					_tmp336_ = vala_ccode_identifier_new ("self");
					_tmp337_ = _tmp336_;
					_tmp338_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp337_, "GObject *");
					_tmp339_ = _tmp338_;
					vala_ccode_function_call_add_argument (_tmp335_, (ValaCCodeExpression*) _tmp339_);
					_vala_ccode_node_unref0 (_tmp339_);
					_vala_ccode_node_unref0 (_tmp337_);
					_tmp340_ = res_wrapper;
					_tmp341_ = vala_ccode_constant_new ("NULL");
					_tmp342_ = _tmp341_;
					vala_ccode_function_call_add_argument (_tmp340_, (ValaCCodeExpression*) _tmp342_);
					_vala_ccode_node_unref0 (_tmp342_);
					_tmp343_ = res_wrapper;
					_tmp344_ = vala_ccode_identifier_new ("_callback_");
					_tmp345_ = _tmp344_;
					vala_ccode_function_call_add_argument (_tmp343_, (ValaCCodeExpression*) _tmp345_);
					_vala_ccode_node_unref0 (_tmp345_);
					_tmp346_ = res_wrapper;
					_tmp347_ = vala_ccode_identifier_new ("_user_data_");
					_tmp348_ = _tmp347_;
					vala_ccode_function_call_add_argument (_tmp346_, (ValaCCodeExpression*) _tmp348_);
					_vala_ccode_node_unref0 (_tmp348_);
					_tmp349_ = ccall;
					_tmp350_ = res_wrapper;
					vala_ccode_function_call_add_argument (_tmp349_, (ValaCCodeExpression*) _tmp350_);
					_tmp351_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp352_ = _tmp351_;
					_tmp353_ = ccall;
					vala_ccode_function_add_expression (_tmp352_, (ValaCCodeExpression*) _tmp353_);
					_vala_ccode_node_unref0 (res_wrapper);
				}
			}
		}
		_tmp354_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp355_ = _tmp354_;
		_tmp356_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp355_);
		_vala_ccode_node_unref0 (ccall);
		ccall = _tmp356_;
		_vala_ccode_node_unref0 (_tmp355_);
		_tmp357_ = ccall;
		_tmp358_ = vala_ccode_identifier_new ("_message");
		_tmp359_ = _tmp358_;
		vala_ccode_function_call_add_argument (_tmp357_, (ValaCCodeExpression*) _tmp359_);
		_vala_ccode_node_unref0 (_tmp359_);
		_tmp360_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp361_ = _tmp360_;
		_tmp362_ = ccall;
		vala_ccode_function_add_expression (_tmp361_, (ValaCCodeExpression*) _tmp362_);
		_vala_ccode_node_unref0 (set_body);
		_vala_ccode_node_unref0 (builder_end);
		_vala_ccode_node_unref0 (cancellable);
		_vala_ccode_node_unref0 (builder_init);
		_vala_ccode_node_unref0 (ccall);
		_vala_ccode_node_unref0 (timeout);
		_vala_ccode_node_unref0 (object_path);
		_vala_ccode_node_unref0 (interface_name);
		_vala_ccode_node_unref0 (destination);
	} else {
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp363_;
		ValaCCodeIdentifier* _tmp364_;
		ValaCCodeFunctionCall* _tmp365_;
		ValaCCodeFunctionCall* _tmp366_;
		ValaCCodeFunctionCall* _tmp367_;
		ValaCCodeFunctionCall* _tmp368_;
		ValaCCodeFunction* _tmp369_;
		ValaCCodeFunction* _tmp370_;
		ValaCCodeVariableDeclarator* _tmp371_;
		ValaCCodeVariableDeclarator* _tmp372_;
		ValaCCodeFunctionCall* inner_res = NULL;
		ValaCCodeIdentifier* _tmp373_;
		ValaCCodeIdentifier* _tmp374_;
		ValaCCodeFunctionCall* _tmp375_;
		ValaCCodeFunctionCall* _tmp376_;
		ValaCCodeFunctionCall* _tmp377_;
		ValaCCodeIdentifier* _tmp378_;
		ValaCCodeIdentifier* _tmp379_;
		ValaCCodeCastExpression* _tmp380_;
		ValaCCodeCastExpression* _tmp381_;
		ValaCCodeFunctionCall* _tmp382_;
		ValaCCodeConstant* _tmp383_;
		ValaCCodeConstant* _tmp384_;
		ValaCCodeFunction* _tmp385_;
		ValaCCodeFunction* _tmp386_;
		ValaCCodeIdentifier* _tmp387_;
		ValaCCodeIdentifier* _tmp388_;
		ValaCCodeFunctionCall* _tmp389_;
		ValaCCodeFunctionCall* _tmp390_;
		ValaCCodeIdentifier* _tmp391_;
		ValaCCodeIdentifier* _tmp392_;
		ValaCCodeFunctionCall* _tmp393_;
		ValaCCodeExpression* _tmp394_;
		ValaCCodeFunction* _tmp395_;
		ValaCCodeFunction* _tmp396_;
		ValaCCodeIdentifier* _tmp397_;
		ValaCCodeIdentifier* _tmp398_;
		ValaCCodeFunctionCall* _tmp399_;
		ValaCCodeFunctionCall* unref_inner_res = NULL;
		ValaCCodeIdentifier* _tmp400_;
		ValaCCodeIdentifier* _tmp401_;
		ValaCCodeFunctionCall* _tmp402_;
		ValaCCodeFunctionCall* _tmp403_;
		ValaCCodeFunctionCall* _tmp404_;
		ValaCCodeIdentifier* _tmp405_;
		ValaCCodeIdentifier* _tmp406_;
		ValaCCodeFunction* _tmp407_;
		ValaCCodeFunction* _tmp408_;
		ValaCCodeFunctionCall* _tmp409_;
		_tmp363_ = vala_ccode_identifier_new ("g_dbus_connection_send_message_with_reply_finish");
		_tmp364_ = _tmp363_;
		_tmp365_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp364_);
		_tmp366_ = _tmp365_;
		_vala_ccode_node_unref0 (_tmp364_);
		ccall = _tmp366_;
		_tmp367_ = ccall;
		_tmp368_ = connection;
		vala_ccode_function_call_add_argument (_tmp367_, (ValaCCodeExpression*) _tmp368_);
		_tmp369_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp370_ = _tmp369_;
		_tmp371_ = vala_ccode_variable_declarator_new ("*_inner_res", NULL, NULL);
		_tmp372_ = _tmp371_;
		vala_ccode_function_add_declaration (_tmp370_, "GAsyncResult", (ValaCCodeDeclarator*) _tmp372_, 0);
		_vala_ccode_node_unref0 (_tmp372_);
		_tmp373_ = vala_ccode_identifier_new ("g_task_propagate_pointer");
		_tmp374_ = _tmp373_;
		_tmp375_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp374_);
		_tmp376_ = _tmp375_;
		_vala_ccode_node_unref0 (_tmp374_);
		inner_res = _tmp376_;
		_tmp377_ = inner_res;
		_tmp378_ = vala_ccode_identifier_new ("_res_");
		_tmp379_ = _tmp378_;
		_tmp380_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp379_, "GTask *");
		_tmp381_ = _tmp380_;
		vala_ccode_function_call_add_argument (_tmp377_, (ValaCCodeExpression*) _tmp381_);
		_vala_ccode_node_unref0 (_tmp381_);
		_vala_ccode_node_unref0 (_tmp379_);
		_tmp382_ = inner_res;
		_tmp383_ = vala_ccode_constant_new ("NULL");
		_tmp384_ = _tmp383_;
		vala_ccode_function_call_add_argument (_tmp382_, (ValaCCodeExpression*) _tmp384_);
		_vala_ccode_node_unref0 (_tmp384_);
		_tmp385_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp386_ = _tmp385_;
		_tmp387_ = vala_ccode_identifier_new ("_inner_res");
		_tmp388_ = _tmp387_;
		_tmp389_ = inner_res;
		vala_ccode_function_add_assignment (_tmp386_, (ValaCCodeExpression*) _tmp388_, (ValaCCodeExpression*) _tmp389_);
		_vala_ccode_node_unref0 (_tmp388_);
		_tmp390_ = ccall;
		_tmp391_ = vala_ccode_identifier_new ("_inner_res");
		_tmp392_ = _tmp391_;
		vala_ccode_function_call_add_argument (_tmp390_, (ValaCCodeExpression*) _tmp392_);
		_vala_ccode_node_unref0 (_tmp392_);
		_tmp393_ = ccall;
		_tmp394_ = error_argument;
		vala_ccode_function_call_add_argument (_tmp393_, _tmp394_);
		_tmp395_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp396_ = _tmp395_;
		_tmp397_ = vala_ccode_identifier_new ("_reply_message");
		_tmp398_ = _tmp397_;
		_tmp399_ = ccall;
		vala_ccode_function_add_assignment (_tmp396_, (ValaCCodeExpression*) _tmp398_, (ValaCCodeExpression*) _tmp399_);
		_vala_ccode_node_unref0 (_tmp398_);
		_tmp400_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp401_ = _tmp400_;
		_tmp402_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp401_);
		_tmp403_ = _tmp402_;
		_vala_ccode_node_unref0 (_tmp401_);
		unref_inner_res = _tmp403_;
		_tmp404_ = unref_inner_res;
		_tmp405_ = vala_ccode_identifier_new ("_inner_res");
		_tmp406_ = _tmp405_;
		vala_ccode_function_call_add_argument (_tmp404_, (ValaCCodeExpression*) _tmp406_);
		_vala_ccode_node_unref0 (_tmp406_);
		_tmp407_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp408_ = _tmp407_;
		_tmp409_ = unref_inner_res;
		vala_ccode_function_add_expression (_tmp408_, (ValaCCodeExpression*) _tmp409_);
		_vala_ccode_node_unref0 (unref_inner_res);
		_vala_ccode_node_unref0 (inner_res);
		_vala_ccode_node_unref0 (ccall);
	}
	_tmp411_ = call_type;
	if (_tmp411_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC) {
		_tmp410_ = TRUE;
	} else {
		ValaGDBusClientModuleCallType _tmp412_;
		_tmp412_ = call_type;
		_tmp410_ = _tmp412_ == VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH;
	}
	if (_tmp410_) {
		ValaCCodeFunction* _tmp413_;
		ValaCCodeFunction* _tmp414_;
		ValaCCodeVariableDeclarator* _tmp415_;
		ValaCCodeVariableDeclarator* _tmp416_;
		ValaCCodeFunctionCall* unref_reply = NULL;
		ValaCCodeIdentifier* _tmp417_;
		ValaCCodeIdentifier* _tmp418_;
		ValaCCodeFunctionCall* _tmp419_;
		ValaCCodeFunctionCall* _tmp420_;
		ValaCCodeFunctionCall* _tmp421_;
		ValaCCodeIdentifier* _tmp422_;
		ValaCCodeIdentifier* _tmp423_;
		ValaCCodeUnaryExpression* reply_is_null = NULL;
		ValaCCodeIdentifier* _tmp424_;
		ValaCCodeIdentifier* _tmp425_;
		ValaCCodeUnaryExpression* _tmp426_;
		ValaCCodeUnaryExpression* _tmp427_;
		ValaCCodeFunction* _tmp428_;
		ValaCCodeFunction* _tmp429_;
		ValaCCodeUnaryExpression* _tmp430_;
		ValaMethod* _tmp431_;
		ValaDataType* _tmp432_;
		ValaDataType* _tmp433_;
		ValaCCodeFunction* _tmp434_;
		ValaCCodeFunction* _tmp435_;
		ValaCCodeFunctionCall* ccall = NULL;
		ValaCCodeIdentifier* _tmp436_;
		ValaCCodeIdentifier* _tmp437_;
		ValaCCodeFunctionCall* _tmp438_;
		ValaCCodeFunctionCall* _tmp439_;
		ValaCCodeFunctionCall* _tmp440_;
		ValaCCodeIdentifier* _tmp441_;
		ValaCCodeIdentifier* _tmp442_;
		ValaCCodeFunctionCall* _tmp443_;
		ValaCCodeExpression* _tmp444_;
		ValaCCodeFunction* _tmp445_;
		ValaCCodeFunction* _tmp446_;
		ValaCCodeFunctionCall* _tmp447_;
		ValaCCodeFunction* _tmp448_;
		ValaCCodeFunction* _tmp449_;
		ValaCCodeFunctionCall* _tmp450_;
		ValaMethod* _tmp451_;
		ValaDataType* _tmp452_;
		ValaDataType* _tmp453_;
		ValaCCodeFunction* _tmp454_;
		ValaCCodeFunction* _tmp455_;
		gboolean has_result = FALSE;
		ValaMethod* _tmp456_;
		ValaDataType* _tmp457_;
		ValaDataType* _tmp458_;
		gboolean _tmp459_;
		gboolean _tmp488_;
		ValaCCodeFunction* _tmp764_;
		ValaCCodeFunction* _tmp765_;
		ValaCCodeFunctionCall* _tmp766_;
		gboolean _tmp767_ = FALSE;
		ValaMethod* _tmp768_;
		ValaDataType* _tmp769_;
		ValaDataType* _tmp770_;
		_tmp413_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp414_ = _tmp413_;
		_tmp415_ = vala_ccode_variable_declarator_new ("*_reply_message", NULL, NULL);
		_tmp416_ = _tmp415_;
		vala_ccode_function_add_declaration (_tmp414_, "GDBusMessage", (ValaCCodeDeclarator*) _tmp416_, 0);
		_vala_ccode_node_unref0 (_tmp416_);
		_tmp417_ = vala_ccode_identifier_new ("g_object_unref");
		_tmp418_ = _tmp417_;
		_tmp419_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp418_);
		_tmp420_ = _tmp419_;
		_vala_ccode_node_unref0 (_tmp418_);
		unref_reply = _tmp420_;
		_tmp421_ = unref_reply;
		_tmp422_ = vala_ccode_identifier_new ("_reply_message");
		_tmp423_ = _tmp422_;
		vala_ccode_function_call_add_argument (_tmp421_, (ValaCCodeExpression*) _tmp423_);
		_vala_ccode_node_unref0 (_tmp423_);
		_tmp424_ = vala_ccode_identifier_new ("_reply_message");
		_tmp425_ = _tmp424_;
		_tmp426_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp425_);
		_tmp427_ = _tmp426_;
		_vala_ccode_node_unref0 (_tmp425_);
		reply_is_null = _tmp427_;
		_tmp428_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp429_ = _tmp428_;
		_tmp430_ = reply_is_null;
		vala_ccode_function_open_if (_tmp429_, (ValaCCodeExpression*) _tmp430_);
		_tmp431_ = m;
		_tmp432_ = vala_callable_get_return_type ((ValaCallable*) _tmp431_);
		_tmp433_ = _tmp432_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp433_);
		_tmp434_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp435_ = _tmp434_;
		vala_ccode_function_close (_tmp435_);
		_tmp436_ = vala_ccode_identifier_new ("g_dbus_message_to_gerror");
		_tmp437_ = _tmp436_;
		_tmp438_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp437_);
		_tmp439_ = _tmp438_;
		_vala_ccode_node_unref0 (_tmp437_);
		ccall = _tmp439_;
		_tmp440_ = ccall;
		_tmp441_ = vala_ccode_identifier_new ("_reply_message");
		_tmp442_ = _tmp441_;
		vala_ccode_function_call_add_argument (_tmp440_, (ValaCCodeExpression*) _tmp442_);
		_vala_ccode_node_unref0 (_tmp442_);
		_tmp443_ = ccall;
		_tmp444_ = error_argument;
		vala_ccode_function_call_add_argument (_tmp443_, _tmp444_);
		_tmp445_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp446_ = _tmp445_;
		_tmp447_ = ccall;
		vala_ccode_function_open_if (_tmp446_, (ValaCCodeExpression*) _tmp447_);
		_tmp448_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp449_ = _tmp448_;
		_tmp450_ = unref_reply;
		vala_ccode_function_add_expression (_tmp449_, (ValaCCodeExpression*) _tmp450_);
		_tmp451_ = m;
		_tmp452_ = vala_callable_get_return_type ((ValaCallable*) _tmp451_);
		_tmp453_ = _tmp452_;
		vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp453_);
		_tmp454_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp455_ = _tmp454_;
		vala_ccode_function_close (_tmp455_);
		_tmp456_ = m;
		_tmp457_ = vala_callable_get_return_type ((ValaCallable*) _tmp456_);
		_tmp458_ = _tmp457_;
		has_result = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp458_, VALA_TYPE_VOID_TYPE);
		_tmp459_ = uses_fd;
		if (_tmp459_) {
			ValaCCodeFunction* _tmp460_;
			ValaCCodeFunction* _tmp461_;
			ValaCCodeConstant* _tmp462_;
			ValaCCodeConstant* _tmp463_;
			ValaCCodeVariableDeclarator* _tmp464_;
			ValaCCodeVariableDeclarator* _tmp465_;
			ValaCCodeFunction* _tmp466_;
			ValaCCodeFunction* _tmp467_;
			ValaCCodeVariableDeclarator* _tmp468_;
			ValaCCodeVariableDeclarator* _tmp469_;
			ValaCCodeFunction* _tmp470_;
			ValaCCodeFunction* _tmp471_;
			ValaCCodeVariableDeclarator* _tmp472_;
			ValaCCodeVariableDeclarator* _tmp473_;
			_tmp460_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp461_ = _tmp460_;
			_tmp462_ = vala_ccode_constant_new ("0");
			_tmp463_ = _tmp462_;
			_tmp464_ = vala_ccode_variable_declarator_new_zero ("_fd_index", (ValaCCodeExpression*) _tmp463_, NULL);
			_tmp465_ = _tmp464_;
			vala_ccode_function_add_declaration (_tmp461_, "gint", (ValaCCodeDeclarator*) _tmp465_, 0);
			_vala_ccode_node_unref0 (_tmp465_);
			_vala_ccode_node_unref0 (_tmp463_);
			_tmp466_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp467_ = _tmp466_;
			_tmp468_ = vala_ccode_variable_declarator_new ("_fd_list", NULL, NULL);
			_tmp469_ = _tmp468_;
			vala_ccode_function_add_declaration (_tmp467_, "GUnixFDList*", (ValaCCodeDeclarator*) _tmp469_, 0);
			_vala_ccode_node_unref0 (_tmp469_);
			_tmp470_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp471_ = _tmp470_;
			_tmp472_ = vala_ccode_variable_declarator_new ("_fd", NULL, NULL);
			_tmp473_ = _tmp472_;
			vala_ccode_function_add_declaration (_tmp471_, "gint", (ValaCCodeDeclarator*) _tmp473_, 0);
			_vala_ccode_node_unref0 (_tmp473_);
		}
		{
			ValaList* _param_list = NULL;
			ValaMethod* _tmp474_;
			ValaList* _tmp475_;
			gint _param_size = 0;
			ValaList* _tmp476_;
			gint _tmp477_;
			gint _tmp478_;
			gint _param_index = 0;
			_tmp474_ = m;
			_tmp475_ = vala_callable_get_parameters ((ValaCallable*) _tmp474_);
			_param_list = _tmp475_;
			_tmp476_ = _param_list;
			_tmp477_ = vala_collection_get_size ((ValaCollection*) _tmp476_);
			_tmp478_ = _tmp477_;
			_param_size = _tmp478_;
			_param_index = -1;
			while (TRUE) {
				gint _tmp479_;
				gint _tmp480_;
				gint _tmp481_;
				ValaParameter* param = NULL;
				ValaList* _tmp482_;
				gint _tmp483_;
				gpointer _tmp484_;
				ValaParameter* _tmp485_;
				ValaParameterDirection _tmp486_;
				ValaParameterDirection _tmp487_;
				_tmp479_ = _param_index;
				_param_index = _tmp479_ + 1;
				_tmp480_ = _param_index;
				_tmp481_ = _param_size;
				if (!(_tmp480_ < _tmp481_)) {
					break;
				}
				_tmp482_ = _param_list;
				_tmp483_ = _param_index;
				_tmp484_ = vala_list_get (_tmp482_, _tmp483_);
				param = (ValaParameter*) _tmp484_;
				_tmp485_ = param;
				_tmp486_ = vala_parameter_get_direction (_tmp485_);
				_tmp487_ = _tmp486_;
				if (_tmp487_ == VALA_PARAMETER_DIRECTION_OUT) {
					has_result = TRUE;
				}
				_vala_code_node_unref0 (param);
			}
			_vala_iterable_unref0 (_param_list);
		}
		_tmp488_ = has_result;
		if (_tmp488_) {
			ValaCCodeFunction* _tmp489_;
			ValaCCodeFunction* _tmp490_;
			ValaCCodeVariableDeclarator* _tmp491_;
			ValaCCodeVariableDeclarator* _tmp492_;
			ValaCCodeFunction* _tmp493_;
			ValaCCodeFunction* _tmp494_;
			ValaCCodeVariableDeclarator* _tmp495_;
			ValaCCodeVariableDeclarator* _tmp496_;
			ValaCCodeIdentifier* _tmp497_;
			ValaCCodeIdentifier* _tmp498_;
			ValaCCodeFunctionCall* _tmp499_;
			ValaCCodeFunctionCall* _tmp500_;
			ValaCCodeIdentifier* _tmp501_;
			ValaCCodeIdentifier* _tmp502_;
			ValaCCodeFunction* _tmp503_;
			ValaCCodeFunction* _tmp504_;
			ValaCCodeIdentifier* _tmp505_;
			ValaCCodeIdentifier* _tmp506_;
			ValaCCodeFunctionCall* _tmp507_;
			ValaCCodeFunctionCall* iter_init = NULL;
			ValaCCodeIdentifier* _tmp508_;
			ValaCCodeIdentifier* _tmp509_;
			ValaCCodeFunctionCall* _tmp510_;
			ValaCCodeFunctionCall* _tmp511_;
			ValaCCodeFunctionCall* _tmp512_;
			ValaCCodeIdentifier* _tmp513_;
			ValaCCodeIdentifier* _tmp514_;
			ValaCCodeUnaryExpression* _tmp515_;
			ValaCCodeUnaryExpression* _tmp516_;
			ValaCCodeFunctionCall* _tmp517_;
			ValaCCodeIdentifier* _tmp518_;
			ValaCCodeIdentifier* _tmp519_;
			ValaCCodeFunction* _tmp520_;
			ValaCCodeFunction* _tmp521_;
			ValaCCodeFunctionCall* _tmp522_;
			ValaMethod* _tmp657_;
			ValaDataType* _tmp658_;
			ValaDataType* _tmp659_;
			_tmp489_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp490_ = _tmp489_;
			_tmp491_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
			_tmp492_ = _tmp491_;
			vala_ccode_function_add_declaration (_tmp490_, "GVariant", (ValaCCodeDeclarator*) _tmp492_, 0);
			_vala_ccode_node_unref0 (_tmp492_);
			_tmp493_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp494_ = _tmp493_;
			_tmp495_ = vala_ccode_variable_declarator_new ("_reply_iter", NULL, NULL);
			_tmp496_ = _tmp495_;
			vala_ccode_function_add_declaration (_tmp494_, "GVariantIter", (ValaCCodeDeclarator*) _tmp496_, 0);
			_vala_ccode_node_unref0 (_tmp496_);
			_tmp497_ = vala_ccode_identifier_new ("g_dbus_message_get_body");
			_tmp498_ = _tmp497_;
			_tmp499_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp498_);
			_vala_ccode_node_unref0 (ccall);
			ccall = _tmp499_;
			_vala_ccode_node_unref0 (_tmp498_);
			_tmp500_ = ccall;
			_tmp501_ = vala_ccode_identifier_new ("_reply_message");
			_tmp502_ = _tmp501_;
			vala_ccode_function_call_add_argument (_tmp500_, (ValaCCodeExpression*) _tmp502_);
			_vala_ccode_node_unref0 (_tmp502_);
			_tmp503_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp504_ = _tmp503_;
			_tmp505_ = vala_ccode_identifier_new ("_reply");
			_tmp506_ = _tmp505_;
			_tmp507_ = ccall;
			vala_ccode_function_add_assignment (_tmp504_, (ValaCCodeExpression*) _tmp506_, (ValaCCodeExpression*) _tmp507_);
			_vala_ccode_node_unref0 (_tmp506_);
			_tmp508_ = vala_ccode_identifier_new ("g_variant_iter_init");
			_tmp509_ = _tmp508_;
			_tmp510_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp509_);
			_tmp511_ = _tmp510_;
			_vala_ccode_node_unref0 (_tmp509_);
			iter_init = _tmp511_;
			_tmp512_ = iter_init;
			_tmp513_ = vala_ccode_identifier_new ("_reply_iter");
			_tmp514_ = _tmp513_;
			_tmp515_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp514_);
			_tmp516_ = _tmp515_;
			vala_ccode_function_call_add_argument (_tmp512_, (ValaCCodeExpression*) _tmp516_);
			_vala_ccode_node_unref0 (_tmp516_);
			_vala_ccode_node_unref0 (_tmp514_);
			_tmp517_ = iter_init;
			_tmp518_ = vala_ccode_identifier_new ("_reply");
			_tmp519_ = _tmp518_;
			vala_ccode_function_call_add_argument (_tmp517_, (ValaCCodeExpression*) _tmp519_);
			_vala_ccode_node_unref0 (_tmp519_);
			_tmp520_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp521_ = _tmp520_;
			_tmp522_ = iter_init;
			vala_ccode_function_add_expression (_tmp521_, (ValaCCodeExpression*) _tmp522_);
			{
				ValaList* _param_list = NULL;
				ValaMethod* _tmp523_;
				ValaList* _tmp524_;
				gint _param_size = 0;
				ValaList* _tmp525_;
				gint _tmp526_;
				gint _tmp527_;
				gint _param_index = 0;
				_tmp523_ = m;
				_tmp524_ = vala_callable_get_parameters ((ValaCallable*) _tmp523_);
				_param_list = _tmp524_;
				_tmp525_ = _param_list;
				_tmp526_ = vala_collection_get_size ((ValaCollection*) _tmp525_);
				_tmp527_ = _tmp526_;
				_param_size = _tmp527_;
				_param_index = -1;
				while (TRUE) {
					gint _tmp528_;
					gint _tmp529_;
					gint _tmp530_;
					ValaParameter* param = NULL;
					ValaList* _tmp531_;
					gint _tmp532_;
					gpointer _tmp533_;
					ValaParameter* _tmp534_;
					ValaParameterDirection _tmp535_;
					ValaParameterDirection _tmp536_;
					_tmp528_ = _param_index;
					_param_index = _tmp528_ + 1;
					_tmp529_ = _param_index;
					_tmp530_ = _param_size;
					if (!(_tmp529_ < _tmp530_)) {
						break;
					}
					_tmp531_ = _param_list;
					_tmp532_ = _param_index;
					_tmp533_ = vala_list_get (_tmp531_, _tmp532_);
					param = (ValaParameter*) _tmp533_;
					_tmp534_ = param;
					_tmp535_ = vala_parameter_get_direction (_tmp534_);
					_tmp536_ = _tmp535_;
					if (_tmp536_ == VALA_PARAMETER_DIRECTION_OUT) {
						ValaCCodeFunction* _tmp537_;
						ValaCCodeFunction* _tmp538_;
						ValaParameter* _tmp539_;
						ValaDataType* _tmp540_;
						ValaDataType* _tmp541_;
						gchar* _tmp542_;
						gchar* _tmp543_;
						ValaParameter* _tmp544_;
						const gchar* _tmp545_;
						const gchar* _tmp546_;
						gchar* _tmp547_;
						gchar* _tmp548_;
						ValaParameter* _tmp549_;
						ValaDataType* _tmp550_;
						ValaDataType* _tmp551_;
						ValaCCodeExpression* _tmp552_;
						ValaCCodeExpression* _tmp553_;
						ValaCCodeVariableDeclarator* _tmp554_;
						ValaCCodeVariableDeclarator* _tmp555_;
						ValaArrayType* array_type = NULL;
						ValaParameter* _tmp556_;
						ValaDataType* _tmp557_;
						ValaDataType* _tmp558_;
						ValaArrayType* _tmp559_;
						ValaArrayType* _tmp560_;
						ValaCCodeIdentifier* target = NULL;
						ValaParameter* _tmp579_;
						const gchar* _tmp580_;
						const gchar* _tmp581_;
						gchar* _tmp582_;
						gchar* _tmp583_;
						ValaCCodeIdentifier* _tmp584_;
						ValaCCodeIdentifier* _tmp585_;
						gboolean may_fail = FALSE;
						ValaParameter* _tmp586_;
						ValaDataType* _tmp587_;
						ValaDataType* _tmp588_;
						ValaCCodeIdentifier* _tmp589_;
						ValaCCodeIdentifier* _tmp590_;
						ValaCCodeIdentifier* _tmp591_;
						ValaCCodeIdentifier* _tmp592_;
						ValaCCodeIdentifier* _tmp593_;
						ValaParameter* _tmp594_;
						ValaCCodeExpression* _tmp595_;
						gboolean _tmp596_ = FALSE;
						ValaCCodeFunction* _tmp597_;
						ValaCCodeFunction* _tmp598_;
						ValaParameter* _tmp599_;
						const gchar* _tmp600_;
						const gchar* _tmp601_;
						gchar* _tmp602_;
						gchar* _tmp603_;
						ValaCCodeIdentifier* _tmp604_;
						ValaCCodeIdentifier* _tmp605_;
						ValaCCodeUnaryExpression* _tmp606_;
						ValaCCodeUnaryExpression* _tmp607_;
						ValaCCodeIdentifier* _tmp608_;
						ValaArrayType* _tmp609_;
						gboolean _tmp636_ = FALSE;
						gboolean _tmp637_;
						_tmp537_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp538_ = _tmp537_;
						_tmp539_ = param;
						_tmp540_ = vala_variable_get_variable_type ((ValaVariable*) _tmp539_);
						_tmp541_ = _tmp540_;
						_tmp542_ = vala_get_ccode_name ((ValaCodeNode*) _tmp541_);
						_tmp543_ = _tmp542_;
						_tmp544_ = param;
						_tmp545_ = vala_symbol_get_name ((ValaSymbol*) _tmp544_);
						_tmp546_ = _tmp545_;
						_tmp547_ = g_strdup_printf ("_vala_%s", _tmp546_);
						_tmp548_ = _tmp547_;
						_tmp549_ = param;
						_tmp550_ = vala_variable_get_variable_type ((ValaVariable*) _tmp549_);
						_tmp551_ = _tmp550_;
						_tmp552_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp551_, TRUE);
						_tmp553_ = _tmp552_;
						_tmp554_ = vala_ccode_variable_declarator_new_zero (_tmp548_, _tmp553_, NULL);
						_tmp555_ = _tmp554_;
						vala_ccode_function_add_declaration (_tmp538_, _tmp543_, (ValaCCodeDeclarator*) _tmp555_, 0);
						_vala_ccode_node_unref0 (_tmp555_);
						_vala_ccode_node_unref0 (_tmp553_);
						_g_free0 (_tmp548_);
						_g_free0 (_tmp543_);
						_tmp556_ = param;
						_tmp557_ = vala_variable_get_variable_type ((ValaVariable*) _tmp556_);
						_tmp558_ = _tmp557_;
						_tmp559_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp558_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp558_) : NULL);
						array_type = _tmp559_;
						_tmp560_ = array_type;
						if (_tmp560_ != NULL) {
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp561_ = FALSE;
									_tmp561_ = TRUE;
									while (TRUE) {
										gint _tmp563_;
										ValaArrayType* _tmp564_;
										gint _tmp565_;
										gint _tmp566_;
										ValaCCodeFunction* _tmp567_;
										ValaCCodeFunction* _tmp568_;
										ValaParameter* _tmp569_;
										const gchar* _tmp570_;
										const gchar* _tmp571_;
										gint _tmp572_;
										gchar* _tmp573_;
										gchar* _tmp574_;
										ValaCCodeConstant* _tmp575_;
										ValaCCodeConstant* _tmp576_;
										ValaCCodeVariableDeclarator* _tmp577_;
										ValaCCodeVariableDeclarator* _tmp578_;
										if (!_tmp561_) {
											gint _tmp562_;
											_tmp562_ = dim;
											dim = _tmp562_ + 1;
										}
										_tmp561_ = FALSE;
										_tmp563_ = dim;
										_tmp564_ = array_type;
										_tmp565_ = vala_array_type_get_rank (_tmp564_);
										_tmp566_ = _tmp565_;
										if (!(_tmp563_ <= _tmp566_)) {
											break;
										}
										_tmp567_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp568_ = _tmp567_;
										_tmp569_ = param;
										_tmp570_ = vala_symbol_get_name ((ValaSymbol*) _tmp569_);
										_tmp571_ = _tmp570_;
										_tmp572_ = dim;
										_tmp573_ = g_strdup_printf ("_vala_%s_length%d", _tmp571_, _tmp572_);
										_tmp574_ = _tmp573_;
										_tmp575_ = vala_ccode_constant_new ("0");
										_tmp576_ = _tmp575_;
										_tmp577_ = vala_ccode_variable_declarator_new (_tmp574_, (ValaCCodeExpression*) _tmp576_, NULL);
										_tmp578_ = _tmp577_;
										vala_ccode_function_add_declaration (_tmp568_, "int", (ValaCCodeDeclarator*) _tmp578_, 0);
										_vala_ccode_node_unref0 (_tmp578_);
										_vala_ccode_node_unref0 (_tmp576_);
										_g_free0 (_tmp574_);
									}
								}
							}
						}
						_tmp579_ = param;
						_tmp580_ = vala_symbol_get_name ((ValaSymbol*) _tmp579_);
						_tmp581_ = _tmp580_;
						_tmp582_ = g_strdup_printf ("_vala_%s", _tmp581_);
						_tmp583_ = _tmp582_;
						_tmp584_ = vala_ccode_identifier_new (_tmp583_);
						_tmp585_ = _tmp584_;
						_g_free0 (_tmp583_);
						target = _tmp585_;
						_tmp586_ = param;
						_tmp587_ = vala_variable_get_variable_type ((ValaVariable*) _tmp586_);
						_tmp588_ = _tmp587_;
						_tmp589_ = vala_ccode_identifier_new ("_reply_message");
						_tmp590_ = _tmp589_;
						_tmp591_ = vala_ccode_identifier_new ("_reply_iter");
						_tmp592_ = _tmp591_;
						_tmp593_ = target;
						_tmp594_ = param;
						_tmp595_ = error_argument;
						vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp588_, (ValaCCodeExpression*) _tmp590_, (ValaCCodeExpression*) _tmp592_, (ValaCCodeExpression*) _tmp593_, (ValaSymbol*) _tmp594_, _tmp595_, &_tmp596_);
						may_fail = _tmp596_;
						_vala_ccode_node_unref0 (_tmp592_);
						_vala_ccode_node_unref0 (_tmp590_);
						_tmp597_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp598_ = _tmp597_;
						_tmp599_ = param;
						_tmp600_ = vala_symbol_get_name ((ValaSymbol*) _tmp599_);
						_tmp601_ = _tmp600_;
						_tmp602_ = vala_ccode_base_module_get_variable_cname ((ValaCCodeBaseModule*) self, _tmp601_);
						_tmp603_ = _tmp602_;
						_tmp604_ = vala_ccode_identifier_new (_tmp603_);
						_tmp605_ = _tmp604_;
						_tmp606_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp605_);
						_tmp607_ = _tmp606_;
						_tmp608_ = target;
						vala_ccode_function_add_assignment (_tmp598_, (ValaCCodeExpression*) _tmp607_, (ValaCCodeExpression*) _tmp608_);
						_vala_ccode_node_unref0 (_tmp607_);
						_vala_ccode_node_unref0 (_tmp605_);
						_g_free0 (_tmp603_);
						_tmp609_ = array_type;
						if (_tmp609_ != NULL) {
							{
								gint dim = 0;
								dim = 1;
								{
									gboolean _tmp610_ = FALSE;
									_tmp610_ = TRUE;
									while (TRUE) {
										gint _tmp612_;
										ValaArrayType* _tmp613_;
										gint _tmp614_;
										gint _tmp615_;
										ValaCCodeFunction* _tmp616_;
										ValaCCodeFunction* _tmp617_;
										ValaParameter* _tmp618_;
										const gchar* _tmp619_;
										const gchar* _tmp620_;
										gint _tmp621_;
										gchar* _tmp622_;
										gchar* _tmp623_;
										ValaCCodeIdentifier* _tmp624_;
										ValaCCodeIdentifier* _tmp625_;
										ValaCCodeUnaryExpression* _tmp626_;
										ValaCCodeUnaryExpression* _tmp627_;
										ValaParameter* _tmp628_;
										const gchar* _tmp629_;
										const gchar* _tmp630_;
										gint _tmp631_;
										gchar* _tmp632_;
										gchar* _tmp633_;
										ValaCCodeIdentifier* _tmp634_;
										ValaCCodeIdentifier* _tmp635_;
										if (!_tmp610_) {
											gint _tmp611_;
											_tmp611_ = dim;
											dim = _tmp611_ + 1;
										}
										_tmp610_ = FALSE;
										_tmp612_ = dim;
										_tmp613_ = array_type;
										_tmp614_ = vala_array_type_get_rank (_tmp613_);
										_tmp615_ = _tmp614_;
										if (!(_tmp612_ <= _tmp615_)) {
											break;
										}
										_tmp616_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
										_tmp617_ = _tmp616_;
										_tmp618_ = param;
										_tmp619_ = vala_symbol_get_name ((ValaSymbol*) _tmp618_);
										_tmp620_ = _tmp619_;
										_tmp621_ = dim;
										_tmp622_ = g_strdup_printf ("%s_length%d", _tmp620_, _tmp621_);
										_tmp623_ = _tmp622_;
										_tmp624_ = vala_ccode_identifier_new (_tmp623_);
										_tmp625_ = _tmp624_;
										_tmp626_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp625_);
										_tmp627_ = _tmp626_;
										_tmp628_ = param;
										_tmp629_ = vala_symbol_get_name ((ValaSymbol*) _tmp628_);
										_tmp630_ = _tmp629_;
										_tmp631_ = dim;
										_tmp632_ = g_strdup_printf ("_vala_%s_length%d", _tmp630_, _tmp631_);
										_tmp633_ = _tmp632_;
										_tmp634_ = vala_ccode_identifier_new (_tmp633_);
										_tmp635_ = _tmp634_;
										vala_ccode_function_add_assignment (_tmp617_, (ValaCCodeExpression*) _tmp627_, (ValaCCodeExpression*) _tmp635_);
										_vala_ccode_node_unref0 (_tmp635_);
										_g_free0 (_tmp633_);
										_vala_ccode_node_unref0 (_tmp627_);
										_vala_ccode_node_unref0 (_tmp625_);
										_g_free0 (_tmp623_);
									}
								}
							}
						}
						_tmp637_ = may_fail;
						if (_tmp637_) {
							gboolean _tmp638_;
							_tmp638_ = has_error_argument;
							_tmp636_ = _tmp638_;
						} else {
							_tmp636_ = FALSE;
						}
						if (_tmp636_) {
							ValaCCodeFunction* _tmp639_;
							ValaCCodeFunction* _tmp640_;
							ValaCCodeIdentifier* _tmp641_;
							ValaCCodeIdentifier* _tmp642_;
							ValaCCodeIdentifier* _tmp643_;
							ValaCCodeIdentifier* _tmp644_;
							ValaCCodeUnaryExpression* _tmp645_;
							ValaCCodeUnaryExpression* _tmp646_;
							ValaCCodeBinaryExpression* _tmp647_;
							ValaCCodeBinaryExpression* _tmp648_;
							ValaCCodeFunction* _tmp649_;
							ValaCCodeFunction* _tmp650_;
							ValaCCodeFunctionCall* _tmp651_;
							ValaMethod* _tmp652_;
							ValaDataType* _tmp653_;
							ValaDataType* _tmp654_;
							ValaCCodeFunction* _tmp655_;
							ValaCCodeFunction* _tmp656_;
							_tmp639_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp640_ = _tmp639_;
							_tmp641_ = vala_ccode_identifier_new ("error");
							_tmp642_ = _tmp641_;
							_tmp643_ = vala_ccode_identifier_new ("error");
							_tmp644_ = _tmp643_;
							_tmp645_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp644_);
							_tmp646_ = _tmp645_;
							_tmp647_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp642_, (ValaCCodeExpression*) _tmp646_);
							_tmp648_ = _tmp647_;
							vala_ccode_function_open_if (_tmp640_, (ValaCCodeExpression*) _tmp648_);
							_vala_ccode_node_unref0 (_tmp648_);
							_vala_ccode_node_unref0 (_tmp646_);
							_vala_ccode_node_unref0 (_tmp644_);
							_vala_ccode_node_unref0 (_tmp642_);
							_tmp649_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp650_ = _tmp649_;
							_tmp651_ = unref_reply;
							vala_ccode_function_add_expression (_tmp650_, (ValaCCodeExpression*) _tmp651_);
							_tmp652_ = m;
							_tmp653_ = vala_callable_get_return_type ((ValaCallable*) _tmp652_);
							_tmp654_ = _tmp653_;
							vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp654_);
							_tmp655_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp656_ = _tmp655_;
							vala_ccode_function_close (_tmp656_);
						}
						_vala_ccode_node_unref0 (target);
						_vala_code_node_unref0 (array_type);
					}
					_vala_code_node_unref0 (param);
				}
				_vala_iterable_unref0 (_param_list);
			}
			_tmp657_ = m;
			_tmp658_ = vala_callable_get_return_type ((ValaCallable*) _tmp657_);
			_tmp659_ = _tmp658_;
			if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp659_, VALA_TYPE_VOID_TYPE)) {
				ValaMethod* _tmp660_;
				ValaDataType* _tmp661_;
				ValaDataType* _tmp662_;
				gboolean _tmp663_;
				_tmp660_ = m;
				_tmp661_ = vala_callable_get_return_type ((ValaCallable*) _tmp660_);
				_tmp662_ = _tmp661_;
				_tmp663_ = vala_data_type_is_real_non_null_struct_type (_tmp662_);
				if (_tmp663_) {
					ValaCCodeUnaryExpression* target = NULL;
					ValaCCodeIdentifier* _tmp664_;
					ValaCCodeIdentifier* _tmp665_;
					ValaCCodeUnaryExpression* _tmp666_;
					ValaCCodeUnaryExpression* _tmp667_;
					ValaMethod* _tmp668_;
					ValaDataType* _tmp669_;
					ValaDataType* _tmp670_;
					ValaCCodeIdentifier* _tmp671_;
					ValaCCodeIdentifier* _tmp672_;
					ValaCCodeIdentifier* _tmp673_;
					ValaCCodeIdentifier* _tmp674_;
					ValaCCodeUnaryExpression* _tmp675_;
					ValaMethod* _tmp676_;
					_tmp664_ = vala_ccode_identifier_new ("result");
					_tmp665_ = _tmp664_;
					_tmp666_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp665_);
					_tmp667_ = _tmp666_;
					_vala_ccode_node_unref0 (_tmp665_);
					target = _tmp667_;
					_tmp668_ = m;
					_tmp669_ = vala_callable_get_return_type ((ValaCallable*) _tmp668_);
					_tmp670_ = _tmp669_;
					_tmp671_ = vala_ccode_identifier_new ("_reply_message");
					_tmp672_ = _tmp671_;
					_tmp673_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp674_ = _tmp673_;
					_tmp675_ = target;
					_tmp676_ = m;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp670_, (ValaCCodeExpression*) _tmp672_, (ValaCCodeExpression*) _tmp674_, (ValaCCodeExpression*) _tmp675_, (ValaSymbol*) _tmp676_, NULL, NULL);
					_vala_ccode_node_unref0 (_tmp674_);
					_vala_ccode_node_unref0 (_tmp672_);
					_vala_ccode_node_unref0 (target);
				} else {
					ValaCCodeFunction* _tmp677_;
					ValaCCodeFunction* _tmp678_;
					ValaMethod* _tmp679_;
					ValaDataType* _tmp680_;
					ValaDataType* _tmp681_;
					gchar* _tmp682_;
					gchar* _tmp683_;
					ValaMethod* _tmp684_;
					ValaDataType* _tmp685_;
					ValaDataType* _tmp686_;
					ValaCCodeExpression* _tmp687_;
					ValaCCodeExpression* _tmp688_;
					ValaCCodeVariableDeclarator* _tmp689_;
					ValaCCodeVariableDeclarator* _tmp690_;
					ValaArrayType* array_type = NULL;
					ValaMethod* _tmp691_;
					ValaDataType* _tmp692_;
					ValaDataType* _tmp693_;
					ValaArrayType* _tmp694_;
					ValaArrayType* _tmp695_;
					gboolean may_fail = FALSE;
					ValaMethod* _tmp711_;
					ValaDataType* _tmp712_;
					ValaDataType* _tmp713_;
					ValaCCodeIdentifier* _tmp714_;
					ValaCCodeIdentifier* _tmp715_;
					ValaCCodeIdentifier* _tmp716_;
					ValaCCodeIdentifier* _tmp717_;
					ValaCCodeIdentifier* _tmp718_;
					ValaCCodeIdentifier* _tmp719_;
					ValaMethod* _tmp720_;
					ValaCCodeIdentifier* _tmp721_;
					ValaCCodeIdentifier* _tmp722_;
					gboolean _tmp723_ = FALSE;
					ValaArrayType* _tmp724_;
					gboolean _tmp745_;
					_tmp677_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
					_tmp678_ = _tmp677_;
					_tmp679_ = m;
					_tmp680_ = vala_callable_get_return_type ((ValaCallable*) _tmp679_);
					_tmp681_ = _tmp680_;
					_tmp682_ = vala_get_ccode_name ((ValaCodeNode*) _tmp681_);
					_tmp683_ = _tmp682_;
					_tmp684_ = m;
					_tmp685_ = vala_callable_get_return_type ((ValaCallable*) _tmp684_);
					_tmp686_ = _tmp685_;
					_tmp687_ = vala_ccode_base_module_default_value_for_type ((ValaCCodeBaseModule*) self, _tmp686_, TRUE);
					_tmp688_ = _tmp687_;
					_tmp689_ = vala_ccode_variable_declarator_new_zero ("_result", _tmp688_, NULL);
					_tmp690_ = _tmp689_;
					vala_ccode_function_add_declaration (_tmp678_, _tmp683_, (ValaCCodeDeclarator*) _tmp690_, 0);
					_vala_ccode_node_unref0 (_tmp690_);
					_vala_ccode_node_unref0 (_tmp688_);
					_g_free0 (_tmp683_);
					_tmp691_ = m;
					_tmp692_ = vala_callable_get_return_type ((ValaCallable*) _tmp691_);
					_tmp693_ = _tmp692_;
					_tmp694_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp693_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp693_) : NULL);
					array_type = _tmp694_;
					_tmp695_ = array_type;
					if (_tmp695_ != NULL) {
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp696_ = FALSE;
								_tmp696_ = TRUE;
								while (TRUE) {
									gint _tmp698_;
									ValaArrayType* _tmp699_;
									gint _tmp700_;
									gint _tmp701_;
									ValaCCodeFunction* _tmp702_;
									ValaCCodeFunction* _tmp703_;
									gint _tmp704_;
									gchar* _tmp705_;
									gchar* _tmp706_;
									ValaCCodeConstant* _tmp707_;
									ValaCCodeConstant* _tmp708_;
									ValaCCodeVariableDeclarator* _tmp709_;
									ValaCCodeVariableDeclarator* _tmp710_;
									if (!_tmp696_) {
										gint _tmp697_;
										_tmp697_ = dim;
										dim = _tmp697_ + 1;
									}
									_tmp696_ = FALSE;
									_tmp698_ = dim;
									_tmp699_ = array_type;
									_tmp700_ = vala_array_type_get_rank (_tmp699_);
									_tmp701_ = _tmp700_;
									if (!(_tmp698_ <= _tmp701_)) {
										break;
									}
									_tmp702_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp703_ = _tmp702_;
									_tmp704_ = dim;
									_tmp705_ = g_strdup_printf ("_result_length%d", _tmp704_);
									_tmp706_ = _tmp705_;
									_tmp707_ = vala_ccode_constant_new ("0");
									_tmp708_ = _tmp707_;
									_tmp709_ = vala_ccode_variable_declarator_new (_tmp706_, (ValaCCodeExpression*) _tmp708_, NULL);
									_tmp710_ = _tmp709_;
									vala_ccode_function_add_declaration (_tmp703_, "int", (ValaCCodeDeclarator*) _tmp710_, 0);
									_vala_ccode_node_unref0 (_tmp710_);
									_vala_ccode_node_unref0 (_tmp708_);
									_g_free0 (_tmp706_);
								}
							}
						}
					}
					_tmp711_ = m;
					_tmp712_ = vala_callable_get_return_type ((ValaCallable*) _tmp711_);
					_tmp713_ = _tmp712_;
					_tmp714_ = vala_ccode_identifier_new ("_reply_message");
					_tmp715_ = _tmp714_;
					_tmp716_ = vala_ccode_identifier_new ("_reply_iter");
					_tmp717_ = _tmp716_;
					_tmp718_ = vala_ccode_identifier_new ("_result");
					_tmp719_ = _tmp718_;
					_tmp720_ = m;
					_tmp721_ = vala_ccode_identifier_new ("error");
					_tmp722_ = _tmp721_;
					vala_gd_bus_module_receive_dbus_value ((ValaGDBusModule*) self, _tmp713_, (ValaCCodeExpression*) _tmp715_, (ValaCCodeExpression*) _tmp717_, (ValaCCodeExpression*) _tmp719_, (ValaSymbol*) _tmp720_, (ValaCCodeExpression*) _tmp722_, &_tmp723_);
					may_fail = _tmp723_;
					_vala_ccode_node_unref0 (_tmp722_);
					_vala_ccode_node_unref0 (_tmp719_);
					_vala_ccode_node_unref0 (_tmp717_);
					_vala_ccode_node_unref0 (_tmp715_);
					_tmp724_ = array_type;
					if (_tmp724_ != NULL) {
						{
							gint dim = 0;
							dim = 1;
							{
								gboolean _tmp725_ = FALSE;
								_tmp725_ = TRUE;
								while (TRUE) {
									gint _tmp727_;
									ValaArrayType* _tmp728_;
									gint _tmp729_;
									gint _tmp730_;
									ValaCCodeFunction* _tmp731_;
									ValaCCodeFunction* _tmp732_;
									gint _tmp733_;
									gchar* _tmp734_;
									gchar* _tmp735_;
									ValaCCodeIdentifier* _tmp736_;
									ValaCCodeIdentifier* _tmp737_;
									ValaCCodeUnaryExpression* _tmp738_;
									ValaCCodeUnaryExpression* _tmp739_;
									gint _tmp740_;
									gchar* _tmp741_;
									gchar* _tmp742_;
									ValaCCodeIdentifier* _tmp743_;
									ValaCCodeIdentifier* _tmp744_;
									if (!_tmp725_) {
										gint _tmp726_;
										_tmp726_ = dim;
										dim = _tmp726_ + 1;
									}
									_tmp725_ = FALSE;
									_tmp727_ = dim;
									_tmp728_ = array_type;
									_tmp729_ = vala_array_type_get_rank (_tmp728_);
									_tmp730_ = _tmp729_;
									if (!(_tmp727_ <= _tmp730_)) {
										break;
									}
									_tmp731_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
									_tmp732_ = _tmp731_;
									_tmp733_ = dim;
									_tmp734_ = g_strdup_printf ("result_length%d", _tmp733_);
									_tmp735_ = _tmp734_;
									_tmp736_ = vala_ccode_identifier_new (_tmp735_);
									_tmp737_ = _tmp736_;
									_tmp738_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp737_);
									_tmp739_ = _tmp738_;
									_tmp740_ = dim;
									_tmp741_ = g_strdup_printf ("_result_length%d", _tmp740_);
									_tmp742_ = _tmp741_;
									_tmp743_ = vala_ccode_identifier_new (_tmp742_);
									_tmp744_ = _tmp743_;
									vala_ccode_function_add_assignment (_tmp732_, (ValaCCodeExpression*) _tmp739_, (ValaCCodeExpression*) _tmp744_);
									_vala_ccode_node_unref0 (_tmp744_);
									_g_free0 (_tmp742_);
									_vala_ccode_node_unref0 (_tmp739_);
									_vala_ccode_node_unref0 (_tmp737_);
									_g_free0 (_tmp735_);
								}
							}
						}
					}
					_tmp745_ = may_fail;
					if (_tmp745_) {
						ValaCCodeFunction* _tmp746_;
						ValaCCodeFunction* _tmp747_;
						ValaCCodeIdentifier* _tmp748_;
						ValaCCodeIdentifier* _tmp749_;
						ValaCCodeIdentifier* _tmp750_;
						ValaCCodeIdentifier* _tmp751_;
						ValaCCodeUnaryExpression* _tmp752_;
						ValaCCodeUnaryExpression* _tmp753_;
						ValaCCodeBinaryExpression* _tmp754_;
						ValaCCodeBinaryExpression* _tmp755_;
						ValaCCodeFunction* _tmp756_;
						ValaCCodeFunction* _tmp757_;
						ValaCCodeFunctionCall* _tmp758_;
						ValaMethod* _tmp759_;
						ValaDataType* _tmp760_;
						ValaDataType* _tmp761_;
						ValaCCodeFunction* _tmp762_;
						ValaCCodeFunction* _tmp763_;
						_tmp746_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp747_ = _tmp746_;
						_tmp748_ = vala_ccode_identifier_new ("error");
						_tmp749_ = _tmp748_;
						_tmp750_ = vala_ccode_identifier_new ("error");
						_tmp751_ = _tmp750_;
						_tmp752_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp751_);
						_tmp753_ = _tmp752_;
						_tmp754_ = vala_ccode_binary_expression_new (VALA_CCODE_BINARY_OPERATOR_AND, (ValaCCodeExpression*) _tmp749_, (ValaCCodeExpression*) _tmp753_);
						_tmp755_ = _tmp754_;
						vala_ccode_function_open_if (_tmp747_, (ValaCCodeExpression*) _tmp755_);
						_vala_ccode_node_unref0 (_tmp755_);
						_vala_ccode_node_unref0 (_tmp753_);
						_vala_ccode_node_unref0 (_tmp751_);
						_vala_ccode_node_unref0 (_tmp749_);
						_tmp756_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp757_ = _tmp756_;
						_tmp758_ = unref_reply;
						vala_ccode_function_add_expression (_tmp757_, (ValaCCodeExpression*) _tmp758_);
						_tmp759_ = m;
						_tmp760_ = vala_callable_get_return_type ((ValaCallable*) _tmp759_);
						_tmp761_ = _tmp760_;
						vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp761_);
						_tmp762_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
						_tmp763_ = _tmp762_;
						vala_ccode_function_close (_tmp763_);
					}
					_vala_code_node_unref0 (array_type);
				}
			}
			_vala_ccode_node_unref0 (iter_init);
		}
		_tmp764_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp765_ = _tmp764_;
		_tmp766_ = unref_reply;
		vala_ccode_function_add_expression (_tmp765_, (ValaCCodeExpression*) _tmp766_);
		_tmp768_ = m;
		_tmp769_ = vala_callable_get_return_type ((ValaCallable*) _tmp768_);
		_tmp770_ = _tmp769_;
		if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp770_, VALA_TYPE_VOID_TYPE)) {
			_tmp767_ = TRUE;
		} else {
			ValaMethod* _tmp771_;
			ValaDataType* _tmp772_;
			ValaDataType* _tmp773_;
			gboolean _tmp774_;
			_tmp771_ = m;
			_tmp772_ = vala_callable_get_return_type ((ValaCallable*) _tmp771_);
			_tmp773_ = _tmp772_;
			_tmp774_ = vala_data_type_is_real_non_null_struct_type (_tmp773_);
			_tmp767_ = _tmp774_;
		}
		if (!_tmp767_) {
			ValaCCodeFunction* _tmp775_;
			ValaCCodeFunction* _tmp776_;
			ValaCCodeIdentifier* _tmp777_;
			ValaCCodeIdentifier* _tmp778_;
			_tmp775_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp776_ = _tmp775_;
			_tmp777_ = vala_ccode_identifier_new ("_result");
			_tmp778_ = _tmp777_;
			vala_ccode_function_add_return (_tmp776_, (ValaCCodeExpression*) _tmp778_);
			_vala_ccode_node_unref0 (_tmp778_);
		}
		_vala_ccode_node_unref0 (ccall);
		_vala_ccode_node_unref0 (reply_is_null);
		_vala_ccode_node_unref0 (unref_reply);
	}
	_vala_ccode_node_unref0 (error_argument);
	_vala_ccode_node_unref0 (connection);
	_vala_ccode_node_unref0 (gdbusproxy);
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	gboolean no_reply = FALSE;
	ValaMethod* _tmp10_;
	gboolean _tmp11_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp12_;
	ValaCCodeFunction* _tmp13_;
	ValaCCodeFunction* _tmp14_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp15_;
	GEqualFunc _tmp16_;
	GEqualFunc _tmp17_;
	ValaHashMap* _tmp18_;
	ValaMethod* _tmp19_;
	ValaCCodeFile* _tmp20_;
	ValaHashMap* _tmp21_;
	ValaCCodeFunction* _tmp22_;
	ValaCCodeFunction* _tmp23_;
	ValaGDBusClientModuleCallType _tmp24_ = 0;
	gboolean _tmp25_;
	ValaMethod* _tmp26_;
	const gchar* _tmp27_;
	ValaMethod* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	ValaMethod* _tmp31_;
	gint _tmp32_;
	ValaCCodeFile* _tmp33_;
	ValaCCodeFunction* _tmp34_;
	ValaCCodeFile* _tmp35_;
	ValaCCodeFunction* _tmp36_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = m;
	_tmp11_ = vala_gd_bus_module_is_dbus_no_reply (_tmp10_);
	no_reply = _tmp11_;
	_tmp12_ = proxy_name;
	_tmp13_ = vala_ccode_function_new (_tmp12_, "void");
	function = _tmp13_;
	_tmp14_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp14_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp15_ = g_direct_hash;
	_tmp16_ = g_direct_equal;
	_tmp17_ = g_direct_equal;
	_tmp18_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp15_, _tmp16_, _tmp17_);
	cparam_map = _tmp18_;
	_tmp19_ = m;
	_tmp20_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp21_ = cparam_map;
	_tmp22_ = function;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp19_, _tmp20_, (ValaMap*) _tmp21_, _tmp22_, NULL, NULL, NULL, 3);
	_tmp23_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp23_);
	_tmp25_ = no_reply;
	if (_tmp25_) {
		_tmp24_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_NO_REPLY;
	} else {
		_tmp24_ = VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_SYNC;
	}
	_tmp26_ = m;
	_tmp27_ = dbus_iface_name;
	_tmp28_ = m;
	_tmp29_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp28_);
	_tmp30_ = _tmp29_;
	_tmp31_ = m;
	_tmp32_ = vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) _tmp31_);
	vala_gd_bus_client_module_generate_marshalling (self, _tmp26_, _tmp24_, _tmp27_, _tmp30_, _tmp32_);
	_g_free0 (_tmp30_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp33_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp34_ = function;
	vala_ccode_file_add_function_declaration (_tmp33_, _tmp34_);
	_tmp35_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp36_ = function;
	vala_ccode_file_add_function (_tmp35_, _tmp36_);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_async_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp10_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp11_;
	GEqualFunc _tmp12_;
	GEqualFunc _tmp13_;
	ValaHashMap* _tmp14_;
	gint _tmp15_;
	ValaCCodeParameter* _tmp16_;
	ValaCCodeParameter* _tmp17_;
	gint _tmp18_;
	ValaCCodeParameter* _tmp19_;
	ValaCCodeParameter* _tmp20_;
	ValaMethod* _tmp21_;
	ValaCCodeFile* _tmp22_;
	ValaMethod* _tmp23_;
	ValaMethod* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	ValaMethod* _tmp27_;
	gint _tmp28_;
	ValaCCodeFile* _tmp29_;
	ValaCCodeFile* _tmp30_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s_async", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp10_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp11_ = g_direct_hash;
	_tmp12_ = g_direct_equal;
	_tmp13_ = g_direct_equal;
	_tmp14_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp11_, _tmp12_, _tmp13_);
	cparam_map = _tmp14_;
	_tmp15_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, (gdouble) -1, FALSE);
	_tmp16_ = vala_ccode_parameter_new ("_callback_", "GAsyncReadyCallback");
	_tmp17_ = _tmp16_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp15_), _tmp17_);
	_vala_ccode_node_unref0 (_tmp17_);
	_tmp18_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, -0.9, FALSE);
	_tmp19_ = vala_ccode_parameter_new ("_user_data_", "gpointer");
	_tmp20_ = _tmp19_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp18_), _tmp20_);
	_vala_ccode_node_unref0 (_tmp20_);
	_tmp21_ = m;
	_tmp22_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp21_, _tmp22_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 1);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	_tmp23_ = m;
	_tmp24_ = m;
	_tmp25_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp24_);
	_tmp26_ = _tmp25_;
	_tmp27_ = m;
	_tmp28_ = vala_gd_bus_module_get_dbus_timeout_for_member ((ValaSymbol*) _tmp27_);
	vala_gd_bus_client_module_generate_marshalling (self, _tmp23_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_ASYNC, dbus_iface_name, _tmp26_, _tmp28_);
	_g_free0 (_tmp26_);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp29_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp29_, function);
	_tmp30_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp30_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_finish_dbus_proxy_method (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaMethod* m) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaMethod* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	ValaCCodeFunction* function = NULL;
	ValaCCodeFunction* _tmp8_;
	ValaHashMap* cparam_map = NULL;
	GHashFunc _tmp9_;
	GEqualFunc _tmp10_;
	GEqualFunc _tmp11_;
	ValaHashMap* _tmp12_;
	gint _tmp13_;
	ValaCCodeParameter* _tmp14_;
	ValaCCodeParameter* _tmp15_;
	ValaMethod* _tmp16_;
	ValaCCodeFile* _tmp17_;
	ValaMethod* _tmp18_;
	ValaCCodeFile* _tmp19_;
	ValaCCodeFile* _tmp20_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (m != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = m;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sproxy_%s_finish", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = vala_ccode_function_new (proxy_name, "void");
	function = _tmp8_;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) function, VALA_CCODE_MODIFIERS_STATIC);
	_tmp9_ = g_direct_hash;
	_tmp10_ = g_direct_equal;
	_tmp11_ = g_direct_equal;
	_tmp12_ = vala_hash_map_new (G_TYPE_INT, NULL, NULL, VALA_TYPE_CCODE_PARAMETER, (GBoxedCopyFunc) vala_ccode_node_ref, (GDestroyNotify) vala_ccode_node_unref, _tmp9_, _tmp10_, _tmp11_);
	cparam_map = _tmp12_;
	_tmp13_ = vala_ccode_base_module_get_param_pos ((ValaCCodeBaseModule*) self, 0.1, FALSE);
	_tmp14_ = vala_ccode_parameter_new ("_res_", "GAsyncResult*");
	_tmp15_ = _tmp14_;
	vala_map_set ((ValaMap*) cparam_map, (gpointer) ((gintptr) _tmp13_), _tmp15_);
	_vala_ccode_node_unref0 (_tmp15_);
	_tmp16_ = m;
	_tmp17_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_base_module_generate_cparameters ((ValaCCodeBaseModule*) self, _tmp16_, _tmp17_, (ValaMap*) cparam_map, function, NULL, NULL, NULL, 2);
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, function);
	_tmp18_ = m;
	vala_gd_bus_client_module_generate_marshalling (self, _tmp18_, VALA_GD_BUS_CLIENT_MODULE_CALL_TYPE_FINISH, NULL, NULL, -1);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp19_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function_declaration (_tmp19_, function);
	_tmp20_ = ((ValaCCodeBaseModule*) self)->cfile;
	vala_ccode_file_add_function (_tmp20_, function);
	result = proxy_name;
	_vala_map_unref0 (cparam_map);
	_vala_ccode_node_unref0 (function);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_get (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaProperty* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaDataType* owned_type = NULL;
	ValaProperty* _tmp10_;
	ValaPropertyAccessor* _tmp11_;
	ValaPropertyAccessor* _tmp12_;
	ValaDataType* _tmp13_;
	ValaDataType* _tmp14_;
	ValaDataType* _tmp15_;
	ValaDataType* _tmp16_;
	gboolean _tmp17_ = FALSE;
	ValaDataType* _tmp18_;
	gboolean _tmp19_;
	ValaArrayType* array_type = NULL;
	ValaProperty* _tmp34_;
	ValaPropertyAccessor* _tmp35_;
	ValaPropertyAccessor* _tmp36_;
	ValaDataType* _tmp37_;
	ValaDataType* _tmp38_;
	ValaArrayType* _tmp39_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp40_;
	ValaCCodeFunction* _tmp41_;
	ValaCCodeFunction* _tmp42_;
	ValaCCodeFunction* _tmp43_;
	ValaInterface* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	ValaCCodeParameter* _tmp49_;
	ValaCCodeParameter* _tmp50_;
	ValaProperty* _tmp51_;
	ValaDataType* _tmp52_;
	ValaDataType* _tmp53_;
	gboolean _tmp54_;
	ValaCCodeFunction* _tmp88_;
	ValaCCodeFunction* _tmp89_;
	ValaCCodeFunction* _tmp90_;
	ValaCCodeVariableDeclarator* _tmp91_;
	ValaCCodeVariableDeclarator* _tmp92_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp93_;
	ValaCCodeIdentifier* _tmp94_;
	ValaCCodeFunctionCall* _tmp95_;
	ValaCCodeFunctionCall* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeIdentifier* _tmp98_;
	ValaCCodeIdentifier* _tmp99_;
	ValaCCodeCastExpression* _tmp100_;
	ValaCCodeCastExpression* _tmp101_;
	ValaCCodeFunctionCall* _tmp102_;
	ValaProperty* _tmp103_;
	gchar* _tmp104_;
	gchar* _tmp105_;
	gchar* _tmp106_;
	gchar* _tmp107_;
	ValaCCodeConstant* _tmp108_;
	ValaCCodeConstant* _tmp109_;
	ValaCCodeFunction* _tmp110_;
	ValaCCodeFunction* _tmp111_;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunction* _tmp115_;
	ValaCCodeFunction* _tmp116_;
	ValaCCodeIdentifier* _tmp117_;
	ValaCCodeIdentifier* _tmp118_;
	ValaCCodeUnaryExpression* _tmp119_;
	ValaCCodeUnaryExpression* _tmp120_;
	ValaCCodeFunction* _tmp121_;
	ValaCCodeFunction* _tmp122_;
	ValaCCodeVariableDeclarator* _tmp123_;
	ValaCCodeVariableDeclarator* _tmp124_;
	ValaCCodeFunction* _tmp125_;
	ValaCCodeFunction* _tmp126_;
	ValaCCodeVariableDeclarator* _tmp127_;
	ValaCCodeVariableDeclarator* _tmp128_;
	ValaCCodeFunction* _tmp129_;
	ValaCCodeFunction* _tmp130_;
	ValaCCodeVariableDeclarator* _tmp131_;
	ValaCCodeVariableDeclarator* _tmp132_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp133_;
	ValaCCodeIdentifier* _tmp134_;
	ValaCCodeFunctionCall* _tmp135_;
	ValaCCodeFunctionCall* _tmp136_;
	ValaCCodeFunctionCall* _tmp137_;
	ValaCCodeIdentifier* _tmp138_;
	ValaCCodeIdentifier* _tmp139_;
	ValaCCodeUnaryExpression* _tmp140_;
	ValaCCodeUnaryExpression* _tmp141_;
	ValaCCodeFunctionCall* _tmp142_;
	ValaCCodeIdentifier* _tmp143_;
	ValaCCodeIdentifier* _tmp144_;
	ValaCCodeFunction* _tmp145_;
	ValaCCodeFunction* _tmp146_;
	ValaCCodeFunctionCall* _tmp147_;
	ValaDataType* _tmp148_;
	ValaCCodeIdentifier* _tmp149_;
	ValaCCodeIdentifier* _tmp150_;
	const gchar* _tmp151_;
	gchar* _tmp152_;
	gchar* _tmp153_;
	ValaCCodeConstant* _tmp154_;
	ValaCCodeConstant* _tmp155_;
	ValaDataType* _tmp156_;
	ValaCCodeIdentifier* _tmp157_;
	ValaCCodeIdentifier* _tmp158_;
	ValaProperty* _tmp159_;
	gchar* _tmp160_;
	gchar* _tmp161_;
	gchar* _tmp162_;
	gchar* _tmp163_;
	ValaCCodeConstant* _tmp164_;
	ValaCCodeConstant* _tmp165_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeFunctionCall* _tmp168_;
	ValaCCodeFunctionCall* _tmp169_;
	ValaCCodeFunctionCall* _tmp170_;
	ValaCCodeIdentifier* _tmp171_;
	ValaCCodeIdentifier* _tmp172_;
	ValaCCodeUnaryExpression* _tmp173_;
	ValaCCodeUnaryExpression* _tmp174_;
	ValaCCodeFunction* _tmp175_;
	ValaCCodeFunction* _tmp176_;
	ValaCCodeIdentifier* _tmp177_;
	ValaCCodeIdentifier* _tmp178_;
	ValaCCodeFunctionCall* _tmp179_;
	ValaCCodeIdentifier* _tmp180_;
	ValaCCodeIdentifier* _tmp181_;
	ValaCCodeFunctionCall* _tmp182_;
	ValaCCodeFunctionCall* _tmp183_;
	ValaCCodeIdentifier* _tmp184_;
	ValaCCodeIdentifier* _tmp185_;
	ValaCCodeCastExpression* _tmp186_;
	ValaCCodeCastExpression* _tmp187_;
	ValaCCodeFunctionCall* _tmp188_;
	ValaCCodeConstant* _tmp189_;
	ValaCCodeConstant* _tmp190_;
	ValaCCodeFunctionCall* _tmp191_;
	ValaCCodeIdentifier* _tmp192_;
	ValaCCodeIdentifier* _tmp193_;
	ValaCCodeFunctionCall* _tmp194_;
	ValaCCodeConstant* _tmp195_;
	ValaCCodeConstant* _tmp196_;
	ValaCCodeFunctionCall* _tmp197_;
	ValaProperty* _tmp198_;
	ValaCCodeConstant* _tmp199_;
	ValaCCodeConstant* _tmp200_;
	ValaCCodeFunctionCall* _tmp201_;
	ValaCCodeConstant* _tmp202_;
	ValaCCodeConstant* _tmp203_;
	ValaCCodeFunctionCall* _tmp204_;
	ValaCCodeConstant* _tmp205_;
	ValaCCodeConstant* _tmp206_;
	ValaCCodeFunction* _tmp207_;
	ValaCCodeFunction* _tmp208_;
	ValaCCodeIdentifier* _tmp209_;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeFunctionCall* _tmp211_;
	ValaCCodeFunction* _tmp212_;
	ValaCCodeFunction* _tmp213_;
	ValaCCodeIdentifier* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeUnaryExpression* _tmp216_;
	ValaCCodeUnaryExpression* _tmp217_;
	ValaProperty* _tmp218_;
	ValaDataType* _tmp219_;
	ValaDataType* _tmp220_;
	ValaCCodeFunction* _tmp221_;
	ValaCCodeFunction* _tmp222_;
	ValaCCodeFunctionCall* get_variant = NULL;
	ValaCCodeIdentifier* _tmp223_;
	ValaCCodeIdentifier* _tmp224_;
	ValaCCodeFunctionCall* _tmp225_;
	ValaCCodeFunctionCall* _tmp226_;
	ValaCCodeFunctionCall* _tmp227_;
	ValaCCodeIdentifier* _tmp228_;
	ValaCCodeIdentifier* _tmp229_;
	ValaCCodeFunctionCall* _tmp230_;
	ValaCCodeConstant* _tmp231_;
	ValaCCodeConstant* _tmp232_;
	ValaCCodeFunctionCall* _tmp233_;
	ValaCCodeIdentifier* _tmp234_;
	ValaCCodeIdentifier* _tmp235_;
	ValaCCodeUnaryExpression* _tmp236_;
	ValaCCodeUnaryExpression* _tmp237_;
	ValaCCodeFunction* _tmp238_;
	ValaCCodeFunction* _tmp239_;
	ValaCCodeFunctionCall* _tmp240_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp241_;
	ValaCCodeIdentifier* _tmp242_;
	ValaCCodeFunctionCall* _tmp243_;
	ValaCCodeFunctionCall* _tmp244_;
	ValaCCodeFunctionCall* _tmp245_;
	ValaCCodeIdentifier* _tmp246_;
	ValaCCodeIdentifier* _tmp247_;
	ValaCCodeFunction* _tmp248_;
	ValaCCodeFunction* _tmp249_;
	ValaCCodeFunctionCall* _tmp250_;
	ValaCCodeFunction* _tmp251_;
	ValaCCodeFunction* _tmp252_;
	ValaProperty* _tmp253_;
	ValaDataType* _tmp254_;
	ValaDataType* _tmp255_;
	gboolean _tmp256_;
	gboolean _tmp349_ = FALSE;
	ValaProperty* _tmp350_;
	ValaDataType* _tmp351_;
	ValaDataType* _tmp352_;
	gboolean _tmp353_;
	ValaProperty* _tmp366_;
	ValaDataType* _tmp367_;
	ValaDataType* _tmp368_;
	gboolean _tmp369_;
	ValaCCodeFile* _tmp376_;
	ValaCCodeFunction* _tmp377_;
	ValaCCodeFile* _tmp378_;
	ValaCCodeFunction* _tmp379_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = prop;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sdbus_proxy_get_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = prop;
	_tmp11_ = vala_property_get_get_accessor (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_property_accessor_get_value_type (_tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = vala_data_type_copy (_tmp14_);
	owned_type = _tmp15_;
	_tmp16_ = owned_type;
	vala_data_type_set_value_owned (_tmp16_, TRUE);
	_tmp18_ = owned_type;
	_tmp19_ = vala_data_type_is_disposable (_tmp18_);
	if (_tmp19_) {
		ValaProperty* _tmp20_;
		ValaPropertyAccessor* _tmp21_;
		ValaPropertyAccessor* _tmp22_;
		ValaDataType* _tmp23_;
		ValaDataType* _tmp24_;
		gboolean _tmp25_;
		gboolean _tmp26_;
		_tmp20_ = prop;
		_tmp21_ = vala_property_get_get_accessor (_tmp20_);
		_tmp22_ = _tmp21_;
		_tmp23_ = vala_property_accessor_get_value_type (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp25_ = vala_data_type_get_value_owned (_tmp24_);
		_tmp26_ = _tmp25_;
		_tmp17_ = !_tmp26_;
	} else {
		_tmp17_ = FALSE;
	}
	if (_tmp17_) {
		ValaProperty* _tmp27_;
		ValaPropertyAccessor* _tmp28_;
		ValaPropertyAccessor* _tmp29_;
		ValaDataType* _tmp30_;
		ValaDataType* _tmp31_;
		ValaSourceReference* _tmp32_;
		ValaSourceReference* _tmp33_;
		_tmp27_ = prop;
		_tmp28_ = vala_property_get_get_accessor (_tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = vala_property_accessor_get_value_type (_tmp29_);
		_tmp31_ = _tmp30_;
		_tmp32_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp31_);
		_tmp33_ = _tmp32_;
		vala_report_error (_tmp33_, "Properties used in D-Bus clients require owned get accessor");
	}
	_tmp34_ = prop;
	_tmp35_ = vala_property_get_get_accessor (_tmp34_);
	_tmp36_ = _tmp35_;
	_tmp37_ = vala_property_accessor_get_value_type (_tmp36_);
	_tmp38_ = _tmp37_;
	_tmp39_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp38_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp38_) : NULL);
	array_type = _tmp39_;
	_tmp40_ = proxy_name;
	_tmp41_ = vala_ccode_function_new (_tmp40_, "void");
	function = _tmp41_;
	_tmp42_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp42_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp43_ = function;
	_tmp44_ = iface;
	_tmp45_ = vala_get_ccode_name ((ValaCodeNode*) _tmp44_);
	_tmp46_ = _tmp45_;
	_tmp47_ = g_strdup_printf ("%s*", _tmp46_);
	_tmp48_ = _tmp47_;
	_tmp49_ = vala_ccode_parameter_new ("self", _tmp48_);
	_tmp50_ = _tmp49_;
	vala_ccode_function_add_parameter (_tmp43_, _tmp50_);
	_vala_ccode_node_unref0 (_tmp50_);
	_g_free0 (_tmp48_);
	_g_free0 (_tmp46_);
	_tmp51_ = prop;
	_tmp52_ = vala_property_get_property_type (_tmp51_);
	_tmp53_ = _tmp52_;
	_tmp54_ = vala_data_type_is_real_non_null_struct_type (_tmp53_);
	if (_tmp54_) {
		ValaCCodeFunction* _tmp55_;
		ValaProperty* _tmp56_;
		ValaPropertyAccessor* _tmp57_;
		ValaPropertyAccessor* _tmp58_;
		ValaDataType* _tmp59_;
		ValaDataType* _tmp60_;
		gchar* _tmp61_;
		gchar* _tmp62_;
		gchar* _tmp63_;
		gchar* _tmp64_;
		ValaCCodeParameter* _tmp65_;
		ValaCCodeParameter* _tmp66_;
		_tmp55_ = function;
		_tmp56_ = prop;
		_tmp57_ = vala_property_get_get_accessor (_tmp56_);
		_tmp58_ = _tmp57_;
		_tmp59_ = vala_property_accessor_get_value_type (_tmp58_);
		_tmp60_ = _tmp59_;
		_tmp61_ = vala_get_ccode_name ((ValaCodeNode*) _tmp60_);
		_tmp62_ = _tmp61_;
		_tmp63_ = g_strdup_printf ("%s*", _tmp62_);
		_tmp64_ = _tmp63_;
		_tmp65_ = vala_ccode_parameter_new ("result", _tmp64_);
		_tmp66_ = _tmp65_;
		vala_ccode_function_add_parameter (_tmp55_, _tmp66_);
		_vala_ccode_node_unref0 (_tmp66_);
		_g_free0 (_tmp64_);
		_g_free0 (_tmp62_);
	} else {
		ValaArrayType* _tmp67_;
		ValaCCodeFunction* _tmp80_;
		ValaProperty* _tmp81_;
		ValaPropertyAccessor* _tmp82_;
		ValaPropertyAccessor* _tmp83_;
		ValaDataType* _tmp84_;
		ValaDataType* _tmp85_;
		gchar* _tmp86_;
		gchar* _tmp87_;
		_tmp67_ = array_type;
		if (_tmp67_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp68_ = FALSE;
					_tmp68_ = TRUE;
					while (TRUE) {
						gint _tmp70_;
						ValaArrayType* _tmp71_;
						gint _tmp72_;
						gint _tmp73_;
						ValaCCodeFunction* _tmp74_;
						gint _tmp75_;
						gchar* _tmp76_;
						gchar* _tmp77_;
						ValaCCodeParameter* _tmp78_;
						ValaCCodeParameter* _tmp79_;
						if (!_tmp68_) {
							gint _tmp69_;
							_tmp69_ = dim;
							dim = _tmp69_ + 1;
						}
						_tmp68_ = FALSE;
						_tmp70_ = dim;
						_tmp71_ = array_type;
						_tmp72_ = vala_array_type_get_rank (_tmp71_);
						_tmp73_ = _tmp72_;
						if (!(_tmp70_ <= _tmp73_)) {
							break;
						}
						_tmp74_ = function;
						_tmp75_ = dim;
						_tmp76_ = g_strdup_printf ("result_length%d", _tmp75_);
						_tmp77_ = _tmp76_;
						_tmp78_ = vala_ccode_parameter_new (_tmp77_, "int*");
						_tmp79_ = _tmp78_;
						vala_ccode_function_add_parameter (_tmp74_, _tmp79_);
						_vala_ccode_node_unref0 (_tmp79_);
						_g_free0 (_tmp77_);
					}
				}
			}
		}
		_tmp80_ = function;
		_tmp81_ = prop;
		_tmp82_ = vala_property_get_get_accessor (_tmp81_);
		_tmp83_ = _tmp82_;
		_tmp84_ = vala_property_accessor_get_value_type (_tmp83_);
		_tmp85_ = _tmp84_;
		_tmp86_ = vala_get_ccode_name ((ValaCodeNode*) _tmp85_);
		_tmp87_ = _tmp86_;
		vala_ccode_function_set_return_type (_tmp80_, _tmp87_);
		_g_free0 (_tmp87_);
	}
	_tmp88_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp88_);
	_tmp89_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp90_ = _tmp89_;
	_tmp91_ = vala_ccode_variable_declarator_new ("*_inner_reply", NULL, NULL);
	_tmp92_ = _tmp91_;
	vala_ccode_function_add_declaration (_tmp90_, "GVariant", (ValaCCodeDeclarator*) _tmp92_, 0);
	_vala_ccode_node_unref0 (_tmp92_);
	_tmp93_ = vala_ccode_identifier_new ("g_dbus_proxy_get_cached_property");
	_tmp94_ = _tmp93_;
	_tmp95_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp94_);
	_tmp96_ = _tmp95_;
	_vala_ccode_node_unref0 (_tmp94_);
	ccall = _tmp96_;
	_tmp97_ = ccall;
	_tmp98_ = vala_ccode_identifier_new ("self");
	_tmp99_ = _tmp98_;
	_tmp100_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp99_, "GDBusProxy *");
	_tmp101_ = _tmp100_;
	vala_ccode_function_call_add_argument (_tmp97_, (ValaCCodeExpression*) _tmp101_);
	_vala_ccode_node_unref0 (_tmp101_);
	_vala_ccode_node_unref0 (_tmp99_);
	_tmp102_ = ccall;
	_tmp103_ = prop;
	_tmp104_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp103_);
	_tmp105_ = _tmp104_;
	_tmp106_ = g_strdup_printf ("\"%s\"", _tmp105_);
	_tmp107_ = _tmp106_;
	_tmp108_ = vala_ccode_constant_new (_tmp107_);
	_tmp109_ = _tmp108_;
	vala_ccode_function_call_add_argument (_tmp102_, (ValaCCodeExpression*) _tmp109_);
	_vala_ccode_node_unref0 (_tmp109_);
	_g_free0 (_tmp107_);
	_g_free0 (_tmp105_);
	_tmp110_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp111_ = _tmp110_;
	_tmp112_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp113_ = _tmp112_;
	_tmp114_ = ccall;
	vala_ccode_function_add_assignment (_tmp111_, (ValaCCodeExpression*) _tmp113_, (ValaCCodeExpression*) _tmp114_);
	_vala_ccode_node_unref0 (_tmp113_);
	_tmp115_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp116_ = _tmp115_;
	_tmp117_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp118_ = _tmp117_;
	_tmp119_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp118_);
	_tmp120_ = _tmp119_;
	vala_ccode_function_open_if (_tmp116_, (ValaCCodeExpression*) _tmp120_);
	_vala_ccode_node_unref0 (_tmp120_);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp121_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp122_ = _tmp121_;
	_tmp123_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp124_ = _tmp123_;
	vala_ccode_function_add_declaration (_tmp122_, "GVariant", (ValaCCodeDeclarator*) _tmp124_, 0);
	_vala_ccode_node_unref0 (_tmp124_);
	_tmp125_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp126_ = _tmp125_;
	_tmp127_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp128_ = _tmp127_;
	vala_ccode_function_add_declaration (_tmp126_, "GVariant", (ValaCCodeDeclarator*) _tmp128_, 0);
	_vala_ccode_node_unref0 (_tmp128_);
	_tmp129_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp130_ = _tmp129_;
	_tmp131_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp132_ = _tmp131_;
	vala_ccode_function_add_declaration (_tmp130_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp132_, 0);
	_vala_ccode_node_unref0 (_tmp132_);
	_tmp133_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp134_ = _tmp133_;
	_tmp135_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp134_);
	_tmp136_ = _tmp135_;
	_vala_ccode_node_unref0 (_tmp134_);
	builder_init = _tmp136_;
	_tmp137_ = builder_init;
	_tmp138_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp139_ = _tmp138_;
	_tmp140_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp139_);
	_tmp141_ = _tmp140_;
	vala_ccode_function_call_add_argument (_tmp137_, (ValaCCodeExpression*) _tmp141_);
	_vala_ccode_node_unref0 (_tmp141_);
	_vala_ccode_node_unref0 (_tmp139_);
	_tmp142_ = builder_init;
	_tmp143_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp144_ = _tmp143_;
	vala_ccode_function_call_add_argument (_tmp142_, (ValaCCodeExpression*) _tmp144_);
	_vala_ccode_node_unref0 (_tmp144_);
	_tmp145_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp146_ = _tmp145_;
	_tmp147_ = builder_init;
	vala_ccode_function_add_expression (_tmp146_, (ValaCCodeExpression*) _tmp147_);
	_tmp148_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp149_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp150_ = _tmp149_;
	_tmp151_ = dbus_iface_name;
	_tmp152_ = g_strdup_printf ("\"%s\"", _tmp151_);
	_tmp153_ = _tmp152_;
	_tmp154_ = vala_ccode_constant_new (_tmp153_);
	_tmp155_ = _tmp154_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp148_, (ValaCCodeExpression*) _tmp150_, (ValaCCodeExpression*) _tmp155_, NULL);
	_vala_ccode_node_unref0 (_tmp155_);
	_g_free0 (_tmp153_);
	_vala_ccode_node_unref0 (_tmp150_);
	_tmp156_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp157_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp158_ = _tmp157_;
	_tmp159_ = prop;
	_tmp160_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp159_);
	_tmp161_ = _tmp160_;
	_tmp162_ = g_strdup_printf ("\"%s\"", _tmp161_);
	_tmp163_ = _tmp162_;
	_tmp164_ = vala_ccode_constant_new (_tmp163_);
	_tmp165_ = _tmp164_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp156_, (ValaCCodeExpression*) _tmp158_, (ValaCCodeExpression*) _tmp165_, NULL);
	_vala_ccode_node_unref0 (_tmp165_);
	_g_free0 (_tmp163_);
	_g_free0 (_tmp161_);
	_vala_ccode_node_unref0 (_tmp158_);
	_tmp166_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp167_ = _tmp166_;
	_tmp168_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp167_);
	_tmp169_ = _tmp168_;
	_vala_ccode_node_unref0 (_tmp167_);
	builder_end = _tmp169_;
	_tmp170_ = builder_end;
	_tmp171_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp172_ = _tmp171_;
	_tmp173_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp172_);
	_tmp174_ = _tmp173_;
	vala_ccode_function_call_add_argument (_tmp170_, (ValaCCodeExpression*) _tmp174_);
	_vala_ccode_node_unref0 (_tmp174_);
	_vala_ccode_node_unref0 (_tmp172_);
	_tmp175_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp176_ = _tmp175_;
	_tmp177_ = vala_ccode_identifier_new ("_arguments");
	_tmp178_ = _tmp177_;
	_tmp179_ = builder_end;
	vala_ccode_function_add_assignment (_tmp176_, (ValaCCodeExpression*) _tmp178_, (ValaCCodeExpression*) _tmp179_);
	_vala_ccode_node_unref0 (_tmp178_);
	_tmp180_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp181_ = _tmp180_;
	_tmp182_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp181_);
	_vala_ccode_node_unref0 (ccall);
	ccall = _tmp182_;
	_vala_ccode_node_unref0 (_tmp181_);
	_tmp183_ = ccall;
	_tmp184_ = vala_ccode_identifier_new ("self");
	_tmp185_ = _tmp184_;
	_tmp186_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp185_, "GDBusProxy *");
	_tmp187_ = _tmp186_;
	vala_ccode_function_call_add_argument (_tmp183_, (ValaCCodeExpression*) _tmp187_);
	_vala_ccode_node_unref0 (_tmp187_);
	_vala_ccode_node_unref0 (_tmp185_);
	_tmp188_ = ccall;
	_tmp189_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Get\"");
	_tmp190_ = _tmp189_;
	vala_ccode_function_call_add_argument (_tmp188_, (ValaCCodeExpression*) _tmp190_);
	_vala_ccode_node_unref0 (_tmp190_);
	_tmp191_ = ccall;
	_tmp192_ = vala_ccode_identifier_new ("_arguments");
	_tmp193_ = _tmp192_;
	vala_ccode_function_call_add_argument (_tmp191_, (ValaCCodeExpression*) _tmp193_);
	_vala_ccode_node_unref0 (_tmp193_);
	_tmp194_ = ccall;
	_tmp195_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp196_ = _tmp195_;
	vala_ccode_function_call_add_argument (_tmp194_, (ValaCCodeExpression*) _tmp196_);
	_vala_ccode_node_unref0 (_tmp196_);
	_tmp197_ = ccall;
	_tmp198_ = prop;
	_tmp199_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) _tmp198_);
	_tmp200_ = _tmp199_;
	vala_ccode_function_call_add_argument (_tmp197_, (ValaCCodeExpression*) _tmp200_);
	_vala_ccode_node_unref0 (_tmp200_);
	_tmp201_ = ccall;
	_tmp202_ = vala_ccode_constant_new ("NULL");
	_tmp203_ = _tmp202_;
	vala_ccode_function_call_add_argument (_tmp201_, (ValaCCodeExpression*) _tmp203_);
	_vala_ccode_node_unref0 (_tmp203_);
	_tmp204_ = ccall;
	_tmp205_ = vala_ccode_constant_new ("NULL");
	_tmp206_ = _tmp205_;
	vala_ccode_function_call_add_argument (_tmp204_, (ValaCCodeExpression*) _tmp206_);
	_vala_ccode_node_unref0 (_tmp206_);
	_tmp207_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp208_ = _tmp207_;
	_tmp209_ = vala_ccode_identifier_new ("_reply");
	_tmp210_ = _tmp209_;
	_tmp211_ = ccall;
	vala_ccode_function_add_assignment (_tmp208_, (ValaCCodeExpression*) _tmp210_, (ValaCCodeExpression*) _tmp211_);
	_vala_ccode_node_unref0 (_tmp210_);
	_tmp212_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp213_ = _tmp212_;
	_tmp214_ = vala_ccode_identifier_new ("_reply");
	_tmp215_ = _tmp214_;
	_tmp216_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp215_);
	_tmp217_ = _tmp216_;
	vala_ccode_function_open_if (_tmp213_, (ValaCCodeExpression*) _tmp217_);
	_vala_ccode_node_unref0 (_tmp217_);
	_vala_ccode_node_unref0 (_tmp215_);
	_tmp218_ = prop;
	_tmp219_ = vala_property_get_property_type (_tmp218_);
	_tmp220_ = _tmp219_;
	vala_ccode_base_module_return_default_value ((ValaCCodeBaseModule*) self, _tmp220_);
	_tmp221_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp222_ = _tmp221_;
	vala_ccode_function_close (_tmp222_);
	_tmp223_ = vala_ccode_identifier_new ("g_variant_get");
	_tmp224_ = _tmp223_;
	_tmp225_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp224_);
	_tmp226_ = _tmp225_;
	_vala_ccode_node_unref0 (_tmp224_);
	get_variant = _tmp226_;
	_tmp227_ = get_variant;
	_tmp228_ = vala_ccode_identifier_new ("_reply");
	_tmp229_ = _tmp228_;
	vala_ccode_function_call_add_argument (_tmp227_, (ValaCCodeExpression*) _tmp229_);
	_vala_ccode_node_unref0 (_tmp229_);
	_tmp230_ = get_variant;
	_tmp231_ = vala_ccode_constant_new ("\"(v)\"");
	_tmp232_ = _tmp231_;
	vala_ccode_function_call_add_argument (_tmp230_, (ValaCCodeExpression*) _tmp232_);
	_vala_ccode_node_unref0 (_tmp232_);
	_tmp233_ = get_variant;
	_tmp234_ = vala_ccode_identifier_new ("_inner_reply");
	_tmp235_ = _tmp234_;
	_tmp236_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp235_);
	_tmp237_ = _tmp236_;
	vala_ccode_function_call_add_argument (_tmp233_, (ValaCCodeExpression*) _tmp237_);
	_vala_ccode_node_unref0 (_tmp237_);
	_vala_ccode_node_unref0 (_tmp235_);
	_tmp238_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp239_ = _tmp238_;
	_tmp240_ = get_variant;
	vala_ccode_function_add_expression (_tmp239_, (ValaCCodeExpression*) _tmp240_);
	_tmp241_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp242_ = _tmp241_;
	_tmp243_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp242_);
	_tmp244_ = _tmp243_;
	_vala_ccode_node_unref0 (_tmp242_);
	unref_reply = _tmp244_;
	_tmp245_ = unref_reply;
	_tmp246_ = vala_ccode_identifier_new ("_reply");
	_tmp247_ = _tmp246_;
	vala_ccode_function_call_add_argument (_tmp245_, (ValaCCodeExpression*) _tmp247_);
	_vala_ccode_node_unref0 (_tmp247_);
	_tmp248_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp249_ = _tmp248_;
	_tmp250_ = unref_reply;
	vala_ccode_function_add_expression (_tmp249_, (ValaCCodeExpression*) _tmp250_);
	_tmp251_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp252_ = _tmp251_;
	vala_ccode_function_close (_tmp252_);
	_tmp253_ = prop;
	_tmp254_ = vala_property_get_property_type (_tmp253_);
	_tmp255_ = _tmp254_;
	_tmp256_ = vala_data_type_is_real_non_null_struct_type (_tmp255_);
	if (_tmp256_) {
		ValaCCodeUnaryExpression* target = NULL;
		ValaCCodeIdentifier* _tmp257_;
		ValaCCodeIdentifier* _tmp258_;
		ValaCCodeUnaryExpression* _tmp259_;
		ValaCCodeUnaryExpression* _tmp260_;
		ValaCCodeExpression* _result_ = NULL;
		ValaProperty* _tmp261_;
		ValaPropertyAccessor* _tmp262_;
		ValaPropertyAccessor* _tmp263_;
		ValaDataType* _tmp264_;
		ValaDataType* _tmp265_;
		ValaCCodeIdentifier* _tmp266_;
		ValaCCodeIdentifier* _tmp267_;
		ValaCCodeUnaryExpression* _tmp268_;
		ValaCCodeExpression* _tmp269_;
		ValaCCodeExpression* _tmp270_;
		ValaCCodeFunction* _tmp271_;
		ValaCCodeFunction* _tmp272_;
		ValaCCodeUnaryExpression* _tmp273_;
		ValaCCodeExpression* _tmp274_;
		_tmp257_ = vala_ccode_identifier_new ("result");
		_tmp258_ = _tmp257_;
		_tmp259_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp258_);
		_tmp260_ = _tmp259_;
		_vala_ccode_node_unref0 (_tmp258_);
		target = _tmp260_;
		_tmp261_ = prop;
		_tmp262_ = vala_property_get_get_accessor (_tmp261_);
		_tmp263_ = _tmp262_;
		_tmp264_ = vala_property_accessor_get_value_type (_tmp263_);
		_tmp265_ = _tmp264_;
		_tmp266_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp267_ = _tmp266_;
		_tmp268_ = target;
		_tmp269_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp265_, (ValaCCodeExpression*) _tmp267_, (ValaCCodeExpression*) _tmp268_, NULL, NULL);
		_tmp270_ = _tmp269_;
		_vala_ccode_node_unref0 (_tmp267_);
		_result_ = _tmp270_;
		_tmp271_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp272_ = _tmp271_;
		_tmp273_ = target;
		_tmp274_ = _result_;
		vala_ccode_function_add_assignment (_tmp272_, (ValaCCodeExpression*) _tmp273_, _tmp274_);
		_vala_ccode_node_unref0 (_result_);
		_vala_ccode_node_unref0 (target);
	} else {
		ValaCCodeFunction* _tmp275_;
		ValaCCodeFunction* _tmp276_;
		ValaProperty* _tmp277_;
		ValaPropertyAccessor* _tmp278_;
		ValaPropertyAccessor* _tmp279_;
		ValaDataType* _tmp280_;
		ValaDataType* _tmp281_;
		gchar* _tmp282_;
		gchar* _tmp283_;
		ValaCCodeVariableDeclarator* _tmp284_;
		ValaCCodeVariableDeclarator* _tmp285_;
		ValaProperty* _tmp286_;
		gchar* _tmp287_;
		gchar* _tmp288_;
		gboolean _tmp289_;
		_tmp275_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp276_ = _tmp275_;
		_tmp277_ = prop;
		_tmp278_ = vala_property_get_get_accessor (_tmp277_);
		_tmp279_ = _tmp278_;
		_tmp280_ = vala_property_accessor_get_value_type (_tmp279_);
		_tmp281_ = _tmp280_;
		_tmp282_ = vala_get_ccode_name ((ValaCodeNode*) _tmp281_);
		_tmp283_ = _tmp282_;
		_tmp284_ = vala_ccode_variable_declarator_new ("_result", NULL, NULL);
		_tmp285_ = _tmp284_;
		vala_ccode_function_add_declaration (_tmp276_, _tmp283_, (ValaCCodeDeclarator*) _tmp285_, 0);
		_vala_ccode_node_unref0 (_tmp285_);
		_g_free0 (_tmp283_);
		_tmp286_ = prop;
		_tmp287_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp286_);
		_tmp288_ = _tmp287_;
		_tmp289_ = _tmp288_ != NULL;
		_g_free0 (_tmp288_);
		if (_tmp289_) {
			ValaCCodeFunction* _tmp290_;
			ValaCCodeFunction* _tmp291_;
			ValaCCodeIdentifier* _tmp292_;
			ValaCCodeIdentifier* _tmp293_;
			ValaCCodeIdentifier* _tmp294_;
			ValaCCodeIdentifier* _tmp295_;
			_tmp290_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp291_ = _tmp290_;
			_tmp292_ = vala_ccode_identifier_new ("_result");
			_tmp293_ = _tmp292_;
			_tmp294_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp295_ = _tmp294_;
			vala_ccode_function_add_assignment (_tmp291_, (ValaCCodeExpression*) _tmp293_, (ValaCCodeExpression*) _tmp295_);
			_vala_ccode_node_unref0 (_tmp295_);
			_vala_ccode_node_unref0 (_tmp293_);
		} else {
			ValaArrayType* _tmp296_;
			ValaCCodeExpression* _result_ = NULL;
			ValaProperty* _tmp312_;
			ValaPropertyAccessor* _tmp313_;
			ValaPropertyAccessor* _tmp314_;
			ValaDataType* _tmp315_;
			ValaDataType* _tmp316_;
			ValaCCodeIdentifier* _tmp317_;
			ValaCCodeIdentifier* _tmp318_;
			ValaCCodeIdentifier* _tmp319_;
			ValaCCodeIdentifier* _tmp320_;
			ValaCCodeExpression* _tmp321_;
			ValaCCodeExpression* _tmp322_;
			ValaCCodeFunction* _tmp323_;
			ValaCCodeFunction* _tmp324_;
			ValaCCodeIdentifier* _tmp325_;
			ValaCCodeIdentifier* _tmp326_;
			ValaCCodeExpression* _tmp327_;
			ValaArrayType* _tmp328_;
			_tmp296_ = array_type;
			if (_tmp296_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp297_ = FALSE;
						_tmp297_ = TRUE;
						while (TRUE) {
							gint _tmp299_;
							ValaArrayType* _tmp300_;
							gint _tmp301_;
							gint _tmp302_;
							ValaCCodeFunction* _tmp303_;
							ValaCCodeFunction* _tmp304_;
							gint _tmp305_;
							gchar* _tmp306_;
							gchar* _tmp307_;
							ValaCCodeConstant* _tmp308_;
							ValaCCodeConstant* _tmp309_;
							ValaCCodeVariableDeclarator* _tmp310_;
							ValaCCodeVariableDeclarator* _tmp311_;
							if (!_tmp297_) {
								gint _tmp298_;
								_tmp298_ = dim;
								dim = _tmp298_ + 1;
							}
							_tmp297_ = FALSE;
							_tmp299_ = dim;
							_tmp300_ = array_type;
							_tmp301_ = vala_array_type_get_rank (_tmp300_);
							_tmp302_ = _tmp301_;
							if (!(_tmp299_ <= _tmp302_)) {
								break;
							}
							_tmp303_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp304_ = _tmp303_;
							_tmp305_ = dim;
							_tmp306_ = g_strdup_printf ("_result_length%d", _tmp305_);
							_tmp307_ = _tmp306_;
							_tmp308_ = vala_ccode_constant_new ("0");
							_tmp309_ = _tmp308_;
							_tmp310_ = vala_ccode_variable_declarator_new (_tmp307_, (ValaCCodeExpression*) _tmp309_, NULL);
							_tmp311_ = _tmp310_;
							vala_ccode_function_add_declaration (_tmp304_, "int", (ValaCCodeDeclarator*) _tmp311_, 0);
							_vala_ccode_node_unref0 (_tmp311_);
							_vala_ccode_node_unref0 (_tmp309_);
							_g_free0 (_tmp307_);
						}
					}
				}
			}
			_tmp312_ = prop;
			_tmp313_ = vala_property_get_get_accessor (_tmp312_);
			_tmp314_ = _tmp313_;
			_tmp315_ = vala_property_accessor_get_value_type (_tmp314_);
			_tmp316_ = _tmp315_;
			_tmp317_ = vala_ccode_identifier_new ("_inner_reply");
			_tmp318_ = _tmp317_;
			_tmp319_ = vala_ccode_identifier_new ("_result");
			_tmp320_ = _tmp319_;
			_tmp321_ = vala_ccode_base_module_deserialize_expression ((ValaCCodeBaseModule*) self, _tmp316_, (ValaCCodeExpression*) _tmp318_, (ValaCCodeExpression*) _tmp320_, NULL, NULL);
			_tmp322_ = _tmp321_;
			_vala_ccode_node_unref0 (_tmp320_);
			_vala_ccode_node_unref0 (_tmp318_);
			_result_ = _tmp322_;
			_tmp323_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
			_tmp324_ = _tmp323_;
			_tmp325_ = vala_ccode_identifier_new ("_result");
			_tmp326_ = _tmp325_;
			_tmp327_ = _result_;
			vala_ccode_function_add_assignment (_tmp324_, (ValaCCodeExpression*) _tmp326_, _tmp327_);
			_vala_ccode_node_unref0 (_tmp326_);
			_tmp328_ = array_type;
			if (_tmp328_ != NULL) {
				{
					gint dim = 0;
					dim = 1;
					{
						gboolean _tmp329_ = FALSE;
						_tmp329_ = TRUE;
						while (TRUE) {
							gint _tmp331_;
							ValaArrayType* _tmp332_;
							gint _tmp333_;
							gint _tmp334_;
							ValaCCodeFunction* _tmp335_;
							ValaCCodeFunction* _tmp336_;
							gint _tmp337_;
							gchar* _tmp338_;
							gchar* _tmp339_;
							ValaCCodeIdentifier* _tmp340_;
							ValaCCodeIdentifier* _tmp341_;
							ValaCCodeUnaryExpression* _tmp342_;
							ValaCCodeUnaryExpression* _tmp343_;
							gint _tmp344_;
							gchar* _tmp345_;
							gchar* _tmp346_;
							ValaCCodeIdentifier* _tmp347_;
							ValaCCodeIdentifier* _tmp348_;
							if (!_tmp329_) {
								gint _tmp330_;
								_tmp330_ = dim;
								dim = _tmp330_ + 1;
							}
							_tmp329_ = FALSE;
							_tmp331_ = dim;
							_tmp332_ = array_type;
							_tmp333_ = vala_array_type_get_rank (_tmp332_);
							_tmp334_ = _tmp333_;
							if (!(_tmp331_ <= _tmp334_)) {
								break;
							}
							_tmp335_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
							_tmp336_ = _tmp335_;
							_tmp337_ = dim;
							_tmp338_ = g_strdup_printf ("result_length%d", _tmp337_);
							_tmp339_ = _tmp338_;
							_tmp340_ = vala_ccode_identifier_new (_tmp339_);
							_tmp341_ = _tmp340_;
							_tmp342_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp341_);
							_tmp343_ = _tmp342_;
							_tmp344_ = dim;
							_tmp345_ = g_strdup_printf ("_result_length%d", _tmp344_);
							_tmp346_ = _tmp345_;
							_tmp347_ = vala_ccode_identifier_new (_tmp346_);
							_tmp348_ = _tmp347_;
							vala_ccode_function_add_assignment (_tmp336_, (ValaCCodeExpression*) _tmp343_, (ValaCCodeExpression*) _tmp348_);
							_vala_ccode_node_unref0 (_tmp348_);
							_g_free0 (_tmp346_);
							_vala_ccode_node_unref0 (_tmp343_);
							_vala_ccode_node_unref0 (_tmp341_);
							_g_free0 (_tmp339_);
						}
					}
				}
			}
			_vala_ccode_node_unref0 (_result_);
		}
	}
	_tmp350_ = prop;
	_tmp351_ = vala_property_get_property_type (_tmp350_);
	_tmp352_ = _tmp351_;
	_tmp353_ = vala_data_type_is_real_non_null_struct_type (_tmp352_);
	if (_tmp353_) {
		_tmp349_ = TRUE;
	} else {
		ValaProperty* _tmp354_;
		gchar* _tmp355_;
		gchar* _tmp356_;
		_tmp354_ = prop;
		_tmp355_ = vala_gvariant_module_get_dbus_signature ((ValaSymbol*) _tmp354_);
		_tmp356_ = _tmp355_;
		_tmp349_ = _tmp356_ == NULL;
		_g_free0 (_tmp356_);
	}
	if (_tmp349_) {
		ValaCCodeIdentifier* _tmp357_;
		ValaCCodeIdentifier* _tmp358_;
		ValaCCodeFunctionCall* _tmp359_;
		ValaCCodeFunctionCall* _tmp360_;
		ValaCCodeIdentifier* _tmp361_;
		ValaCCodeIdentifier* _tmp362_;
		ValaCCodeFunction* _tmp363_;
		ValaCCodeFunction* _tmp364_;
		ValaCCodeFunctionCall* _tmp365_;
		_tmp357_ = vala_ccode_identifier_new ("g_variant_unref");
		_tmp358_ = _tmp357_;
		_tmp359_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp358_);
		_vala_ccode_node_unref0 (unref_reply);
		unref_reply = _tmp359_;
		_vala_ccode_node_unref0 (_tmp358_);
		_tmp360_ = unref_reply;
		_tmp361_ = vala_ccode_identifier_new ("_inner_reply");
		_tmp362_ = _tmp361_;
		vala_ccode_function_call_add_argument (_tmp360_, (ValaCCodeExpression*) _tmp362_);
		_vala_ccode_node_unref0 (_tmp362_);
		_tmp363_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp364_ = _tmp363_;
		_tmp365_ = unref_reply;
		vala_ccode_function_add_expression (_tmp364_, (ValaCCodeExpression*) _tmp365_);
	}
	_tmp366_ = prop;
	_tmp367_ = vala_property_get_property_type (_tmp366_);
	_tmp368_ = _tmp367_;
	_tmp369_ = vala_data_type_is_real_non_null_struct_type (_tmp368_);
	if (_tmp369_) {
		ValaCCodeFunction* _tmp370_;
		ValaCCodeFunction* _tmp371_;
		_tmp370_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp371_ = _tmp370_;
		vala_ccode_function_add_return (_tmp371_, NULL);
	} else {
		ValaCCodeFunction* _tmp372_;
		ValaCCodeFunction* _tmp373_;
		ValaCCodeIdentifier* _tmp374_;
		ValaCCodeIdentifier* _tmp375_;
		_tmp372_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
		_tmp373_ = _tmp372_;
		_tmp374_ = vala_ccode_identifier_new ("_result");
		_tmp375_ = _tmp374_;
		vala_ccode_function_add_return (_tmp373_, (ValaCCodeExpression*) _tmp375_);
		_vala_ccode_node_unref0 (_tmp375_);
	}
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp376_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp377_ = function;
	vala_ccode_file_add_function_declaration (_tmp376_, _tmp377_);
	_tmp378_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp379_ = function;
	vala_ccode_file_add_function (_tmp378_, _tmp379_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (get_variant);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_vala_code_node_unref0 (owned_type);
	_g_free0 (dbus_iface_name);
	return result;
}


static gchar* vala_gd_bus_client_module_generate_dbus_proxy_property_set (ValaGDBusClientModule* self, ValaInterface* main_iface, ValaInterface* iface, ValaProperty* prop) {
	gchar* result = NULL;
	gchar* proxy_name = NULL;
	ValaInterface* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	ValaProperty* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* dbus_iface_name = NULL;
	ValaInterface* _tmp8_;
	gchar* _tmp9_;
	ValaArrayType* array_type = NULL;
	ValaProperty* _tmp10_;
	ValaPropertyAccessor* _tmp11_;
	ValaPropertyAccessor* _tmp12_;
	ValaDataType* _tmp13_;
	ValaDataType* _tmp14_;
	ValaArrayType* _tmp15_;
	ValaCCodeFunction* function = NULL;
	const gchar* _tmp16_;
	ValaCCodeFunction* _tmp17_;
	ValaCCodeFunction* _tmp18_;
	ValaCCodeFunction* _tmp19_;
	ValaInterface* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	ValaCCodeParameter* _tmp25_;
	ValaCCodeParameter* _tmp26_;
	ValaProperty* _tmp27_;
	ValaDataType* _tmp28_;
	ValaDataType* _tmp29_;
	gboolean _tmp30_;
	ValaCCodeFunction* _tmp66_;
	ValaCCodeFunction* _tmp67_;
	ValaCCodeFunction* _tmp68_;
	ValaCCodeVariableDeclarator* _tmp69_;
	ValaCCodeVariableDeclarator* _tmp70_;
	ValaCCodeFunction* _tmp71_;
	ValaCCodeFunction* _tmp72_;
	ValaCCodeVariableDeclarator* _tmp73_;
	ValaCCodeVariableDeclarator* _tmp74_;
	ValaCCodeFunction* _tmp75_;
	ValaCCodeFunction* _tmp76_;
	ValaCCodeVariableDeclarator* _tmp77_;
	ValaCCodeVariableDeclarator* _tmp78_;
	ValaCCodeFunctionCall* builder_init = NULL;
	ValaCCodeIdentifier* _tmp79_;
	ValaCCodeIdentifier* _tmp80_;
	ValaCCodeFunctionCall* _tmp81_;
	ValaCCodeFunctionCall* _tmp82_;
	ValaCCodeFunctionCall* _tmp83_;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeIdentifier* _tmp85_;
	ValaCCodeUnaryExpression* _tmp86_;
	ValaCCodeUnaryExpression* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaCCodeIdentifier* _tmp89_;
	ValaCCodeIdentifier* _tmp90_;
	ValaCCodeFunction* _tmp91_;
	ValaCCodeFunction* _tmp92_;
	ValaCCodeFunctionCall* _tmp93_;
	ValaDataType* _tmp94_;
	ValaCCodeIdentifier* _tmp95_;
	ValaCCodeIdentifier* _tmp96_;
	const gchar* _tmp97_;
	gchar* _tmp98_;
	gchar* _tmp99_;
	ValaCCodeConstant* _tmp100_;
	ValaCCodeConstant* _tmp101_;
	ValaDataType* _tmp102_;
	ValaCCodeIdentifier* _tmp103_;
	ValaCCodeIdentifier* _tmp104_;
	ValaProperty* _tmp105_;
	gchar* _tmp106_;
	gchar* _tmp107_;
	gchar* _tmp108_;
	gchar* _tmp109_;
	ValaCCodeConstant* _tmp110_;
	ValaCCodeConstant* _tmp111_;
	ValaCCodeFunctionCall* builder_open = NULL;
	ValaCCodeIdentifier* _tmp112_;
	ValaCCodeIdentifier* _tmp113_;
	ValaCCodeFunctionCall* _tmp114_;
	ValaCCodeFunctionCall* _tmp115_;
	ValaCCodeFunctionCall* _tmp116_;
	ValaCCodeIdentifier* _tmp117_;
	ValaCCodeIdentifier* _tmp118_;
	ValaCCodeUnaryExpression* _tmp119_;
	ValaCCodeUnaryExpression* _tmp120_;
	ValaCCodeFunctionCall* _tmp121_;
	ValaCCodeIdentifier* _tmp122_;
	ValaCCodeIdentifier* _tmp123_;
	ValaCCodeFunction* _tmp124_;
	ValaCCodeFunction* _tmp125_;
	ValaCCodeFunctionCall* _tmp126_;
	ValaProperty* _tmp127_;
	ValaDataType* _tmp128_;
	ValaDataType* _tmp129_;
	gboolean _tmp130_;
	ValaCCodeFunctionCall* builder_close = NULL;
	ValaCCodeIdentifier* _tmp153_;
	ValaCCodeIdentifier* _tmp154_;
	ValaCCodeFunctionCall* _tmp155_;
	ValaCCodeFunctionCall* _tmp156_;
	ValaCCodeIdentifier* _tmp157_;
	ValaCCodeIdentifier* _tmp158_;
	ValaCCodeUnaryExpression* _tmp159_;
	ValaCCodeUnaryExpression* _tmp160_;
	ValaCCodeFunction* _tmp161_;
	ValaCCodeFunction* _tmp162_;
	ValaCCodeFunctionCall* builder_end = NULL;
	ValaCCodeIdentifier* _tmp163_;
	ValaCCodeIdentifier* _tmp164_;
	ValaCCodeFunctionCall* _tmp165_;
	ValaCCodeFunctionCall* _tmp166_;
	ValaCCodeIdentifier* _tmp167_;
	ValaCCodeIdentifier* _tmp168_;
	ValaCCodeUnaryExpression* _tmp169_;
	ValaCCodeUnaryExpression* _tmp170_;
	ValaCCodeFunction* _tmp171_;
	ValaCCodeFunction* _tmp172_;
	ValaCCodeIdentifier* _tmp173_;
	ValaCCodeIdentifier* _tmp174_;
	ValaCCodeFunctionCall* ccall = NULL;
	ValaCCodeIdentifier* _tmp175_;
	ValaCCodeIdentifier* _tmp176_;
	ValaCCodeFunctionCall* _tmp177_;
	ValaCCodeFunctionCall* _tmp178_;
	ValaCCodeIdentifier* _tmp179_;
	ValaCCodeIdentifier* _tmp180_;
	ValaCCodeCastExpression* _tmp181_;
	ValaCCodeCastExpression* _tmp182_;
	ValaCCodeConstant* _tmp183_;
	ValaCCodeConstant* _tmp184_;
	ValaCCodeIdentifier* _tmp185_;
	ValaCCodeIdentifier* _tmp186_;
	ValaCCodeConstant* _tmp187_;
	ValaCCodeConstant* _tmp188_;
	ValaProperty* _tmp189_;
	ValaCCodeConstant* _tmp190_;
	ValaCCodeConstant* _tmp191_;
	ValaCCodeConstant* _tmp192_;
	ValaCCodeConstant* _tmp193_;
	ValaCCodeConstant* _tmp194_;
	ValaCCodeConstant* _tmp195_;
	ValaCCodeFunction* _tmp196_;
	ValaCCodeFunction* _tmp197_;
	ValaCCodeIdentifier* _tmp198_;
	ValaCCodeIdentifier* _tmp199_;
	ValaCCodeFunction* _tmp200_;
	ValaCCodeFunction* _tmp201_;
	ValaCCodeIdentifier* _tmp202_;
	ValaCCodeIdentifier* _tmp203_;
	ValaCCodeUnaryExpression* _tmp204_;
	ValaCCodeUnaryExpression* _tmp205_;
	ValaCCodeFunction* _tmp206_;
	ValaCCodeFunction* _tmp207_;
	ValaCCodeFunction* _tmp208_;
	ValaCCodeFunction* _tmp209_;
	ValaCCodeFunctionCall* unref_reply = NULL;
	ValaCCodeIdentifier* _tmp210_;
	ValaCCodeIdentifier* _tmp211_;
	ValaCCodeFunctionCall* _tmp212_;
	ValaCCodeFunctionCall* _tmp213_;
	ValaCCodeIdentifier* _tmp214_;
	ValaCCodeIdentifier* _tmp215_;
	ValaCCodeFunction* _tmp216_;
	ValaCCodeFunction* _tmp217_;
	ValaCCodeFile* _tmp218_;
	ValaCCodeFunction* _tmp219_;
	ValaCCodeFile* _tmp220_;
	ValaCCodeFunction* _tmp221_;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (main_iface != NULL, NULL);
	g_return_val_if_fail (iface != NULL, NULL);
	g_return_val_if_fail (prop != NULL, NULL);
	_tmp0_ = main_iface;
	_tmp1_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = prop;
	_tmp4_ = vala_symbol_get_name ((ValaSymbol*) _tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("%sdbus_proxy_set_%s", _tmp2_, _tmp5_);
	_tmp7_ = _tmp6_;
	_g_free0 (_tmp2_);
	proxy_name = _tmp7_;
	_tmp8_ = iface;
	_tmp9_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp8_);
	dbus_iface_name = _tmp9_;
	_tmp10_ = prop;
	_tmp11_ = vala_property_get_set_accessor (_tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = vala_property_accessor_get_value_type (_tmp12_);
	_tmp14_ = _tmp13_;
	_tmp15_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, VALA_TYPE_ARRAY_TYPE) ? ((ValaArrayType*) _tmp14_) : NULL);
	array_type = _tmp15_;
	_tmp16_ = proxy_name;
	_tmp17_ = vala_ccode_function_new (_tmp16_, "void");
	function = _tmp17_;
	_tmp18_ = function;
	vala_ccode_node_set_modifiers ((ValaCCodeNode*) _tmp18_, VALA_CCODE_MODIFIERS_STATIC);
	_tmp19_ = function;
	_tmp20_ = iface;
	_tmp21_ = vala_get_ccode_name ((ValaCodeNode*) _tmp20_);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strdup_printf ("%s*", _tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = vala_ccode_parameter_new ("self", _tmp24_);
	_tmp26_ = _tmp25_;
	vala_ccode_function_add_parameter (_tmp19_, _tmp26_);
	_vala_ccode_node_unref0 (_tmp26_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_tmp27_ = prop;
	_tmp28_ = vala_property_get_property_type (_tmp27_);
	_tmp29_ = _tmp28_;
	_tmp30_ = vala_data_type_is_real_non_null_struct_type (_tmp29_);
	if (_tmp30_) {
		ValaCCodeFunction* _tmp31_;
		ValaProperty* _tmp32_;
		ValaPropertyAccessor* _tmp33_;
		ValaPropertyAccessor* _tmp34_;
		ValaDataType* _tmp35_;
		ValaDataType* _tmp36_;
		gchar* _tmp37_;
		gchar* _tmp38_;
		gchar* _tmp39_;
		gchar* _tmp40_;
		ValaCCodeParameter* _tmp41_;
		ValaCCodeParameter* _tmp42_;
		_tmp31_ = function;
		_tmp32_ = prop;
		_tmp33_ = vala_property_get_set_accessor (_tmp32_);
		_tmp34_ = _tmp33_;
		_tmp35_ = vala_property_accessor_get_value_type (_tmp34_);
		_tmp36_ = _tmp35_;
		_tmp37_ = vala_get_ccode_name ((ValaCodeNode*) _tmp36_);
		_tmp38_ = _tmp37_;
		_tmp39_ = g_strdup_printf ("%s*", _tmp38_);
		_tmp40_ = _tmp39_;
		_tmp41_ = vala_ccode_parameter_new ("value", _tmp40_);
		_tmp42_ = _tmp41_;
		vala_ccode_function_add_parameter (_tmp31_, _tmp42_);
		_vala_ccode_node_unref0 (_tmp42_);
		_g_free0 (_tmp40_);
		_g_free0 (_tmp38_);
	} else {
		ValaCCodeFunction* _tmp43_;
		ValaProperty* _tmp44_;
		ValaPropertyAccessor* _tmp45_;
		ValaPropertyAccessor* _tmp46_;
		ValaDataType* _tmp47_;
		ValaDataType* _tmp48_;
		gchar* _tmp49_;
		gchar* _tmp50_;
		ValaCCodeParameter* _tmp51_;
		ValaCCodeParameter* _tmp52_;
		ValaArrayType* _tmp53_;
		_tmp43_ = function;
		_tmp44_ = prop;
		_tmp45_ = vala_property_get_set_accessor (_tmp44_);
		_tmp46_ = _tmp45_;
		_tmp47_ = vala_property_accessor_get_value_type (_tmp46_);
		_tmp48_ = _tmp47_;
		_tmp49_ = vala_get_ccode_name ((ValaCodeNode*) _tmp48_);
		_tmp50_ = _tmp49_;
		_tmp51_ = vala_ccode_parameter_new ("value", _tmp50_);
		_tmp52_ = _tmp51_;
		vala_ccode_function_add_parameter (_tmp43_, _tmp52_);
		_vala_ccode_node_unref0 (_tmp52_);
		_g_free0 (_tmp50_);
		_tmp53_ = array_type;
		if (_tmp53_ != NULL) {
			{
				gint dim = 0;
				dim = 1;
				{
					gboolean _tmp54_ = FALSE;
					_tmp54_ = TRUE;
					while (TRUE) {
						gint _tmp56_;
						ValaArrayType* _tmp57_;
						gint _tmp58_;
						gint _tmp59_;
						ValaCCodeFunction* _tmp60_;
						gint _tmp61_;
						gchar* _tmp62_;
						gchar* _tmp63_;
						ValaCCodeParameter* _tmp64_;
						ValaCCodeParameter* _tmp65_;
						if (!_tmp54_) {
							gint _tmp55_;
							_tmp55_ = dim;
							dim = _tmp55_ + 1;
						}
						_tmp54_ = FALSE;
						_tmp56_ = dim;
						_tmp57_ = array_type;
						_tmp58_ = vala_array_type_get_rank (_tmp57_);
						_tmp59_ = _tmp58_;
						if (!(_tmp56_ <= _tmp59_)) {
							break;
						}
						_tmp60_ = function;
						_tmp61_ = dim;
						_tmp62_ = g_strdup_printf ("value_length%d", _tmp61_);
						_tmp63_ = _tmp62_;
						_tmp64_ = vala_ccode_parameter_new (_tmp63_, "int");
						_tmp65_ = _tmp64_;
						vala_ccode_function_add_parameter (_tmp60_, _tmp65_);
						_vala_ccode_node_unref0 (_tmp65_);
						_g_free0 (_tmp63_);
					}
				}
			}
		}
	}
	_tmp66_ = function;
	vala_ccode_base_module_push_function ((ValaCCodeBaseModule*) self, _tmp66_);
	_tmp67_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp68_ = _tmp67_;
	_tmp69_ = vala_ccode_variable_declarator_new ("*_arguments", NULL, NULL);
	_tmp70_ = _tmp69_;
	vala_ccode_function_add_declaration (_tmp68_, "GVariant", (ValaCCodeDeclarator*) _tmp70_, 0);
	_vala_ccode_node_unref0 (_tmp70_);
	_tmp71_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp72_ = _tmp71_;
	_tmp73_ = vala_ccode_variable_declarator_new ("*_reply", NULL, NULL);
	_tmp74_ = _tmp73_;
	vala_ccode_function_add_declaration (_tmp72_, "GVariant", (ValaCCodeDeclarator*) _tmp74_, 0);
	_vala_ccode_node_unref0 (_tmp74_);
	_tmp75_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp76_ = _tmp75_;
	_tmp77_ = vala_ccode_variable_declarator_new ("_arguments_builder", NULL, NULL);
	_tmp78_ = _tmp77_;
	vala_ccode_function_add_declaration (_tmp76_, "GVariantBuilder", (ValaCCodeDeclarator*) _tmp78_, 0);
	_vala_ccode_node_unref0 (_tmp78_);
	_tmp79_ = vala_ccode_identifier_new ("g_variant_builder_init");
	_tmp80_ = _tmp79_;
	_tmp81_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp80_);
	_tmp82_ = _tmp81_;
	_vala_ccode_node_unref0 (_tmp80_);
	builder_init = _tmp82_;
	_tmp83_ = builder_init;
	_tmp84_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp85_ = _tmp84_;
	_tmp86_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp85_);
	_tmp87_ = _tmp86_;
	vala_ccode_function_call_add_argument (_tmp83_, (ValaCCodeExpression*) _tmp87_);
	_vala_ccode_node_unref0 (_tmp87_);
	_vala_ccode_node_unref0 (_tmp85_);
	_tmp88_ = builder_init;
	_tmp89_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_TUPLE");
	_tmp90_ = _tmp89_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp90_);
	_vala_ccode_node_unref0 (_tmp90_);
	_tmp91_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp92_ = _tmp91_;
	_tmp93_ = builder_init;
	vala_ccode_function_add_expression (_tmp92_, (ValaCCodeExpression*) _tmp93_);
	_tmp94_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp95_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp96_ = _tmp95_;
	_tmp97_ = dbus_iface_name;
	_tmp98_ = g_strdup_printf ("\"%s\"", _tmp97_);
	_tmp99_ = _tmp98_;
	_tmp100_ = vala_ccode_constant_new (_tmp99_);
	_tmp101_ = _tmp100_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp94_, (ValaCCodeExpression*) _tmp96_, (ValaCCodeExpression*) _tmp101_, NULL);
	_vala_ccode_node_unref0 (_tmp101_);
	_g_free0 (_tmp99_);
	_vala_ccode_node_unref0 (_tmp96_);
	_tmp102_ = ((ValaCCodeBaseModule*) self)->string_type;
	_tmp103_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp104_ = _tmp103_;
	_tmp105_ = prop;
	_tmp106_ = vala_gd_bus_module_get_dbus_name_for_member ((ValaSymbol*) _tmp105_);
	_tmp107_ = _tmp106_;
	_tmp108_ = g_strdup_printf ("\"%s\"", _tmp107_);
	_tmp109_ = _tmp108_;
	_tmp110_ = vala_ccode_constant_new (_tmp109_);
	_tmp111_ = _tmp110_;
	vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp102_, (ValaCCodeExpression*) _tmp104_, (ValaCCodeExpression*) _tmp111_, NULL);
	_vala_ccode_node_unref0 (_tmp111_);
	_g_free0 (_tmp109_);
	_g_free0 (_tmp107_);
	_vala_ccode_node_unref0 (_tmp104_);
	_tmp112_ = vala_ccode_identifier_new ("g_variant_builder_open");
	_tmp113_ = _tmp112_;
	_tmp114_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp113_);
	_tmp115_ = _tmp114_;
	_vala_ccode_node_unref0 (_tmp113_);
	builder_open = _tmp115_;
	_tmp116_ = builder_open;
	_tmp117_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp118_ = _tmp117_;
	_tmp119_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp118_);
	_tmp120_ = _tmp119_;
	vala_ccode_function_call_add_argument (_tmp116_, (ValaCCodeExpression*) _tmp120_);
	_vala_ccode_node_unref0 (_tmp120_);
	_vala_ccode_node_unref0 (_tmp118_);
	_tmp121_ = builder_open;
	_tmp122_ = vala_ccode_identifier_new ("G_VARIANT_TYPE_VARIANT");
	_tmp123_ = _tmp122_;
	vala_ccode_function_call_add_argument (_tmp121_, (ValaCCodeExpression*) _tmp123_);
	_vala_ccode_node_unref0 (_tmp123_);
	_tmp124_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp125_ = _tmp124_;
	_tmp126_ = builder_open;
	vala_ccode_function_add_expression (_tmp125_, (ValaCCodeExpression*) _tmp126_);
	_tmp127_ = prop;
	_tmp128_ = vala_property_get_property_type (_tmp127_);
	_tmp129_ = _tmp128_;
	_tmp130_ = vala_data_type_is_real_non_null_struct_type (_tmp129_);
	if (_tmp130_) {
		ValaProperty* _tmp131_;
		ValaPropertyAccessor* _tmp132_;
		ValaPropertyAccessor* _tmp133_;
		ValaDataType* _tmp134_;
		ValaDataType* _tmp135_;
		ValaCCodeIdentifier* _tmp136_;
		ValaCCodeIdentifier* _tmp137_;
		ValaCCodeIdentifier* _tmp138_;
		ValaCCodeIdentifier* _tmp139_;
		ValaCCodeUnaryExpression* _tmp140_;
		ValaCCodeUnaryExpression* _tmp141_;
		ValaProperty* _tmp142_;
		_tmp131_ = prop;
		_tmp132_ = vala_property_get_set_accessor (_tmp131_);
		_tmp133_ = _tmp132_;
		_tmp134_ = vala_property_accessor_get_value_type (_tmp133_);
		_tmp135_ = _tmp134_;
		_tmp136_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp137_ = _tmp136_;
		_tmp138_ = vala_ccode_identifier_new ("value");
		_tmp139_ = _tmp138_;
		_tmp140_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_POINTER_INDIRECTION, (ValaCCodeExpression*) _tmp139_);
		_tmp141_ = _tmp140_;
		_tmp142_ = prop;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp135_, (ValaCCodeExpression*) _tmp137_, (ValaCCodeExpression*) _tmp141_, (ValaSymbol*) _tmp142_);
		_vala_ccode_node_unref0 (_tmp141_);
		_vala_ccode_node_unref0 (_tmp139_);
		_vala_ccode_node_unref0 (_tmp137_);
	} else {
		ValaProperty* _tmp143_;
		ValaPropertyAccessor* _tmp144_;
		ValaPropertyAccessor* _tmp145_;
		ValaDataType* _tmp146_;
		ValaDataType* _tmp147_;
		ValaCCodeIdentifier* _tmp148_;
		ValaCCodeIdentifier* _tmp149_;
		ValaCCodeIdentifier* _tmp150_;
		ValaCCodeIdentifier* _tmp151_;
		ValaProperty* _tmp152_;
		_tmp143_ = prop;
		_tmp144_ = vala_property_get_set_accessor (_tmp143_);
		_tmp145_ = _tmp144_;
		_tmp146_ = vala_property_accessor_get_value_type (_tmp145_);
		_tmp147_ = _tmp146_;
		_tmp148_ = vala_ccode_identifier_new ("_arguments_builder");
		_tmp149_ = _tmp148_;
		_tmp150_ = vala_ccode_identifier_new ("value");
		_tmp151_ = _tmp150_;
		_tmp152_ = prop;
		vala_gvariant_module_write_expression ((ValaGVariantModule*) self, _tmp147_, (ValaCCodeExpression*) _tmp149_, (ValaCCodeExpression*) _tmp151_, (ValaSymbol*) _tmp152_);
		_vala_ccode_node_unref0 (_tmp151_);
		_vala_ccode_node_unref0 (_tmp149_);
	}
	_tmp153_ = vala_ccode_identifier_new ("g_variant_builder_close");
	_tmp154_ = _tmp153_;
	_tmp155_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp154_);
	_tmp156_ = _tmp155_;
	_vala_ccode_node_unref0 (_tmp154_);
	builder_close = _tmp156_;
	_tmp157_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp158_ = _tmp157_;
	_tmp159_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp158_);
	_tmp160_ = _tmp159_;
	vala_ccode_function_call_add_argument (builder_close, (ValaCCodeExpression*) _tmp160_);
	_vala_ccode_node_unref0 (_tmp160_);
	_vala_ccode_node_unref0 (_tmp158_);
	_tmp161_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp162_ = _tmp161_;
	vala_ccode_function_add_expression (_tmp162_, (ValaCCodeExpression*) builder_close);
	_tmp163_ = vala_ccode_identifier_new ("g_variant_builder_end");
	_tmp164_ = _tmp163_;
	_tmp165_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp164_);
	_tmp166_ = _tmp165_;
	_vala_ccode_node_unref0 (_tmp164_);
	builder_end = _tmp166_;
	_tmp167_ = vala_ccode_identifier_new ("_arguments_builder");
	_tmp168_ = _tmp167_;
	_tmp169_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, (ValaCCodeExpression*) _tmp168_);
	_tmp170_ = _tmp169_;
	vala_ccode_function_call_add_argument (builder_end, (ValaCCodeExpression*) _tmp170_);
	_vala_ccode_node_unref0 (_tmp170_);
	_vala_ccode_node_unref0 (_tmp168_);
	_tmp171_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp172_ = _tmp171_;
	_tmp173_ = vala_ccode_identifier_new ("_arguments");
	_tmp174_ = _tmp173_;
	vala_ccode_function_add_assignment (_tmp172_, (ValaCCodeExpression*) _tmp174_, (ValaCCodeExpression*) builder_end);
	_vala_ccode_node_unref0 (_tmp174_);
	_tmp175_ = vala_ccode_identifier_new ("g_dbus_proxy_call_sync");
	_tmp176_ = _tmp175_;
	_tmp177_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp176_);
	_tmp178_ = _tmp177_;
	_vala_ccode_node_unref0 (_tmp176_);
	ccall = _tmp178_;
	_tmp179_ = vala_ccode_identifier_new ("self");
	_tmp180_ = _tmp179_;
	_tmp181_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp180_, "GDBusProxy *");
	_tmp182_ = _tmp181_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp182_);
	_vala_ccode_node_unref0 (_tmp182_);
	_vala_ccode_node_unref0 (_tmp180_);
	_tmp183_ = vala_ccode_constant_new ("\"org.freedesktop.DBus.Properties.Set\"");
	_tmp184_ = _tmp183_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp184_);
	_vala_ccode_node_unref0 (_tmp184_);
	_tmp185_ = vala_ccode_identifier_new ("_arguments");
	_tmp186_ = _tmp185_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp186_);
	_vala_ccode_node_unref0 (_tmp186_);
	_tmp187_ = vala_ccode_constant_new ("G_DBUS_CALL_FLAGS_NONE");
	_tmp188_ = _tmp187_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp188_);
	_vala_ccode_node_unref0 (_tmp188_);
	_tmp189_ = prop;
	_tmp190_ = vala_gd_bus_client_module_get_dbus_timeout (self, (ValaSymbol*) _tmp189_);
	_tmp191_ = _tmp190_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp191_);
	_vala_ccode_node_unref0 (_tmp191_);
	_tmp192_ = vala_ccode_constant_new ("NULL");
	_tmp193_ = _tmp192_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp193_);
	_vala_ccode_node_unref0 (_tmp193_);
	_tmp194_ = vala_ccode_constant_new ("NULL");
	_tmp195_ = _tmp194_;
	vala_ccode_function_call_add_argument (ccall, (ValaCCodeExpression*) _tmp195_);
	_vala_ccode_node_unref0 (_tmp195_);
	_tmp196_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp197_ = _tmp196_;
	_tmp198_ = vala_ccode_identifier_new ("_reply");
	_tmp199_ = _tmp198_;
	vala_ccode_function_add_assignment (_tmp197_, (ValaCCodeExpression*) _tmp199_, (ValaCCodeExpression*) ccall);
	_vala_ccode_node_unref0 (_tmp199_);
	_tmp200_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp201_ = _tmp200_;
	_tmp202_ = vala_ccode_identifier_new ("_reply");
	_tmp203_ = _tmp202_;
	_tmp204_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_LOGICAL_NEGATION, (ValaCCodeExpression*) _tmp203_);
	_tmp205_ = _tmp204_;
	vala_ccode_function_open_if (_tmp201_, (ValaCCodeExpression*) _tmp205_);
	_vala_ccode_node_unref0 (_tmp205_);
	_vala_ccode_node_unref0 (_tmp203_);
	_tmp206_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp207_ = _tmp206_;
	vala_ccode_function_add_return (_tmp207_, NULL);
	_tmp208_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp209_ = _tmp208_;
	vala_ccode_function_close (_tmp209_);
	_tmp210_ = vala_ccode_identifier_new ("g_variant_unref");
	_tmp211_ = _tmp210_;
	_tmp212_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp211_);
	_tmp213_ = _tmp212_;
	_vala_ccode_node_unref0 (_tmp211_);
	unref_reply = _tmp213_;
	_tmp214_ = vala_ccode_identifier_new ("_reply");
	_tmp215_ = _tmp214_;
	vala_ccode_function_call_add_argument (unref_reply, (ValaCCodeExpression*) _tmp215_);
	_vala_ccode_node_unref0 (_tmp215_);
	_tmp216_ = vala_ccode_base_module_get_ccode ((ValaCCodeBaseModule*) self);
	_tmp217_ = _tmp216_;
	vala_ccode_function_add_expression (_tmp217_, (ValaCCodeExpression*) unref_reply);
	vala_ccode_base_module_pop_function ((ValaCCodeBaseModule*) self);
	_tmp218_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp219_ = function;
	vala_ccode_file_add_function_declaration (_tmp218_, _tmp219_);
	_tmp220_ = ((ValaCCodeBaseModule*) self)->cfile;
	_tmp221_ = function;
	vala_ccode_file_add_function (_tmp220_, _tmp221_);
	result = proxy_name;
	_vala_ccode_node_unref0 (unref_reply);
	_vala_ccode_node_unref0 (ccall);
	_vala_ccode_node_unref0 (builder_end);
	_vala_ccode_node_unref0 (builder_close);
	_vala_ccode_node_unref0 (builder_open);
	_vala_ccode_node_unref0 (builder_init);
	_vala_ccode_node_unref0 (function);
	_vala_code_node_unref0 (array_type);
	_g_free0 (dbus_iface_name);
	return result;
}


static void vala_gd_bus_client_module_real_register_dbus_info (ValaCCodeBaseModule* base, ValaCCodeBlock* block, ValaObjectTypeSymbol* sym) {
	ValaGDBusClientModule * self;
	ValaObjectTypeSymbol* _tmp0_;
	gchar* dbus_iface_name = NULL;
	ValaObjectTypeSymbol* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	ValaCCodeFunctionCall* quark = NULL;
	ValaCCodeIdentifier* _tmp4_;
	ValaCCodeIdentifier* _tmp5_;
	ValaCCodeFunctionCall* _tmp6_;
	ValaCCodeFunctionCall* _tmp7_;
	ValaCCodeFunctionCall* _tmp8_;
	ValaCCodeConstant* _tmp9_;
	ValaCCodeConstant* _tmp10_;
	ValaCCodeIdentifier* proxy_type = NULL;
	ValaObjectTypeSymbol* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	ValaCCodeIdentifier* _tmp16_;
	ValaCCodeIdentifier* _tmp17_;
	ValaCCodeFunctionCall* set_qdata = NULL;
	ValaCCodeIdentifier* _tmp18_;
	ValaCCodeIdentifier* _tmp19_;
	ValaCCodeFunctionCall* _tmp20_;
	ValaCCodeFunctionCall* _tmp21_;
	ValaCCodeFunctionCall* _tmp22_;
	ValaObjectTypeSymbol* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	ValaCCodeIdentifier* _tmp28_;
	ValaCCodeIdentifier* _tmp29_;
	ValaCCodeFunctionCall* _tmp30_;
	ValaCCodeFunctionCall* _tmp31_;
	ValaCCodeFunctionCall* _tmp32_;
	ValaCCodeIdentifier* _tmp33_;
	ValaCCodeCastExpression* _tmp34_;
	ValaCCodeCastExpression* _tmp35_;
	ValaCCodeBlock* _tmp36_;
	ValaCCodeFunctionCall* _tmp37_;
	ValaCCodeExpressionStatement* _tmp38_;
	ValaCCodeExpressionStatement* _tmp39_;
	ValaCCodeIdentifier* _tmp40_;
	ValaCCodeIdentifier* _tmp41_;
	ValaCCodeFunctionCall* _tmp42_;
	ValaCCodeFunctionCall* _tmp43_;
	ValaCCodeConstant* _tmp44_;
	ValaCCodeConstant* _tmp45_;
	ValaCCodeIdentifier* _tmp46_;
	ValaCCodeIdentifier* _tmp47_;
	ValaCCodeFunctionCall* _tmp48_;
	ValaCCodeFunctionCall* _tmp49_;
	ValaObjectTypeSymbol* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	ValaCCodeIdentifier* _tmp55_;
	ValaCCodeIdentifier* _tmp56_;
	ValaCCodeFunctionCall* _tmp57_;
	ValaCCodeFunctionCall* _tmp58_;
	ValaCCodeFunctionCall* _tmp59_;
	const gchar* _tmp60_;
	gchar* _tmp61_;
	gchar* _tmp62_;
	ValaCCodeConstant* _tmp63_;
	ValaCCodeConstant* _tmp64_;
	ValaCCodeBlock* _tmp65_;
	ValaCCodeFunctionCall* _tmp66_;
	ValaCCodeExpressionStatement* _tmp67_;
	ValaCCodeExpressionStatement* _tmp68_;
	ValaCCodeIdentifier* _tmp69_;
	ValaCCodeIdentifier* _tmp70_;
	ValaCCodeFunctionCall* _tmp71_;
	ValaCCodeFunctionCall* _tmp72_;
	ValaCCodeConstant* _tmp73_;
	ValaCCodeConstant* _tmp74_;
	ValaCCodeIdentifier* _tmp75_;
	ValaCCodeIdentifier* _tmp76_;
	ValaCCodeFunctionCall* _tmp77_;
	ValaCCodeFunctionCall* _tmp78_;
	ValaObjectTypeSymbol* _tmp79_;
	gchar* _tmp80_;
	gchar* _tmp81_;
	gchar* _tmp82_;
	gchar* _tmp83_;
	ValaCCodeIdentifier* _tmp84_;
	ValaCCodeIdentifier* _tmp85_;
	ValaCCodeFunctionCall* _tmp86_;
	ValaCCodeFunctionCall* _tmp87_;
	ValaCCodeFunctionCall* _tmp88_;
	ValaObjectTypeSymbol* _tmp89_;
	ValaCCodeExpression* _tmp90_;
	ValaCCodeExpression* _tmp91_;
	ValaCCodeUnaryExpression* _tmp92_;
	ValaCCodeUnaryExpression* _tmp93_;
	ValaCCodeCastExpression* _tmp94_;
	ValaCCodeCastExpression* _tmp95_;
	ValaCCodeBlock* _tmp96_;
	ValaCCodeFunctionCall* _tmp97_;
	ValaCCodeExpressionStatement* _tmp98_;
	ValaCCodeExpressionStatement* _tmp99_;
	self = (ValaGDBusClientModule*) base;
	g_return_if_fail (block != NULL);
	g_return_if_fail (sym != NULL);
	_tmp0_ = sym;
	if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, VALA_TYPE_INTERFACE)) {
		return;
	}
	_tmp1_ = sym;
	_tmp2_ = vala_gd_bus_module_get_dbus_name ((ValaTypeSymbol*) _tmp1_);
	dbus_iface_name = _tmp2_;
	_tmp3_ = dbus_iface_name;
	if (_tmp3_ == NULL) {
		_g_free0 (dbus_iface_name);
		return;
	}
	_tmp4_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp5_ = _tmp4_;
	_tmp6_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp5_);
	_tmp7_ = _tmp6_;
	_vala_ccode_node_unref0 (_tmp5_);
	quark = _tmp7_;
	_tmp8_ = quark;
	_tmp9_ = vala_ccode_constant_new ("\"vala-dbus-proxy-type\"");
	_tmp10_ = _tmp9_;
	vala_ccode_function_call_add_argument (_tmp8_, (ValaCCodeExpression*) _tmp10_);
	_vala_ccode_node_unref0 (_tmp10_);
	_tmp11_ = sym;
	_tmp12_ = vala_get_ccode_lower_case_prefix ((ValaSymbol*) _tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strconcat (_tmp13_, "proxy_get_type", NULL);
	_tmp15_ = _tmp14_;
	_tmp16_ = vala_ccode_identifier_new (_tmp15_);
	_tmp17_ = _tmp16_;
	_g_free0 (_tmp15_);
	_g_free0 (_tmp13_);
	proxy_type = _tmp17_;
	_tmp18_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp19_ = _tmp18_;
	_tmp20_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp19_);
	_tmp21_ = _tmp20_;
	_vala_ccode_node_unref0 (_tmp19_);
	set_qdata = _tmp21_;
	_tmp22_ = set_qdata;
	_tmp23_ = sym;
	_tmp24_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp23_, NULL);
	_tmp25_ = _tmp24_;
	_tmp26_ = g_strdup_printf ("%s_type_id", _tmp25_);
	_tmp27_ = _tmp26_;
	_tmp28_ = vala_ccode_identifier_new (_tmp27_);
	_tmp29_ = _tmp28_;
	vala_ccode_function_call_add_argument (_tmp22_, (ValaCCodeExpression*) _tmp29_);
	_vala_ccode_node_unref0 (_tmp29_);
	_g_free0 (_tmp27_);
	_g_free0 (_tmp25_);
	_tmp30_ = set_qdata;
	_tmp31_ = quark;
	vala_ccode_function_call_add_argument (_tmp30_, (ValaCCodeExpression*) _tmp31_);
	_tmp32_ = set_qdata;
	_tmp33_ = proxy_type;
	_tmp34_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp33_, "void*");
	_tmp35_ = _tmp34_;
	vala_ccode_function_call_add_argument (_tmp32_, (ValaCCodeExpression*) _tmp35_);
	_vala_ccode_node_unref0 (_tmp35_);
	_tmp36_ = block;
	_tmp37_ = set_qdata;
	_tmp38_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp37_);
	_tmp39_ = _tmp38_;
	vala_ccode_block_add_statement (_tmp36_, (ValaCCodeNode*) _tmp39_);
	_vala_ccode_node_unref0 (_tmp39_);
	_tmp40_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp41_ = _tmp40_;
	_tmp42_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp41_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp42_;
	_vala_ccode_node_unref0 (_tmp41_);
	_tmp43_ = quark;
	_tmp44_ = vala_ccode_constant_new ("\"vala-dbus-interface-name\"");
	_tmp45_ = _tmp44_;
	vala_ccode_function_call_add_argument (_tmp43_, (ValaCCodeExpression*) _tmp45_);
	_vala_ccode_node_unref0 (_tmp45_);
	_tmp46_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp47_ = _tmp46_;
	_tmp48_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp47_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp48_;
	_vala_ccode_node_unref0 (_tmp47_);
	_tmp49_ = set_qdata;
	_tmp50_ = sym;
	_tmp51_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp50_, NULL);
	_tmp52_ = _tmp51_;
	_tmp53_ = g_strdup_printf ("%s_type_id", _tmp52_);
	_tmp54_ = _tmp53_;
	_tmp55_ = vala_ccode_identifier_new (_tmp54_);
	_tmp56_ = _tmp55_;
	vala_ccode_function_call_add_argument (_tmp49_, (ValaCCodeExpression*) _tmp56_);
	_vala_ccode_node_unref0 (_tmp56_);
	_g_free0 (_tmp54_);
	_g_free0 (_tmp52_);
	_tmp57_ = set_qdata;
	_tmp58_ = quark;
	vala_ccode_function_call_add_argument (_tmp57_, (ValaCCodeExpression*) _tmp58_);
	_tmp59_ = set_qdata;
	_tmp60_ = dbus_iface_name;
	_tmp61_ = g_strdup_printf ("\"%s\"", _tmp60_);
	_tmp62_ = _tmp61_;
	_tmp63_ = vala_ccode_constant_new (_tmp62_);
	_tmp64_ = _tmp63_;
	vala_ccode_function_call_add_argument (_tmp59_, (ValaCCodeExpression*) _tmp64_);
	_vala_ccode_node_unref0 (_tmp64_);
	_g_free0 (_tmp62_);
	_tmp65_ = block;
	_tmp66_ = set_qdata;
	_tmp67_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp66_);
	_tmp68_ = _tmp67_;
	vala_ccode_block_add_statement (_tmp65_, (ValaCCodeNode*) _tmp68_);
	_vala_ccode_node_unref0 (_tmp68_);
	_tmp69_ = vala_ccode_identifier_new ("g_quark_from_static_string");
	_tmp70_ = _tmp69_;
	_tmp71_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp70_);
	_vala_ccode_node_unref0 (quark);
	quark = _tmp71_;
	_vala_ccode_node_unref0 (_tmp70_);
	_tmp72_ = quark;
	_tmp73_ = vala_ccode_constant_new ("\"vala-dbus-interface-info\"");
	_tmp74_ = _tmp73_;
	vala_ccode_function_call_add_argument (_tmp72_, (ValaCCodeExpression*) _tmp74_);
	_vala_ccode_node_unref0 (_tmp74_);
	_tmp75_ = vala_ccode_identifier_new ("g_type_set_qdata");
	_tmp76_ = _tmp75_;
	_tmp77_ = vala_ccode_function_call_new ((ValaCCodeExpression*) _tmp76_);
	_vala_ccode_node_unref0 (set_qdata);
	set_qdata = _tmp77_;
	_vala_ccode_node_unref0 (_tmp76_);
	_tmp78_ = set_qdata;
	_tmp79_ = sym;
	_tmp80_ = vala_get_ccode_lower_case_name ((ValaCodeNode*) _tmp79_, NULL);
	_tmp81_ = _tmp80_;
	_tmp82_ = g_strdup_printf ("%s_type_id", _tmp81_);
	_tmp83_ = _tmp82_;
	_tmp84_ = vala_ccode_identifier_new (_tmp83_);
	_tmp85_ = _tmp84_;
	vala_ccode_function_call_add_argument (_tmp78_, (ValaCCodeExpression*) _tmp85_);
	_vala_ccode_node_unref0 (_tmp85_);
	_g_free0 (_tmp83_);
	_g_free0 (_tmp81_);
	_tmp86_ = set_qdata;
	_tmp87_ = quark;
	vala_ccode_function_call_add_argument (_tmp86_, (ValaCCodeExpression*) _tmp87_);
	_tmp88_ = set_qdata;
	_tmp89_ = sym;
	_tmp90_ = vala_gd_bus_module_get_interface_info ((ValaGDBusModule*) self, _tmp89_);
	_tmp91_ = _tmp90_;
	_tmp92_ = vala_ccode_unary_expression_new (VALA_CCODE_UNARY_OPERATOR_ADDRESS_OF, _tmp91_);
	_tmp93_ = _tmp92_;
	_tmp94_ = vala_ccode_cast_expression_new ((ValaCCodeExpression*) _tmp93_, "void*");
	_tmp95_ = _tmp94_;
	vala_ccode_function_call_add_argument (_tmp88_, (ValaCCodeExpression*) _tmp95_);
	_vala_ccode_node_unref0 (_tmp95_);
	_vala_ccode_node_unref0 (_tmp93_);
	_vala_ccode_node_unref0 (_tmp91_);
	_tmp96_ = block;
	_tmp97_ = set_qdata;
	_tmp98_ = vala_ccode_expression_statement_new ((ValaCCodeExpression*) _tmp97_);
	_tmp99_ = _tmp98_;
	vala_ccode_block_add_statement (_tmp96_, (ValaCCodeNode*) _tmp99_);
	_vala_ccode_node_unref0 (_tmp99_);
	_vala_ccode_node_unref0 (set_qdata);
	_vala_ccode_node_unref0 (proxy_type);
	_vala_ccode_node_unref0 (quark);
	_g_free0 (dbus_iface_name);
}


ValaGDBusClientModule* vala_gd_bus_client_module_construct (GType object_type) {
	ValaGDBusClientModule* self = NULL;
	self = (ValaGDBusClientModule*) vala_gd_bus_module_construct (object_type);
	return self;
}


ValaGDBusClientModule* vala_gd_bus_client_module_new (void) {
	return vala_gd_bus_client_module_construct (VALA_TYPE_GD_BUS_CLIENT_MODULE);
}


static void vala_gd_bus_client_module_class_init (ValaGDBusClientModuleClass * klass) {
	vala_gd_bus_client_module_parent_class = g_type_class_peek_parent (klass);
	((ValaCCodeBaseModuleClass *) klass)->generate_dynamic_method_wrapper = (void (*) (ValaCCodeBaseModule *, ValaDynamicMethod*)) vala_gd_bus_client_module_real_generate_dynamic_method_wrapper;
	((ValaCCodeBaseModuleClass *) klass)->generate_interface_declaration = (void (*) (ValaCCodeBaseModule *, ValaInterface*, ValaCCodeFile*)) vala_gd_bus_client_module_real_generate_interface_declaration;
	((ValaCodeVisitorClass *) klass)->visit_interface = (void (*) (ValaCodeVisitor *, ValaInterface*)) vala_gd_bus_client_module_real_visit_interface;
	((ValaCodeVisitorClass *) klass)->visit_method_call = (void (*) (ValaCodeVisitor *, ValaMethodCall*)) vala_gd_bus_client_module_real_visit_method_call;
	((ValaCCodeBaseModuleClass *) klass)->register_dbus_info = (void (*) (ValaCCodeBaseModule *, ValaCCodeBlock*, ValaObjectTypeSymbol*)) vala_gd_bus_client_module_real_register_dbus_info;
}


static void vala_gd_bus_client_module_instance_init (ValaGDBusClientModule * self) {
}


GType vala_gd_bus_client_module_get_type (void) {
	static volatile gsize vala_gd_bus_client_module_type_id__volatile = 0;
	if (g_once_init_enter (&vala_gd_bus_client_module_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (ValaGDBusClientModuleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_gd_bus_client_module_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaGDBusClientModule), 0, (GInstanceInitFunc) vala_gd_bus_client_module_instance_init, NULL };
		GType vala_gd_bus_client_module_type_id;
		vala_gd_bus_client_module_type_id = g_type_register_static (VALA_TYPE_GD_BUS_MODULE, "ValaGDBusClientModule", &g_define_type_info, 0);
		g_once_init_leave (&vala_gd_bus_client_module_type_id__volatile, vala_gd_bus_client_module_type_id);
	}
	return vala_gd_bus_client_module_type_id__volatile;
}



