/* tools-stl-release-row.c generated by valac 0.56.19, the Vala compiler
 * generated from tools-stl-release-row.vala, do not modify */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "protonplus_core.h"
#include <gio/gio.h>
#include <glib/gi18n-lib.h>
#include <adwaita.h>
#include <gtk/gtk.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT (proton_plus_widgets_tools_stl_dependency_check_result_get_type ())
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult))
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResultClass))
#define PROTON_PLUS_WIDGETS_TOOLS_IS_STL_DEPENDENCY_CHECK_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT))
#define PROTON_PLUS_WIDGETS_TOOLS_IS_STL_DEPENDENCY_CHECK_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT))
#define PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResultClass))

typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResult ProtonPlusWidgetsToolsSTLDependencyCheckResult;
typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultClass ProtonPlusWidgetsToolsSTLDependencyCheckResultClass;
typedef struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate;
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_0_PROPERTY,
	PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_tools_stl_release_row_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_RELEASE_ROW_NUM_PROPERTIES];
typedef struct _Block34Data Block34Data;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block35Data Block35Data;
typedef struct _ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData;
typedef struct _Block36Data Block36Data;
typedef struct _Block37Data Block37Data;

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResult {
	GObject parent_instance;
	ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate * priv;
};

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultClass {
	GObjectClass parent_class;
};

struct _ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate {
	gchar* _missing_dependencies;
	gboolean _has_incompatible_yad;
};

struct _Block34Data {
	int _ref_count_;
	GWeakRef owner_ref;
};

struct _Block35Data {
	int _ref_count_;
	ProtonPlusServicesSteamTinkerLaunchContext* context;
	GtkCheckButton* remove_config_check;
};

struct _ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* result;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _result_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp0_;
	ProtonPlusServicesSteamTinkerLaunchYadCompatibilityStatus yad_status;
	ProtonPlusUtilsCommandResult* yad_version;
	ProtonPlusUtilsCommandResult* _tmp1_;
	ProtonPlusUtilsCommandResult* _tmp2_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp3_;
	gboolean _tmp4_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp5_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gboolean _tmp11_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp12_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp13_;
	const gchar* _tmp14_;
	const gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar** dependencies;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar** _tmp27_;
	gint dependencies_length1;
	gint _dependencies_size_;
	gchar** _tmp28_;
	gint _tmp28__length1;
	gchar** dependency_collection;
	gint dependency_collection_length1;
	gint _dependency_collection_size_;
	gint dependency_it;
	gchar* _tmp29_;
	gchar* dependency;
	const gchar* _tmp30_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp31_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp32_;
	const gchar* _tmp33_;
	const gchar* _tmp34_;
	const gchar* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
};

struct _Block36Data {
	int _ref_count_;
	gboolean installation_continued;
	GWeakRef owner_ref;
};

struct _Block37Data {
	int _ref_count_;
	gboolean installation_started;
	GWeakRef owner_ref;
};

static gint ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset;
static gpointer proton_plus_widgets_tools_stl_dependency_check_result_parent_class = NULL;
static gpointer proton_plus_widgets_tools_stl_release_row_parent_class = NULL;

VALA_EXTERN GType proton_plus_widgets_tools_stl_dependency_check_result_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_dependency_check_result_new (void);
VALA_EXTERN ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_dependency_check_result_construct (GType object_type);
VALA_EXTERN const gchar* proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self);
VALA_EXTERN void proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                     const gchar* value);
VALA_EXTERN gboolean proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self);
VALA_EXTERN void proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                     gboolean value);
static void proton_plus_widgets_tools_stl_dependency_check_result_finalize (GObject * obj);
static GType proton_plus_widgets_tools_stl_dependency_check_result_get_type_once (void);
static void _vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property (GObject * object,
                                                                               guint property_id,
                                                                               GValue * value,
                                                                               GParamSpec * pspec);
static void _vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property (GObject * object,
                                                                               guint property_id,
                                                                               const GValue * value,
                                                                               GParamSpec * pspec);
static void proton_plus_widgets_tools_stl_release_row_real_install_button_clicked (ProtonPlusWidgetsToolsReleaseRow* base);
static void proton_plus_widgets_tools_stl_release_row_run_dependency_check (ProtonPlusWidgetsToolsSTLReleaseRow* owner);
static Block34Data* block34_data_ref (Block34Data* _data34_);
static void block34_data_unref (void * _userdata_);
static void proton_plus_widgets_tools_stl_release_row_dependency_check (GAsyncReadyCallback _callback_,
                                                                 gpointer _user_data_);
static ProtonPlusWidgetsToolsSTLDependencyCheckResult* proton_plus_widgets_tools_stl_release_row_dependency_check_finish (GAsyncResult* _res_);
static void __lambda57_ (Block34Data* _data34_,
                  GObject* obj,
                  GAsyncResult* res);
static void ___lambda58_ (Block34Data* _data34_);
static void ____lambda58__adw_dialog_closed (AdwDialog* _sender,
                                      gpointer self);
static void proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void proton_plus_widgets_tools_stl_release_row_external_install_check (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void ___lambda57__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
static void proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog (ProtonPlusWidgetsToolsReleaseRow* base,
                                                                             ProtonPlusWidgetsToolsRemoveDialog* dialog);
static void proton_plus_widgets_tools_stl_release_row_bind_remove_config_check (ProtonPlusServicesSteamTinkerLaunchContext* context,
                                                                         GtkCheckButton* remove_config_check);
static Block35Data* block35_data_ref (Block35Data* _data35_);
static void block35_data_unref (void * _userdata_);
static void __lambda63_ (Block35Data* _data35_);
static void ___lambda63__gtk_check_button_activate (GtkCheckButton* _sender,
                                             gpointer self);
static void proton_plus_widgets_tools_stl_release_row_dependency_check_data_free (gpointer _data);
static gboolean proton_plus_widgets_tools_stl_release_row_dependency_check_co (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_);
static void proton_plus_widgets_tools_stl_release_row_dependency_check_ready (GObject* source_object,
                                                                       GAsyncResult* _res_,
                                                                       gpointer _user_data_);
static void proton_plus_widgets_tools_stl_release_row_track_yad_warning (AdwAlertDialog* alert_dialog,
                                                                  ProtonPlusWidgetsToolsSTLReleaseRow* owner);
static Block36Data* block36_data_ref (Block36Data* _data36_);
static void block36_data_unref (void * _userdata_);
static void __lambda59_ (Block36Data* _data36_,
                  const gchar* response);
static void ___lambda59__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                             const gchar* response,
                                             gpointer self);
static void __lambda62_ (Block36Data* _data36_);
static void ___lambda62__adw_dialog_closed (AdwDialog* _sender,
                                     gpointer self);
static void proton_plus_widgets_tools_stl_release_row_track_external_install_warning (AdwAlertDialog* alert_dialog,
                                                                               ProtonPlusWidgetsToolsSTLReleaseRow* owner);
static Block37Data* block37_data_ref (Block37Data* _data37_);
static void block37_data_unref (void * _userdata_);
static void __lambda60_ (Block37Data* _data37_,
                  const gchar* response);
static void proton_plus_widgets_tools_stl_release_row_install_after_external_check (ProtonPlusWidgetsToolsSTLReleaseRow* self);
static void ___lambda60__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                             const gchar* response,
                                             gpointer self);
static void __lambda61_ (Block37Data* _data37_);
static void ___lambda61__adw_dialog_closed (AdwDialog* _sender,
                                     gpointer self);
static GType proton_plus_widgets_tools_stl_release_row_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

static inline gpointer
proton_plus_widgets_tools_stl_dependency_check_result_get_instance_private (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset);
}

ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_dependency_check_result_construct (GType object_type)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self = NULL;
	self = (ProtonPlusWidgetsToolsSTLDependencyCheckResult*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_dependency_check_result_new (void)
{
	return proton_plus_widgets_tools_stl_dependency_check_result_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT);
}

const gchar*
proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_missing_dependencies;
	result = _tmp0_;
	return result;
}

void
proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_missing_dependencies);
		self->priv->_missing_dependencies = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_has_incompatible_yad;
	return result;
}

void
proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (ProtonPlusWidgetsToolsSTLDependencyCheckResult* self,
                                                                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (self);
	if (old_value != value) {
		self->priv->_has_incompatible_yad = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY]);
	}
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_class_init (ProtonPlusWidgetsToolsSTLDependencyCheckResultClass * klass,
                                                                  gpointer klass_data)
{
	proton_plus_widgets_tools_stl_dependency_check_result_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_tools_stl_dependency_check_result_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY] = g_param_spec_string ("missing-dependencies", "missing-dependencies", "missing-dependencies", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY, proton_plus_widgets_tools_stl_dependency_check_result_properties[PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY] = g_param_spec_boolean ("has-incompatible-yad", "has-incompatible-yad", "has-incompatible-yad", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_instance_init (ProtonPlusWidgetsToolsSTLDependencyCheckResult * self,
                                                                     gpointer klass)
{
	gchar* _tmp0_;
	self->priv = proton_plus_widgets_tools_stl_dependency_check_result_get_instance_private (self);
	_tmp0_ = g_strdup ("");
	self->priv->_missing_dependencies = _tmp0_;
	self->priv->_has_incompatible_yad = FALSE;
}

static void
proton_plus_widgets_tools_stl_dependency_check_result_finalize (GObject * obj)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	_g_free0 (self->priv->_missing_dependencies);
	G_OBJECT_CLASS (proton_plus_widgets_tools_stl_dependency_check_result_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_tools_stl_dependency_check_result_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_stl_dependency_check_result_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResult), 0, (GInstanceInitFunc) proton_plus_widgets_tools_stl_dependency_check_result_instance_init, NULL };
	GType proton_plus_widgets_tools_stl_dependency_check_result_type_id;
	proton_plus_widgets_tools_stl_dependency_check_result_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsToolsSTLDependencyCheckResult", &g_define_type_info, 0);
	ProtonPlusWidgetsToolsSTLDependencyCheckResult_private_offset = g_type_add_instance_private (proton_plus_widgets_tools_stl_dependency_check_result_type_id, sizeof (ProtonPlusWidgetsToolsSTLDependencyCheckResultPrivate));
	return proton_plus_widgets_tools_stl_dependency_check_result_type_id;
}

GType
proton_plus_widgets_tools_stl_dependency_check_result_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_stl_dependency_check_result_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_stl_dependency_check_result_type_id__once)) {
		GType proton_plus_widgets_tools_stl_dependency_check_result_type_id;
		proton_plus_widgets_tools_stl_dependency_check_result_type_id = proton_plus_widgets_tools_stl_dependency_check_result_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_stl_dependency_check_result_type_id__once, proton_plus_widgets_tools_stl_dependency_check_result_type_id);
	}
	return proton_plus_widgets_tools_stl_dependency_check_result_type_id__once;
}

static void
_vala_proton_plus_widgets_tools_stl_dependency_check_result_get_property (GObject * object,
                                                                          guint property_id,
                                                                          GValue * value,
                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (self));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_tools_stl_dependency_check_result_set_property (GObject * object,
                                                                          guint property_id,
                                                                          const GValue * value,
                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_DEPENDENCY_CHECK_RESULT, ProtonPlusWidgetsToolsSTLDependencyCheckResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_MISSING_DEPENDENCIES_PROPERTY:
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_TOOLS_STL_DEPENDENCY_CHECK_RESULT_HAS_INCOMPATIBLE_YAD_PROPERTY:
		proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

ProtonPlusWidgetsToolsSTLReleaseRow*
proton_plus_widgets_tools_stl_release_row_construct (GType object_type,
                                                     ProtonPlusServicesInstallJob* job)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self = NULL;
	g_return_val_if_fail (job != NULL, NULL);
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) proton_plus_widgets_tools_release_row_construct (object_type, job, TRUE);
	return self;
}

ProtonPlusWidgetsToolsSTLReleaseRow*
proton_plus_widgets_tools_stl_release_row_new (ProtonPlusServicesInstallJob* job)
{
	return proton_plus_widgets_tools_stl_release_row_construct (PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, job);
}

static void
proton_plus_widgets_tools_stl_release_row_real_install_button_clicked (ProtonPlusWidgetsToolsReleaseRow* base)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_;
	gboolean _tmp2_;
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) base;
	_tmp1_ = proton_plus_widgets_tools_release_row_get_action_request_in_progress ((ProtonPlusWidgetsToolsReleaseRow*) self);
	_tmp2_ = _tmp1_;
	if (_tmp2_) {
		_tmp0_ = TRUE;
	} else {
		gboolean _tmp3_;
		gboolean _tmp4_;
		_tmp3_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) self);
		_tmp4_ = _tmp3_;
		_tmp0_ = _tmp4_;
	}
	if (_tmp0_) {
		return;
	}
	proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) self, TRUE);
	proton_plus_widgets_tools_stl_release_row_run_dependency_check (self);
}

static Block34Data*
block34_data_ref (Block34Data* _data34_)
{
	g_atomic_int_inc (&_data34_->_ref_count_);
	return _data34_;
}

static void
block34_data_unref (void * _userdata_)
{
	Block34Data* _data34_;
	_data34_ = (Block34Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data34_->_ref_count_)) {
		g_weak_ref_clear (&_data34_->owner_ref);
		g_slice_free (Block34Data, _data34_);
	}
}

static void
___lambda58_ (Block34Data* _data34_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* current = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp3_;
	_tmp0_ = g_weak_ref_get (&_data34_->owner_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp0_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	current = _tmp1_;
	_tmp3_ = current;
	if (_tmp3_ != NULL) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = current;
		_tmp5_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp6_ = _tmp5_;
		_tmp2_ = !_tmp6_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp7_;
		_tmp7_ = current;
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
	}
	_g_object_unref0 (current);
}

static void
____lambda58__adw_dialog_closed (AdwDialog* _sender,
                                 gpointer self)
{
	___lambda58_ (self);
}

static void
__lambda57_ (Block34Data* _data34_,
             GObject* obj,
             GAsyncResult* res)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _result_ = NULL;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* row = NULL;
	GObject* _tmp1_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp2_;
	gboolean _tmp3_ = FALSE;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp27_;
	gboolean _tmp28_;
	gboolean _tmp29_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp31_;
	g_return_if_fail (res != NULL);
	_tmp0_ = proton_plus_widgets_tools_stl_release_row_dependency_check_finish (res);
	_result_ = _tmp0_;
	_tmp1_ = g_weak_ref_get (&_data34_->owner_ref);
	_tmp2_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp1_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp1_) : NULL;
	if (_tmp2_ == NULL) {
		_g_object_unref0 (_tmp1_);
	}
	row = _tmp2_;
	_tmp4_ = row;
	if (_tmp4_ == NULL) {
		_tmp3_ = TRUE;
	} else {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp5_;
		gboolean _tmp6_;
		gboolean _tmp7_;
		_tmp5_ = row;
		_tmp6_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp7_ = _tmp6_;
		_tmp3_ = _tmp7_;
	}
	if (_tmp3_) {
		_g_object_unref0 (row);
		_g_object_unref0 (_result_);
		return;
	}
	_tmp8_ = _result_;
	_tmp9_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_tmp8_);
	_tmp10_ = _tmp9_;
	if (g_strcmp0 (_tmp10_, "") != 0) {
		ProtonPlusWidgetsMainWarningDialog* alert_dialog = NULL;
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		ProtonPlusWidgetsToolsSTLDependencyCheckResult* _tmp16_;
		const gchar* _tmp17_;
		const gchar* _tmp18_;
		gchar* _tmp19_;
		gchar* _tmp20_;
		ProtonPlusWidgetsMainWarningDialog* _tmp21_;
		ProtonPlusWidgetsMainWarningDialog* _tmp22_;
		ProtonPlusWidgetsMainWarningDialog* _tmp23_;
		ProtonPlusWidgetsMainWarningDialog* _tmp24_;
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp25_;
		GtkRoot* _tmp26_;
		_tmp11_ = row;
		_tmp12_ = adw_preferences_row_get_title ((AdwPreferencesRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp13_ = _tmp12_;
		_tmp14_ = g_strdup_printf (_ ("You are missing the following dependencies for %s:"), _tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = _result_;
		_tmp17_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp19_ = g_strdup_printf ("%s\n\n%s\n%s", _tmp15_, _tmp18_, _ ("Installation will be canceled."));
		_tmp20_ = _tmp19_;
		_tmp21_ = proton_plus_widgets_main_warning_dialog_new (_ ("Warning"), _tmp20_);
		g_object_ref_sink (_tmp21_);
		_tmp22_ = _tmp21_;
		_g_free0 (_tmp20_);
		_g_free0 (_tmp15_);
		alert_dialog = _tmp22_;
		_tmp23_ = alert_dialog;
		g_signal_connect_data ((AdwDialog*) _tmp23_, "closed", (GCallback) ____lambda58__adw_dialog_closed, block34_data_ref (_data34_), (GClosureNotify) block34_data_unref, 0);
		_tmp24_ = alert_dialog;
		_tmp25_ = row;
		_tmp26_ = gtk_widget_get_root ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) _tmp24_, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_window_get_type (), GtkWindow));
		_g_object_unref0 (alert_dialog);
		_g_object_unref0 (row);
		_g_object_unref0 (_result_);
		return;
	}
	_tmp27_ = _result_;
	_tmp28_ = proton_plus_widgets_tools_stl_dependency_check_result_get_has_incompatible_yad (_tmp27_);
	_tmp29_ = _tmp28_;
	if (_tmp29_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp30_;
		_tmp30_ = row;
		proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_g_object_unref0 (row);
		_g_object_unref0 (_result_);
		return;
	}
	_tmp31_ = row;
	proton_plus_widgets_tools_stl_release_row_external_install_check (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
	_g_object_unref0 (row);
	_g_object_unref0 (_result_);
}

static void
___lambda57__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda57_ (self, source_object, res);
	block34_data_unref (self);
}

static void
proton_plus_widgets_tools_stl_release_row_run_dependency_check (ProtonPlusWidgetsToolsSTLReleaseRow* owner)
{
	Block34Data* _data34_;
	g_return_if_fail (owner != NULL);
	_data34_ = g_slice_new0 (Block34Data);
	_data34_->_ref_count_ = 1;
	g_weak_ref_init (&_data34_->owner_ref, (GObject*) owner);
	proton_plus_widgets_tools_stl_release_row_dependency_check (___lambda57__gasync_ready_callback, block34_data_ref (_data34_));
	block34_data_unref (_data34_);
	_data34_ = NULL;
}

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

static void
proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog (ProtonPlusWidgetsToolsReleaseRow* base,
                                                                        ProtonPlusWidgetsToolsRemoveDialog* dialog)
{
	ProtonPlusWidgetsToolsSTLReleaseRow * self;
	ProtonPlusServicesSteamTinkerLaunchContext* context = NULL;
	ProtonPlusServicesInstallJob* _tmp0_;
	ProtonPlusServicesInstallJob* _tmp1_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp2_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp3_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp4_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp5_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp6_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp7_;
	GtkCheckButton* remove_config_check = NULL;
	GtkCheckButton* _tmp8_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp9_;
	GtkCheckButton* _tmp10_;
	GtkCheckButton* _tmp11_;
	self = (ProtonPlusWidgetsToolsSTLReleaseRow*) base;
	g_return_if_fail (dialog != NULL);
	_tmp0_ = proton_plus_widgets_tools_release_row_get_job ((ProtonPlusWidgetsToolsReleaseRow*) self);
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_services_install_job_get_steam_tinker_launch_context (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = _g_object_ref0 (_tmp3_);
	context = _tmp4_;
	_tmp5_ = context;
	if (_tmp5_ == NULL) {
		_g_object_unref0 (context);
		return;
	}
	_tmp6_ = context;
	proton_plus_services_steam_tinker_launch_context_set_remove_config (_tmp6_, FALSE);
	_tmp7_ = context;
	proton_plus_services_steam_tinker_launch_context_set_user_requested_removal (_tmp7_, TRUE);
	_tmp8_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("Check this to also delete your configuration files."));
	g_object_ref_sink (_tmp8_);
	remove_config_check = _tmp8_;
	_tmp9_ = context;
	_tmp10_ = remove_config_check;
	proton_plus_widgets_tools_stl_release_row_bind_remove_config_check (_tmp9_, _tmp10_);
	_tmp11_ = remove_config_check;
	adw_alert_dialog_set_extra_child ((AdwAlertDialog*) dialog, (GtkWidget*) _tmp11_);
	_g_object_unref0 (remove_config_check);
	_g_object_unref0 (context);
}

static Block35Data*
block35_data_ref (Block35Data* _data35_)
{
	g_atomic_int_inc (&_data35_->_ref_count_);
	return _data35_;
}

static void
block35_data_unref (void * _userdata_)
{
	Block35Data* _data35_;
	_data35_ = (Block35Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data35_->_ref_count_)) {
		_g_object_unref0 (_data35_->context);
		_g_object_unref0 (_data35_->remove_config_check);
		g_slice_free (Block35Data, _data35_);
	}
}

static void
__lambda63_ (Block35Data* _data35_)
{
	proton_plus_services_steam_tinker_launch_context_set_remove_config (_data35_->context, gtk_check_button_get_active (_data35_->remove_config_check));
}

static void
___lambda63__gtk_check_button_activate (GtkCheckButton* _sender,
                                        gpointer self)
{
	__lambda63_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_bind_remove_config_check (ProtonPlusServicesSteamTinkerLaunchContext* context,
                                                                    GtkCheckButton* remove_config_check)
{
	Block35Data* _data35_;
	ProtonPlusServicesSteamTinkerLaunchContext* _tmp0_;
	GtkCheckButton* _tmp1_;
	g_return_if_fail (context != NULL);
	g_return_if_fail (remove_config_check != NULL);
	_data35_ = g_slice_new0 (Block35Data);
	_data35_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (context);
	_g_object_unref0 (_data35_->context);
	_data35_->context = _tmp0_;
	_tmp1_ = _g_object_ref0 (remove_config_check);
	_g_object_unref0 (_data35_->remove_config_check);
	_data35_->remove_config_check = _tmp1_;
	g_signal_connect_data (_data35_->remove_config_check, "activate", (GCallback) ___lambda63__gtk_check_button_activate, block35_data_ref (_data35_), (GClosureNotify) block35_data_unref, 0);
	block35_data_unref (_data35_);
	_data35_ = NULL;
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check_data_free (gpointer _data)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->result);
	g_slice_free (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData, _data_);
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check (GAsyncReadyCallback _callback_,
                                                            gpointer _user_data_)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = g_slice_new0 (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData);
	_data_->_async_result = g_task_new (NULL, NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, proton_plus_widgets_tools_stl_release_row_dependency_check_data_free);
	proton_plus_widgets_tools_stl_release_row_dependency_check_co (_data_);
}

static ProtonPlusWidgetsToolsSTLDependencyCheckResult*
proton_plus_widgets_tools_stl_release_row_dependency_check_finish (GAsyncResult* _res_)
{
	ProtonPlusWidgetsToolsSTLDependencyCheckResult* result;
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	_data_->result = NULL;
	return result;
}

static void
proton_plus_widgets_tools_stl_release_row_dependency_check_ready (GObject* source_object,
                                                                  GAsyncResult* _res_,
                                                                  gpointer _user_data_)
{
	ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	proton_plus_widgets_tools_stl_release_row_dependency_check_co (_data_);
}

static gboolean
proton_plus_widgets_tools_stl_release_row_dependency_check_co (ProtonPlusWidgetsToolsStlReleaseRowDependencyCheckData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = proton_plus_widgets_tools_stl_dependency_check_result_new ();
	_data_->_result_ = _data_->_tmp0_;
	_data_->yad_status = PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_UNKNOWN;
	_data_->_state_ = 1;
	proton_plus_utils_system_check_dependency ("yad", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
	return FALSE;
	_state_1:
	if (proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
		_data_->_state_ = 2;
		proton_plus_utils_system_run_command ("yad --version", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp1_ = proton_plus_utils_system_run_command_finish (_data_->_res_);
		_data_->yad_version = _data_->_tmp1_;
		_data_->_tmp2_ = _data_->yad_version;
		_data_->yad_status = proton_plus_services_steam_tinker_launch_yad_compatibility_classify_version_result (_data_->_tmp2_);
		_g_object_unref0 (_data_->yad_version);
	}
	_data_->_tmp3_ = _data_->_result_;
	proton_plus_widgets_tools_stl_dependency_check_result_set_has_incompatible_yad (_data_->_tmp3_, _data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_INCOMPATIBLE_15);
	if (proton_plus_globals_IS_STEAM_OS) {
		_data_->result = _data_->_result_;
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	if (_data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_UNKNOWN) {
		_data_->_tmp4_ = TRUE;
	} else {
		_data_->_tmp4_ = _data_->yad_status == PROTON_PLUS_SERVICES_STEAM_TINKER_LAUNCH_YAD_COMPATIBILITY_STATUS_TOO_OLD;
	}
	if (_data_->_tmp4_) {
		_data_->_tmp5_ = _data_->_result_;
		_data_->_tmp6_ = _data_->_result_;
		_data_->_tmp7_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp6_);
		_data_->_tmp8_ = _data_->_tmp7_;
		_data_->_tmp9_ = g_strconcat (_data_->_tmp8_, "yad >= 7.2 (except 15.x)\n", NULL);
		_data_->_tmp10_ = _data_->_tmp9_;
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp6_, _data_->_tmp10_);
		_g_free0 (_data_->_tmp10_);
	}
	_data_->_state_ = 3;
	proton_plus_utils_system_check_dependency ("awk", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
	return FALSE;
	_state_3:
	if (!proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
		_data_->_state_ = 4;
		proton_plus_utils_system_check_dependency ("gawk", proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
		return FALSE;
		_state_4:
		_data_->_tmp11_ = !proton_plus_utils_system_check_dependency_finish (_data_->_res_);
	} else {
		_data_->_tmp11_ = FALSE;
	}
	if (_data_->_tmp11_) {
		_data_->_tmp12_ = _data_->_result_;
		_data_->_tmp13_ = _data_->_result_;
		_data_->_tmp14_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp13_);
		_data_->_tmp15_ = _data_->_tmp14_;
		_data_->_tmp16_ = g_strconcat (_data_->_tmp15_, "awk/gawk\n", NULL);
		_data_->_tmp17_ = _data_->_tmp16_;
		proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp13_, _data_->_tmp17_);
		_g_free0 (_data_->_tmp17_);
	}
	_data_->_tmp18_ = g_strdup ("git");
	_data_->_tmp19_ = g_strdup ("pgrep");
	_data_->_tmp20_ = g_strdup ("unzip");
	_data_->_tmp21_ = g_strdup ("wget");
	_data_->_tmp22_ = g_strdup ("xdotool");
	_data_->_tmp23_ = g_strdup ("xprop");
	_data_->_tmp24_ = g_strdup ("xrandr");
	_data_->_tmp25_ = g_strdup ("xxd");
	_data_->_tmp26_ = g_strdup ("xwininfo");
	_data_->_tmp27_ = g_new0 (gchar*, 9 + 1);
	_data_->_tmp27_[0] = _data_->_tmp18_;
	_data_->_tmp27_[1] = _data_->_tmp19_;
	_data_->_tmp27_[2] = _data_->_tmp20_;
	_data_->_tmp27_[3] = _data_->_tmp21_;
	_data_->_tmp27_[4] = _data_->_tmp22_;
	_data_->_tmp27_[5] = _data_->_tmp23_;
	_data_->_tmp27_[6] = _data_->_tmp24_;
	_data_->_tmp27_[7] = _data_->_tmp25_;
	_data_->_tmp27_[8] = _data_->_tmp26_;
	_data_->dependencies = _data_->_tmp27_;
	_data_->dependencies_length1 = 9;
	_data_->_dependencies_size_ = _data_->dependencies_length1;
	_data_->_tmp28_ = _data_->dependencies;
	_data_->_tmp28__length1 = _data_->dependencies_length1;
	{
		_data_->dependency_collection_length1 = 0;
		_data_->_dependency_collection_size_ = 0;
		_data_->dependency_collection = _data_->_tmp28_;
		_data_->dependency_collection_length1 = _data_->_tmp28__length1;
		for (_data_->dependency_it = 0; _data_->dependency_it < _data_->dependency_collection_length1; _data_->dependency_it = _data_->dependency_it + 1) {
			_data_->_tmp29_ = g_strdup (_data_->dependency_collection[_data_->dependency_it]);
			_data_->dependency = _data_->_tmp29_;
			{
				_data_->_tmp30_ = _data_->dependency;
				_data_->_state_ = 5;
				proton_plus_utils_system_check_dependency (_data_->_tmp30_, proton_plus_widgets_tools_stl_release_row_dependency_check_ready, _data_);
				return FALSE;
				_state_5:
				if (!proton_plus_utils_system_check_dependency_finish (_data_->_res_)) {
					_data_->_tmp31_ = _data_->_result_;
					_data_->_tmp32_ = _data_->_result_;
					_data_->_tmp33_ = proton_plus_widgets_tools_stl_dependency_check_result_get_missing_dependencies (_data_->_tmp32_);
					_data_->_tmp34_ = _data_->_tmp33_;
					_data_->_tmp35_ = _data_->dependency;
					_data_->_tmp36_ = g_strdup_printf ("%s\n", _data_->_tmp35_);
					_data_->_tmp37_ = _data_->_tmp36_;
					_data_->_tmp38_ = g_strconcat (_data_->_tmp34_, _data_->_tmp37_, NULL);
					_data_->_tmp39_ = _data_->_tmp38_;
					proton_plus_widgets_tools_stl_dependency_check_result_set_missing_dependencies (_data_->_tmp32_, _data_->_tmp39_);
					_g_free0 (_data_->_tmp39_);
					_g_free0 (_data_->_tmp37_);
				}
				_g_free0 (_data_->dependency);
			}
		}
	}
	_data_->result = _data_->_result_;
	_data_->dependencies = (_vala_array_free (_data_->dependencies, _data_->dependencies_length1, (GDestroyNotify) g_free), NULL);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
proton_plus_widgets_tools_stl_release_row_show_yad_compatibility_warning (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	AdwAlertDialog* alert_dialog = NULL;
	AdwAlertDialog* _tmp0_;
	GtkRoot* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (AdwAlertDialog*) adw_alert_dialog_new (_ ("SteamTinkerLaunch may not work"), _ ("YAD 15 is currently incompatible with SteamTinkerLaunch. SteamTinkerLa" \
"unch may fail to start even if ProtonPlus installs it successfully.\n" \
"\n" \
"This is a SteamTinkerLaunch compatibility issue, not a ProtonPlus inst" \
"allation problem."));
	g_object_ref_sink (_tmp0_);
	alert_dialog = _tmp0_;
	adw_alert_dialog_add_response (alert_dialog, "cancel", _ ("Cancel"));
	adw_alert_dialog_add_response (alert_dialog, "install", _ ("Install Anyway"));
	adw_alert_dialog_set_default_response (alert_dialog, "cancel");
	adw_alert_dialog_set_close_response (alert_dialog, "cancel");
	adw_alert_dialog_set_response_appearance (alert_dialog, "install", ADW_RESPONSE_SUGGESTED);
	proton_plus_widgets_tools_stl_release_row_track_yad_warning (alert_dialog, self);
	_tmp1_ = gtk_widget_get_root ((GtkWidget*) self);
	proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) alert_dialog, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow));
	_g_object_unref0 (alert_dialog);
}

static Block36Data*
block36_data_ref (Block36Data* _data36_)
{
	g_atomic_int_inc (&_data36_->_ref_count_);
	return _data36_;
}

static void
block36_data_unref (void * _userdata_)
{
	Block36Data* _data36_;
	_data36_ = (Block36Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data36_->_ref_count_)) {
		g_weak_ref_clear (&_data36_->owner_ref);
		g_slice_free (Block36Data, _data36_);
	}
}

static void
__lambda59_ (Block36Data* _data36_,
             const gchar* response)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* row = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp3_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp8_;
	g_return_if_fail (response != NULL);
	_tmp0_ = g_weak_ref_get (&_data36_->owner_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp0_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	row = _tmp1_;
	_tmp3_ = row;
	if (_tmp3_ == NULL) {
		_tmp2_ = TRUE;
	} else {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = row;
		_tmp5_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp6_ = _tmp5_;
		_tmp2_ = _tmp6_;
	}
	if (_tmp2_) {
		_g_object_unref0 (row);
		return;
	}
	if (g_strcmp0 (response, "install") != 0) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp7_;
		_tmp7_ = row;
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
		_g_object_unref0 (row);
		return;
	}
	if (_data36_->installation_continued) {
		_g_object_unref0 (row);
		return;
	}
	_data36_->installation_continued = TRUE;
	_tmp8_ = row;
	proton_plus_widgets_tools_stl_release_row_external_install_check (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
	_g_object_unref0 (row);
}

static void
___lambda59__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                        const gchar* response,
                                        gpointer self)
{
	__lambda59_ (self, response);
}

static void
__lambda62_ (Block36Data* _data36_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* row = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	_tmp0_ = g_weak_ref_get (&_data36_->owner_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp0_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	row = _tmp1_;
	if (!_data36_->installation_continued) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
		_tmp4_ = row;
		_tmp3_ = _tmp4_ != NULL;
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp5_;
		gboolean _tmp6_;
		gboolean _tmp7_;
		_tmp5_ = row;
		_tmp6_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp7_ = _tmp6_;
		_tmp2_ = !_tmp7_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp8_;
		_tmp8_ = row;
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
	}
	_g_object_unref0 (row);
}

static void
___lambda62__adw_dialog_closed (AdwDialog* _sender,
                                gpointer self)
{
	__lambda62_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_track_yad_warning (AdwAlertDialog* alert_dialog,
                                                             ProtonPlusWidgetsToolsSTLReleaseRow* owner)
{
	Block36Data* _data36_;
	g_return_if_fail (alert_dialog != NULL);
	g_return_if_fail (owner != NULL);
	_data36_ = g_slice_new0 (Block36Data);
	_data36_->_ref_count_ = 1;
	_data36_->installation_continued = FALSE;
	g_weak_ref_init (&_data36_->owner_ref, (GObject*) owner);
	g_signal_connect_data (alert_dialog, "response", (GCallback) ___lambda59__adw_alert_dialog_response, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
	g_signal_connect_data ((AdwDialog*) alert_dialog, "closed", (GCallback) ___lambda62__adw_dialog_closed, block36_data_ref (_data36_), (GClosureNotify) block36_data_unref, 0);
	block36_data_unref (_data36_);
	_data36_ = NULL;
}

static void
proton_plus_widgets_tools_stl_release_row_external_install_check (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	gboolean has_external_install = FALSE;
	ProtonPlusServicesInstallationService* _tmp0_;
	ProtonPlusServicesInstallationService* _tmp1_;
	ProtonPlusServicesInstallJob* _tmp2_;
	ProtonPlusServicesInstallJob* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = proton_plus_services_installation_service_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_widgets_tools_release_row_get_job ((ProtonPlusWidgetsToolsReleaseRow*) self);
	_tmp3_ = _tmp2_;
	has_external_install = proton_plus_services_installation_service_detect_steam_tinker_launch_external_installations (_tmp1_, _tmp3_);
	if (has_external_install) {
		AdwAlertDialog* alert_dialog = NULL;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		gchar** _tmp6_;
		gchar** _tmp7_;
		gchar** _tmp8_;
		gint _tmp8__length1;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		gchar* _tmp12_;
		gchar* _tmp13_;
		AdwAlertDialog* _tmp14_;
		AdwAlertDialog* _tmp15_;
		AdwAlertDialog* _tmp16_;
		AdwAlertDialog* _tmp17_;
		AdwAlertDialog* _tmp18_;
		AdwAlertDialog* _tmp19_;
		AdwAlertDialog* _tmp20_;
		AdwAlertDialog* _tmp21_;
		GtkRoot* _tmp22_;
		_tmp4_ = adw_preferences_row_get_title ((AdwPreferencesRow*) self);
		_tmp5_ = _tmp4_;
		_tmp7_ = _tmp6_ = g_strsplit (_tmp5_, " ", 0);
		_tmp8_ = _tmp7_;
		_tmp8__length1 = _vala_array_length (_tmp6_);
		_tmp9_ = _tmp8_[0];
		_tmp10_ = g_strdup_printf (_ ("It looks like you currently have another version of %s which was not i" \
"nstalled by ProtonPlus."), _tmp9_);
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strdup_printf ("%s\n\n%s", _tmp11_, _ ("Do you want to reinstall it with ProtonPlus?"));
		_tmp13_ = _tmp12_;
		_tmp14_ = (AdwAlertDialog*) adw_alert_dialog_new (_ ("Warning"), _tmp13_);
		g_object_ref_sink (_tmp14_);
		_tmp15_ = _tmp14_;
		_g_free0 (_tmp13_);
		_g_free0 (_tmp11_);
		_tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
		alert_dialog = _tmp15_;
		_tmp16_ = alert_dialog;
		adw_alert_dialog_add_response (_tmp16_, "no", _ ("No"));
		_tmp17_ = alert_dialog;
		adw_alert_dialog_add_response (_tmp17_, "yes", _ ("Yes"));
		_tmp18_ = alert_dialog;
		adw_alert_dialog_set_response_appearance (_tmp18_, "no", ADW_RESPONSE_DEFAULT);
		_tmp19_ = alert_dialog;
		adw_alert_dialog_set_response_appearance (_tmp19_, "yes", ADW_RESPONSE_DESTRUCTIVE);
		_tmp20_ = alert_dialog;
		proton_plus_widgets_tools_stl_release_row_track_external_install_warning (_tmp20_, self);
		_tmp21_ = alert_dialog;
		_tmp22_ = gtk_widget_get_root ((GtkWidget*) self);
		proton_plus_widgets_window_present_dialog_for_controller ((AdwDialog*) _tmp21_, (GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_window_get_type (), GtkWindow));
		_g_object_unref0 (alert_dialog);
	} else {
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) self, FALSE);
		PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_CLASS (proton_plus_widgets_tools_stl_release_row_parent_class)->install_button_clicked (G_TYPE_CHECK_INSTANCE_CAST (self, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, ProtonPlusWidgetsToolsReleaseRow));
	}
}

static Block37Data*
block37_data_ref (Block37Data* _data37_)
{
	g_atomic_int_inc (&_data37_->_ref_count_);
	return _data37_;
}

static void
block37_data_unref (void * _userdata_)
{
	Block37Data* _data37_;
	_data37_ = (Block37Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data37_->_ref_count_)) {
		g_weak_ref_clear (&_data37_->owner_ref);
		g_slice_free (Block37Data, _data37_);
	}
}

static void
__lambda60_ (Block37Data* _data37_,
             const gchar* response)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* row = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp3_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp8_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp9_;
	g_return_if_fail (response != NULL);
	_tmp0_ = g_weak_ref_get (&_data37_->owner_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp0_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	row = _tmp1_;
	_tmp3_ = row;
	if (_tmp3_ == NULL) {
		_tmp2_ = TRUE;
	} else {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp4_ = row;
		_tmp5_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp6_ = _tmp5_;
		_tmp2_ = _tmp6_;
	}
	if (_tmp2_) {
		_g_object_unref0 (row);
		return;
	}
	if (g_strcmp0 (response, "yes") != 0) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp7_;
		_tmp7_ = row;
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
		_g_object_unref0 (row);
		return;
	}
	if (_data37_->installation_started) {
		_g_object_unref0 (row);
		return;
	}
	_data37_->installation_started = TRUE;
	_tmp8_ = row;
	proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
	_tmp9_ = row;
	proton_plus_widgets_tools_stl_release_row_install_after_external_check (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
	_g_object_unref0 (row);
}

static void
___lambda60__adw_alert_dialog_response (AdwAlertDialog* _sender,
                                        const gchar* response,
                                        gpointer self)
{
	__lambda60_ (self, response);
}

static void
__lambda61_ (Block37Data* _data37_)
{
	ProtonPlusWidgetsToolsSTLReleaseRow* row = NULL;
	GObject* _tmp0_;
	ProtonPlusWidgetsToolsSTLReleaseRow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	_tmp0_ = g_weak_ref_get (&_data37_->owner_ref);
	_tmp1_ = PROTON_PLUS_WIDGETS_TOOLS_IS_STL_RELEASE_ROW (_tmp0_) ? ((ProtonPlusWidgetsToolsSTLReleaseRow*) _tmp0_) : NULL;
	if (_tmp1_ == NULL) {
		_g_object_unref0 (_tmp0_);
	}
	row = _tmp1_;
	if (!_data37_->installation_started) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp4_;
		_tmp4_ = row;
		_tmp3_ = _tmp4_ != NULL;
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp5_;
		gboolean _tmp6_;
		gboolean _tmp7_;
		_tmp5_ = row;
		_tmp6_ = proton_plus_widgets_tools_release_row_get_row_disposed ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow));
		_tmp7_ = _tmp6_;
		_tmp2_ = !_tmp7_;
	} else {
		_tmp2_ = FALSE;
	}
	if (_tmp2_) {
		ProtonPlusWidgetsToolsSTLReleaseRow* _tmp8_;
		_tmp8_ = row;
		proton_plus_widgets_tools_release_row_update_action_request_state ((ProtonPlusWidgetsToolsReleaseRow*) G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, PROTON_PLUS_WIDGETS_TOOLS_TYPE_STL_RELEASE_ROW, ProtonPlusWidgetsToolsSTLReleaseRow), FALSE);
	}
	_g_object_unref0 (row);
}

static void
___lambda61__adw_dialog_closed (AdwDialog* _sender,
                                gpointer self)
{
	__lambda61_ (self);
}

static void
proton_plus_widgets_tools_stl_release_row_track_external_install_warning (AdwAlertDialog* alert_dialog,
                                                                          ProtonPlusWidgetsToolsSTLReleaseRow* owner)
{
	Block37Data* _data37_;
	g_return_if_fail (alert_dialog != NULL);
	g_return_if_fail (owner != NULL);
	_data37_ = g_slice_new0 (Block37Data);
	_data37_->_ref_count_ = 1;
	_data37_->installation_started = FALSE;
	g_weak_ref_init (&_data37_->owner_ref, (GObject*) owner);
	g_signal_connect_data (alert_dialog, "response", (GCallback) ___lambda60__adw_alert_dialog_response, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
	g_signal_connect_data ((AdwDialog*) alert_dialog, "closed", (GCallback) ___lambda61__adw_dialog_closed, block37_data_ref (_data37_), (GClosureNotify) block37_data_unref, 0);
	block37_data_unref (_data37_);
	_data37_ = NULL;
}

static void
proton_plus_widgets_tools_stl_release_row_install_after_external_check (ProtonPlusWidgetsToolsSTLReleaseRow* self)
{
	g_return_if_fail (self != NULL);
	PROTON_PLUS_WIDGETS_TOOLS_RELEASE_ROW_CLASS (proton_plus_widgets_tools_stl_release_row_parent_class)->install_button_clicked (G_TYPE_CHECK_INSTANCE_CAST (self, PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, ProtonPlusWidgetsToolsReleaseRow));
}

static void
proton_plus_widgets_tools_stl_release_row_class_init (ProtonPlusWidgetsToolsSTLReleaseRowClass * klass,
                                                      gpointer klass_data)
{
	proton_plus_widgets_tools_stl_release_row_parent_class = g_type_class_peek_parent (klass);
	((ProtonPlusWidgetsToolsReleaseRowClass *) klass)->install_button_clicked = (void (*) (ProtonPlusWidgetsToolsReleaseRow*)) proton_plus_widgets_tools_stl_release_row_real_install_button_clicked;
	((ProtonPlusWidgetsToolsReleaseRowClass *) klass)->customize_remove_dialog = (void (*) (ProtonPlusWidgetsToolsReleaseRow*, ProtonPlusWidgetsToolsRemoveDialog*)) proton_plus_widgets_tools_stl_release_row_real_customize_remove_dialog;
}

static void
proton_plus_widgets_tools_stl_release_row_instance_init (ProtonPlusWidgetsToolsSTLReleaseRow * self,
                                                         gpointer klass)
{
}

static GType
proton_plus_widgets_tools_stl_release_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsToolsSTLReleaseRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_tools_stl_release_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsToolsSTLReleaseRow), 0, (GInstanceInitFunc) proton_plus_widgets_tools_stl_release_row_instance_init, NULL };
	GType proton_plus_widgets_tools_stl_release_row_type_id;
	proton_plus_widgets_tools_stl_release_row_type_id = g_type_register_static (PROTON_PLUS_WIDGETS_TOOLS_TYPE_RELEASE_ROW, "ProtonPlusWidgetsToolsSTLReleaseRow", &g_define_type_info, 0);
	return proton_plus_widgets_tools_stl_release_row_type_id;
}

GType
proton_plus_widgets_tools_stl_release_row_get_type (void)
{
	static volatile gsize proton_plus_widgets_tools_stl_release_row_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_tools_stl_release_row_type_id__once)) {
		GType proton_plus_widgets_tools_stl_release_row_type_id;
		proton_plus_widgets_tools_stl_release_row_type_id = proton_plus_widgets_tools_stl_release_row_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_tools_stl_release_row_type_id__once, proton_plus_widgets_tools_stl_release_row_type_id);
	}
	return proton_plus_widgets_tools_stl_release_row_type_id__once;
}

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

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

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

