/* launch-command-composer.c generated by valac 0.56.19, the Vala compiler
 * generated from launch-command-composer.vala, do not modify */

#include "protonplus_core.h"
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-object.h>
#include <gee.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

enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_CAPABILITY_CONTEXT_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_CAPABILITY_CONTEXT_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_CAPABILITY_CONTEXT_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSER_0_PROPERTY,
	PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSER_NUM_PROPERTIES
};
static GParamSpec* proton_plus_widgets_games_launch_options_editor_launch_command_composer_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSER_NUM_PROPERTIES];
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelectionPrivate {
	gchar* _option_id;
	gchar** _values;
	gint _values_length1;
	gint __values_size_;
	gchar* _wrapper_id;
	gchar** _additional_wrapper_arguments;
	gint _additional_wrapper_arguments_length1;
	gint __additional_wrapper_arguments_size_;
	gboolean _values_are_serialized;
	gint* _value_source_indexes;
	gint _value_source_indexes_length1;
	gint __value_source_indexes_size_;
	gchar* _value_source_identity;
};

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContextPrivate {
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _capabilities;
	gint _capabilities_length1;
	gint __capabilities_size_;
};

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequestPrivate {
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _selections;
	gint _selections_length1;
	gint __selections_size_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _capabilities;
	gboolean _retain_placeholder_for_arguments_only;
};

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticPrivate {
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode _code;
	gchar* _option_id;
	gchar* _message;
};

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResultPrivate {
	gboolean _is_valid;
	GeeList* _diagnostics;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _plan;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _build_result;
	gchar* _launch_line;
};

struct _ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposerPrivate {
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* catalog;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* builder;
};

static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_selection_parent_class = NULL;
static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_parent_class = NULL;
static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_parent_class = NULL;
static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_parent_class = NULL;
static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_parent_class = NULL;
static gint ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer_private_offset;
static gpointer proton_plus_widgets_games_launch_options_editor_launch_command_composer_parent_class = NULL;

static gchar** _vala_array_dup10 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup11 (gchar** self,
                           gssize length);
static gint* _vala_array_dup12 (gint* self,
                         gssize length);
static gchar** _vala_array_dup13 (gchar** self,
                           gssize length);
static gchar** _vala_array_dup14 (gchar** self,
                           gssize length);
static void proton_plus_widgets_games_launch_options_editor_launch_command_selection_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_type_once (void);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_property (GObject * object,
                                                                                                  guint property_id,
                                                                                                  GValue * value,
                                                                                                  GParamSpec * pspec);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_property (GObject * object,
                                                                                                  guint property_id,
                                                                                                  const GValue * value,
                                                                                                  GParamSpec * pspec);
static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _vala_array_dup15 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* self,
                                                                                    gssize length);
static void proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_type_once (void);
static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _vala_array_dup16 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** self,
                                                                                     gssize length);
static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _vala_array_dup17 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** self,
                                                                                     gssize length);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_type_once (void);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_property (GObject * object,
                                                                                                            guint property_id,
                                                                                                            GValue * value,
                                                                                                            GParamSpec * pspec);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_property (GObject * object,
                                                                                                            guint property_id,
                                                                                                            const GValue * value,
                                                                                                            GParamSpec * pspec);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_type_once (void);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_property (GObject * object,
                                                                                                               guint property_id,
                                                                                                               GValue * value,
                                                                                                               GParamSpec * pspec);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_property (GObject * object,
                                                                                                               guint property_id,
                                                                                                               const GValue * value,
                                                                                                               GParamSpec * pspec);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_type_once (void);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_property (GObject * object,
                                                                                                           guint property_id,
                                                                                                           GValue * value,
                                                                                                           GParamSpec * pspec);
static void _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_property (GObject * object,
                                                                                                           guint property_id,
                                                                                                           const GValue * value,
                                                                                                           GParamSpec * pspec);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                  GeeArrayList* diagnostics,
                                                                                  ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode code,
                                                                                  const gchar* id,
                                                                                  const gchar* message);
static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* proton_plus_widgets_games_launch_options_editor_launch_command_composer_invalid (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                                                                          GeeArrayList* diagnostics);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_capabilities (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                    GeeArrayList* diagnostics,
                                                                                                    const gchar* id,
                                                                                                    ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* required,
                                                                                                    gint required_length1,
                                                                                                    ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_add_selected_wrapper (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                   GeeArrayList* diagnostics,
                                                                                                   const gchar* option_id,
                                                                                                   const gchar* wrapper_id,
                                                                                                   gchar** allowed,
                                                                                                   gint allowed_length1,
                                                                                                   ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities,
                                                                                                   GeeHashMap* selected);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_safe_arguments (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                    GeeArrayList* diagnostics,
                                                                                                    const gchar* option_id,
                                                                                                    const gchar* wrapper_id,
                                                                                                    gchar** tokens,
                                                                                                    gint tokens_length1,
                                                                                                    GeeHashMap* arguments);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                 GeeArrayList* diagnostics,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_environment (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                 GeeArrayList* diagnostics,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                                 GeeArrayList* environments);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                               GeeArrayList* diagnostics,
                                                                                                               ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_wrapper_argument (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                      GeeArrayList* diagnostics,
                                                                                                      ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                                      ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                                      GeeHashMap* arguments);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_serialized_argument (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                         GeeArrayList* diagnostics,
                                                                                                         const gchar* id,
                                                                                                         const gchar* raw,
                                                                                                         GeeArrayList* output);
static gboolean proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                       GeeArrayList* diagnostics,
                                                                                       const gchar* id,
                                                                                       const gchar* token);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_fixed_tokens (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                  GeeArrayList* diagnostics,
                                                                                                  const gchar* id,
                                                                                                  gchar** tokens,
                                                                                                  gint tokens_length1,
                                                                                                  GeeArrayList* output);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_composite (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                               GeeArrayList* diagnostics,
                                                                                               ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                               ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                               GeeArrayList* environments,
                                                                                               GeeHashMap* arguments);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_relationships (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                     GeeArrayList* diagnostics,
                                                                                                     ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selections,
                                                                                                     gint selections_length1,
                                                                                                     GeeHashSet* selected_ids,
                                                                                                     GeeHashMap* selected_wrappers,
                                                                                                     ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_environment_keys (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                        GeeArrayList* diagnostics,
                                                                                                        GeeArrayList* environments);
static gboolean proton_plus_widgets_games_launch_options_editor_launch_command_composer_valid_selectable (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                   GeeArrayList* diagnostics,
                                                                                                   const gchar* id,
                                                                                                   const gchar* value,
                                                                                                   gchar** selectable,
                                                                                                   gint selectable_length1);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_shape (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                           GeeArrayList* diagnostics,
                                                                                           const gchar* id,
                                                                                           gchar** values,
                                                                                           gint values_length1,
                                                                                           ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* shape,
                                                                                           GeeArrayList* output);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_arguments_for_wrapper (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                           GeeArrayList* diagnostics,
                                                                                                           const gchar* option_id,
                                                                                                           const gchar* wrapper_id,
                                                                                                           GeeArrayList* tokens,
                                                                                                           GeeHashMap* arguments);
static gboolean proton_plus_widgets_games_launch_options_editor_launch_command_composer_contains (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                           gchar** values,
                                                                                           gint values_length1,
                                                                                           const gchar* value);
static void proton_plus_widgets_games_launch_options_editor_launch_command_composer_finalize (GObject * obj);
static GType proton_plus_widgets_games_launch_options_editor_launch_command_composer_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 inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection_private_offset);
}

static gchar**
_vala_array_dup10 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup11 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gint*
_vala_array_dup12 (gint* self,
                   gssize length)
{
	if (length > 0) {
		return _vala_memdup2 (self, length * sizeof (gint));
	}
	return NULL;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection*
proton_plus_widgets_games_launch_options_editor_launch_command_selection_construct (GType object_type,
                                                                                    const gchar* option_id,
                                                                                    gchar** values,
                                                                                    gint values_length1,
                                                                                    const gchar* wrapper_id,
                                                                                    gchar** additional_wrapper_arguments,
                                                                                    gint additional_wrapper_arguments_length1,
                                                                                    gboolean values_are_serialized,
                                                                                    gint* value_source_indexes,
                                                                                    gint value_source_indexes_length1,
                                                                                    const gchar* value_source_identity)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection * self = NULL;
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gint* _tmp2_;
	gint _tmp2__length1;
	g_return_val_if_fail (option_id != NULL, NULL);
	g_return_val_if_fail (wrapper_id != NULL, NULL);
	g_return_val_if_fail (value_source_identity != NULL, NULL);
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection*) g_object_new (object_type, "option-id", option_id, "wrapper-id", wrapper_id, "values-are-serialized", values_are_serialized, "value-source-identity", value_source_identity, NULL);
	_tmp0_ = (values != NULL) ? _vala_array_dup10 (values, values_length1) : values;
	_tmp0__length1 = values_length1;
	self->priv->_values = (_vala_array_free (self->priv->_values, self->priv->_values_length1, (GDestroyNotify) g_free), NULL);
	self->priv->_values = _tmp0_;
	self->priv->_values_length1 = _tmp0__length1;
	self->priv->__values_size_ = self->priv->_values_length1;
	_tmp1_ = (additional_wrapper_arguments != NULL) ? _vala_array_dup11 (additional_wrapper_arguments, additional_wrapper_arguments_length1) : additional_wrapper_arguments;
	_tmp1__length1 = additional_wrapper_arguments_length1;
	self->priv->_additional_wrapper_arguments = (_vala_array_free (self->priv->_additional_wrapper_arguments, self->priv->_additional_wrapper_arguments_length1, (GDestroyNotify) g_free), NULL);
	self->priv->_additional_wrapper_arguments = _tmp1_;
	self->priv->_additional_wrapper_arguments_length1 = _tmp1__length1;
	self->priv->__additional_wrapper_arguments_size_ = self->priv->_additional_wrapper_arguments_length1;
	_tmp2_ = (value_source_indexes != NULL) ? _vala_array_dup12 (value_source_indexes, value_source_indexes_length1) : value_source_indexes;
	_tmp2__length1 = value_source_indexes_length1;
	self->priv->_value_source_indexes = (g_free (self->priv->_value_source_indexes), NULL);
	self->priv->_value_source_indexes = _tmp2_;
	self->priv->_value_source_indexes_length1 = _tmp2__length1;
	self->priv->__value_source_indexes_size_ = self->priv->_value_source_indexes_length1;
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection*
proton_plus_widgets_games_launch_options_editor_launch_command_selection_new (const gchar* option_id,
                                                                              gchar** values,
                                                                              gint values_length1,
                                                                              const gchar* wrapper_id,
                                                                              gchar** additional_wrapper_arguments,
                                                                              gint additional_wrapper_arguments_length1,
                                                                              gboolean values_are_serialized,
                                                                              gint* value_source_indexes,
                                                                              gint value_source_indexes_length1,
                                                                              const gchar* value_source_identity)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_selection_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_SELECTION, option_id, values, values_length1, wrapper_id, additional_wrapper_arguments, additional_wrapper_arguments_length1, values_are_serialized, value_source_indexes, value_source_indexes_length1, value_source_identity);
}

static gchar**
_vala_array_dup13 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                     gint* result_length1)
{
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_values;
	_tmp0__length1 = self->priv->_values_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup13 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static gchar**
_vala_array_dup14 (gchar** self,
                   gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

gchar**
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_additional_wrapper_arguments (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                                           gint* result_length1)
{
	gchar** _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_additional_wrapper_arguments;
	_tmp0__length1 = self->priv->_additional_wrapper_arguments_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup14 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

gint
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_value_source_index (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                                 gint position)
{
	gint _tmp0_ = 0;
	gboolean _tmp1_ = FALSE;
	gint* _tmp2_;
	gint _tmp2__length1;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	_tmp2_ = self->priv->_value_source_indexes;
	_tmp2__length1 = self->priv->_value_source_indexes_length1;
	if (_tmp2_ != NULL) {
		gint* _tmp3_;
		gint _tmp3__length1;
		_tmp3_ = self->priv->_value_source_indexes;
		_tmp3__length1 = self->priv->_value_source_indexes_length1;
		_tmp1_ = position < _tmp3__length1;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		gint* _tmp4_;
		gint _tmp4__length1;
		gint _tmp5_;
		_tmp4_ = self->priv->_value_source_indexes;
		_tmp4__length1 = self->priv->_value_source_indexes_length1;
		_tmp5_ = _tmp4_[position];
		_tmp0_ = _tmp5_;
	} else {
		_tmp0_ = -1;
	}
	result = _tmp0_;
	return result;
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_option_id;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_option_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                        const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_option_id);
		self->priv->_option_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY]);
	}
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_wrapper_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_wrapper_id;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_wrapper_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_wrapper_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_wrapper_id);
		self->priv->_wrapper_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values_are_serialized (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_values_are_serialized;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_values_are_serialized (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values_are_serialized (self);
	if (old_value != value) {
		self->priv->_values_are_serialized = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY]);
	}
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_value_source_identity (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_value_source_identity;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_value_source_identity (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* self,
                                                                                                    const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_value_source_identity (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_value_source_identity);
		self->priv->_value_source_identity = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY]);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelectionClass * klass,
                                                                                     gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_selection_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_selection_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY] = g_param_spec_string ("option-id", "option-id", "option-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY] = g_param_spec_string ("wrapper-id", "wrapper-id", "wrapper-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY] = g_param_spec_boolean ("values-are-serialized", "values-are-serialized", "values-are-serialized", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_selection_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY] = g_param_spec_string ("value-source-identity", "value-source-identity", "value-source-identity", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection * self,
                                                                                        gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_selection_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_SELECTION, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection);
	_g_free0 (self->priv->_option_id);
	self->priv->_values = (_vala_array_free (self->priv->_values, self->priv->_values_length1, (GDestroyNotify) g_free), NULL);
	_g_free0 (self->priv->_wrapper_id);
	self->priv->_additional_wrapper_arguments = (_vala_array_free (self->priv->_additional_wrapper_arguments, self->priv->_additional_wrapper_arguments_length1, (GDestroyNotify) g_free), NULL);
	self->priv->_value_source_indexes = (g_free (self->priv->_value_source_indexes), NULL);
	_g_free0 (self->priv->_value_source_identity);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_selection_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_selection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_selection_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelectionPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_selection_type_id__once;
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_property (GObject * object,
                                                                                             guint property_id,
                                                                                             GValue * value,
                                                                                             GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_SELECTION, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_wrapper_id (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values_are_serialized (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_value_source_identity (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_property (GObject * object,
                                                                                             guint property_id,
                                                                                             const GValue * value,
                                                                                             GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_SELECTION, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_OPTION_ID_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_option_id (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_WRAPPER_ID_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_wrapper_id (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUES_ARE_SERIALIZED_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_values_are_serialized (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_SELECTION_VALUE_SOURCE_IDENTITY_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_selection_set_value_source_identity (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext_private_offset);
}

static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability*
_vala_array_dup15 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* self,
                   gssize length)
{
	if (length > 0) {
		return _vala_memdup2 (self, length * sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability));
	}
	return NULL;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext*
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_construct (GType object_type,
                                                                                             ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* capabilities,
                                                                                             gint capabilities_length1)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext * self = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp0_;
	gint _tmp0__length1;
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext*) g_object_new (object_type, NULL);
	_tmp0_ = (capabilities != NULL) ? _vala_array_dup15 (capabilities, capabilities_length1) : capabilities;
	_tmp0__length1 = capabilities_length1;
	self->priv->_capabilities = (g_free (self->priv->_capabilities), NULL);
	self->priv->_capabilities = _tmp0_;
	self->priv->_capabilities_length1 = _tmp0__length1;
	self->priv->__capabilities_size_ = self->priv->_capabilities_length1;
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext*
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_new (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* capabilities,
                                                                                       gint capabilities_length1)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_CAPABILITY_CONTEXT, capabilities, capabilities_length1);
}

gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_has (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* self,
                                                                                       ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability capability)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp0_;
	gint _tmp0__length1;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->_capabilities;
	_tmp0__length1 = self->priv->_capabilities_length1;
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* candidate_collection = NULL;
		gint candidate_collection_length1 = 0;
		gint _candidate_collection_size_ = 0;
		gint candidate_it = 0;
		candidate_collection = _tmp0_;
		candidate_collection_length1 = _tmp0__length1;
		for (candidate_it = 0; candidate_it < candidate_collection_length1; candidate_it = candidate_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability candidate = 0;
			candidate = candidate_collection[candidate_it];
			{
				if (candidate == capability) {
					result = TRUE;
					return result;
				}
			}
		}
	}
	result = FALSE;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContextClass * klass,
                                                                                              gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext_private_offset);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_finalize;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext * self,
                                                                                                 gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_CAPABILITY_CONTEXT, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext);
	self->priv->_capabilities = (g_free (self->priv->_capabilities), NULL);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContextPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_type_id__once;
}

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest_private_offset);
}

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

static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection**
_vala_array_dup16 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** self,
                   gssize length)
{
	if (length >= 0) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** result;
		gssize i;
		result = g_new0 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection*, length + 1);
		for (i = 0; i < length; i++) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp0_;
			_tmp0_ = _g_object_ref0 (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_construct (GType object_type,
                                                                                              ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selections,
                                                                                              gint selections_length1,
                                                                                              ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities,
                                                                                              gboolean retain_placeholder_for_arguments_only)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest * self = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp0_;
	gint _tmp0__length1;
	g_return_val_if_fail (capabilities != NULL, NULL);
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest*) g_object_new (object_type, "capabilities", capabilities, "retain-placeholder-for-arguments-only", retain_placeholder_for_arguments_only, NULL);
	_tmp0_ = (selections != NULL) ? _vala_array_dup16 (selections, selections_length1) : selections;
	_tmp0__length1 = selections_length1;
	self->priv->_selections = (_vala_array_free (self->priv->_selections, self->priv->_selections_length1, (GDestroyNotify) g_object_unref), NULL);
	self->priv->_selections = _tmp0_;
	self->priv->_selections_length1 = _tmp0__length1;
	self->priv->__selections_size_ = self->priv->_selections_length1;
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_new (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selections,
                                                                                        gint selections_length1,
                                                                                        ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities,
                                                                                        gboolean retain_placeholder_for_arguments_only)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_REQUEST, selections, selections_length1, capabilities, retain_placeholder_for_arguments_only);
}

gchar**
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_selections_ids (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self,
                                                                                                       gint* result_length1)
{
	GeeArrayList* ids = NULL;
	GeeArrayList* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp1_;
	gint _tmp1__length1;
	GeeArrayList* _tmp7_;
	gint _tmp8_ = 0;
	gpointer* _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	gchar** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	ids = _tmp0_;
	_tmp1_ = self->priv->_selections;
	_tmp1__length1 = self->priv->_selections_length1;
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selection_collection = NULL;
		gint selection_collection_length1 = 0;
		gint _selection_collection_size_ = 0;
		gint selection_it = 0;
		selection_collection = _tmp1_;
		selection_collection_length1 = _tmp1__length1;
		for (selection_it = 0; selection_it < selection_collection_length1; selection_it = selection_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp2_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection = NULL;
			_tmp2_ = _g_object_ref0 (selection_collection[selection_it]);
			selection = _tmp2_;
			{
				GeeArrayList* _tmp3_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp4_;
				const gchar* _tmp5_;
				const gchar* _tmp6_;
				_tmp3_ = ids;
				_tmp4_ = selection;
				_tmp5_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp4_);
				_tmp6_ = _tmp5_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, _tmp6_);
				_g_object_unref0 (selection);
			}
		}
	}
	_tmp7_ = ids;
	_tmp9_ = gee_collection_to_array ((GeeCollection*) _tmp7_, &_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp10__length1 = _tmp8_;
	if (result_length1) {
		*result_length1 = _tmp10__length1;
	}
	result = _tmp10_;
	_g_object_unref0 (ids);
	return result;
}

static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection**
_vala_array_dup17 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** self,
                   gssize length)
{
	if (length >= 0) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** result;
		gssize i;
		result = g_new0 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection*, length + 1);
		for (i = 0; i < length; i++) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp0_;
			_tmp0_ = _g_object_ref0 (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection**
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_selections (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self,
                                                                                                   gint* result_length1)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp0_;
	gint _tmp0__length1;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp1_;
	gint _tmp1__length1;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp2_;
	gint _tmp2__length1;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_selections;
	_tmp0__length1 = self->priv->_selections_length1;
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup17 (_tmp0_, _tmp0__length1) : _tmp0_;
	_tmp1__length1 = _tmp0__length1;
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp1__length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* result;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_capabilities;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_capabilities (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self,
                                                                                                     ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* value)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (self);
	if (old_value != value) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_capabilities);
		self->priv->_capabilities = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY]);
	}
}

gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_retain_placeholder_for_arguments_only (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_retain_placeholder_for_arguments_only;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_retain_placeholder_for_arguments_only (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* self,
                                                                                                                              gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_retain_placeholder_for_arguments_only (self);
	if (old_value != value) {
		self->priv->_retain_placeholder_for_arguments_only = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY]);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequestClass * klass,
                                                                                               gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY] = g_param_spec_object ("capabilities", "capabilities", "capabilities", PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_CAPABILITY_CONTEXT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY] = g_param_spec_boolean ("retain-placeholder-for-arguments-only", "retain-placeholder-for-arguments-only", "retain-placeholder-for-arguments-only", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest * self,
                                                                                                  gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_REQUEST, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest);
	self->priv->_selections = (_vala_array_free (self->priv->_selections, self->priv->_selections_length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (self->priv->_capabilities);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequestPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_type_id__once;
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_property (GObject * object,
                                                                                                       guint property_id,
                                                                                                       GValue * value,
                                                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_REQUEST, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_retain_placeholder_for_arguments_only (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_property (GObject * object,
                                                                                                       guint property_id,
                                                                                                       const GValue * value,
                                                                                                       GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_REQUEST, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_CAPABILITIES_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_capabilities (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_REQUEST_RETAIN_PLACEHOLDER_FOR_ARGUMENTS_ONLY_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_set_retain_placeholder_for_arguments_only (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_get_type_once (void)
{
	static const GEnumValue values[] = {{PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNKNOWN_OPTION_ID, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNKNOWN_OPTION_ID", "unknown-option-id"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_OPTION_SELECTION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_OPTION_SELECTION", "duplicate-option-selection"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_OPTION_NOT_ELIGIBLE_FOR_MANAGED_EMISSION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_OPTION_NOT_ELIGIBLE_FOR_MANAGED_EMISSION", "option-not-eligible-for-managed-emission"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY", "missing-required-capability"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DEPENDENCY, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DEPENDENCY", "missing-dependency"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EXPLICIT_OPTION_CONFLICT, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EXPLICIT_OPTION_CONFLICT", "explicit-option-conflict"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_CONFLICT_GROUP_COLLISION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_CONFLICT_GROUP_COLLISION", "conflict-group-collision"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_WRAPPER_SELECTION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_WRAPPER_SELECTION", "invalid-wrapper-selection"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MUTUALLY_EXCLUSIVE_WRAPPERS, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MUTUALLY_EXCLUSIVE_WRAPPERS", "mutually-exclusive-wrappers"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_WRAPPER, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_WRAPPER", "duplicate-wrapper"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_WITHOUT_WRAPPER, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_WITHOUT_WRAPPER", "wrapper-argument-without-wrapper"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_OWNED_BY_WRONG_WRAPPER, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_OWNED_BY_WRONG_WRAPPER", "wrapper-argument-owned-by-wrong-wrapper"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE", "missing-dynamic-value"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNEXPECTED_DYNAMIC_VALUE, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNEXPECTED_DYNAMIC_VALUE", "unexpected-dynamic-value"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_VALUE_COUNT, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_VALUE_COUNT", "invalid-value-count"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNSUPPORTED_SELECTABLE_VALUE, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNSUPPORTED_SELECTABLE_VALUE", "unsupported-selectable-value"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_ENVIRONMENT_KEY, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_ENVIRONMENT_KEY", "duplicate-environment-key"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMPTY_OR_UNSAFE_ARGUMENT, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMPTY_OR_UNSAFE_ARGUMENT", "empty-or-unsafe-argument"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMBEDDED_COMMAND_PLACEHOLDER, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMBEDDED_COMMAND_PLACEHOLDER", "embedded-command-placeholder"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_COMPOSITE_OUTPUT, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_COMPOSITE_OUTPUT", "invalid-composite-output"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_CATALOG_DEFINITION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_CATALOG_DEFINITION", "invalid-catalog-definition"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNMANAGED_PARSED_CONTENT, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNMANAGED_PARSED_CONTENT", "unmanaged-parsed-content"}, {PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_NESTING_VIOLATION, "PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_NESTING_VIOLATION", "wrapper-nesting-violation"}, {0, NULL, NULL}};
	GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id = g_enum_register_static ("ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode", values);
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_code_type_id__once;
}

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic_private_offset);
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_construct (GType object_type,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode code,
                                                                                                 const gchar* option_id,
                                                                                                 const gchar* message)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic * self = NULL;
	g_return_val_if_fail (option_id != NULL, NULL);
	g_return_val_if_fail (message != NULL, NULL);
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic*) g_object_new (object_type, "code", code, "option-id", option_id, "message", message, NULL);
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_new (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode code,
                                                                                           const gchar* option_id,
                                                                                           const gchar* message)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, code, option_id, message);
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_code (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_code;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_code (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self,
                                                                                                ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode value)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_code (self);
	if (old_value != value) {
		self->priv->_code = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY]);
	}
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_option_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_option_id;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_option_id (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self,
                                                                                                     const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_option_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_option_id);
		self->priv->_option_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY]);
	}
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_message (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_message;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_message (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* self,
                                                                                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_message (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_message);
		self->priv->_message = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY]);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticClass * klass,
                                                                                                  gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY] = g_param_spec_enum ("code", "code", "code", PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY] = g_param_spec_string ("option-id", "option-id", "option-id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY] = g_param_spec_string ("message", "message", "message", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic * self,
                                                                                                     gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic);
	_g_free0 (self->priv->_option_id);
	_g_free0 (self->priv->_message);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_type_id__once;
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_property (GObject * object,
                                                                                                          guint property_id,
                                                                                                          GValue * value,
                                                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY:
		g_value_set_enum (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_code (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_option_id (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_get_message (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_property (GObject * object,
                                                                                                          guint property_id,
                                                                                                          const GValue * value,
                                                                                                          GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_code (self, g_value_get_enum (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_OPTION_ID_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_option_id (self, g_value_get_string (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_MESSAGE_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_set_message (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult_private_offset);
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_construct (GType object_type,
                                                                                             gboolean is_valid,
                                                                                             GeeList* diagnostics,
                                                                                             ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* plan,
                                                                                             ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* build_result)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult * self = NULL;
	const gchar* _tmp0_ = NULL;
	gboolean _tmp1_ = FALSE;
	g_return_val_if_fail (diagnostics != NULL, NULL);
	if (is_valid) {
		_tmp1_ = build_result != NULL;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		const gchar* _tmp2_;
		const gchar* _tmp3_;
		_tmp2_ = proton_plus_widgets_games_launch_options_editor_launch_command_build_result_get_launch_line (build_result);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_;
	} else {
		_tmp0_ = "";
	}
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult*) g_object_new (object_type, "is-valid", is_valid, "diagnostics", diagnostics, "plan", plan, "build-result", build_result, "launch-line", _tmp0_, NULL);
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_new (gboolean is_valid,
                                                                                       GeeList* diagnostics,
                                                                                       ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* plan,
                                                                                       ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* build_result)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_RESULT, is_valid, diagnostics, plan, build_result);
}

gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_is_valid (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_valid;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_is_valid (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self,
                                                                                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_is_valid (self);
	if (old_value != value) {
		self->priv->_is_valid = value;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY]);
	}
}

GeeList*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_diagnostics (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	GeeList* result;
	GeeList* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_diagnostics;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_diagnostics (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self,
                                                                                                   GeeList* value)
{
	GeeList* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_diagnostics (self);
	if (old_value != value) {
		GeeList* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_diagnostics);
		self->priv->_diagnostics = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY]);
	}
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_plan (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* result;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_plan;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_plan (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self,
                                                                                            ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* value)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_plan (self);
	if (old_value != value) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_plan);
		self->priv->_plan = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY]);
	}
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_build_result (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* result;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_build_result;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_build_result (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self,
                                                                                                    ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* value)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_build_result (self);
	if (old_value != value) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_build_result);
		self->priv->_build_result = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY]);
	}
}

const gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_launch_line (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_launch_line;
	result = _tmp0_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_launch_line (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* self,
                                                                                                   const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_launch_line (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_launch_line);
		self->priv->_launch_line = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY]);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResultClass * klass,
                                                                                              gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_property;
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY] = g_param_spec_boolean ("is-valid", "is-valid", "is-valid", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY] = g_param_spec_object ("diagnostics", "diagnostics", "diagnostics", GEE_TYPE_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY] = g_param_spec_object ("plan", "plan", "plan", PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_PLAN, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY] = g_param_spec_object ("build-result", "build-result", "build-result", PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_BUILD_RESULT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
	g_object_class_install_property (G_OBJECT_CLASS (klass), PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_properties[PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY] = g_param_spec_string ("launch-line", "launch-line", "launch-line", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult * self,
                                                                                                 gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_RESULT, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult);
	_g_object_unref0 (self->priv->_diagnostics);
	_g_object_unref0 (self->priv->_plan);
	_g_object_unref0 (self->priv->_build_result);
	_g_free0 (self->priv->_launch_line);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResultPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_type_id__once;
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_property (GObject * object,
                                                                                                      guint property_id,
                                                                                                      GValue * value,
                                                                                                      GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_RESULT, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY:
		g_value_set_boolean (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_is_valid (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_diagnostics (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_plan (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY:
		g_value_set_object (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_build_result (self));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY:
		g_value_set_string (value, proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_get_launch_line (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_property (GObject * object,
                                                                                                      guint property_id,
                                                                                                      const GValue * value,
                                                                                                      GParamSpec * pspec)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_RESULT, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult);
	switch (property_id) {
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_IS_VALID_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_is_valid (self, g_value_get_boolean (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_DIAGNOSTICS_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_diagnostics (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_PLAN_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_plan (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_BUILD_RESULT_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_build_result (self, g_value_get_object (value));
		break;
		case PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_RESULT_LAUNCH_LINE_PROPERTY:
		proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_set_launch_line (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
proton_plus_widgets_games_launch_options_editor_launch_command_composer_get_instance_private (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self)
{
	return G_STRUCT_MEMBER_P (self, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer_private_offset);
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_construct (GType object_type,
                                                                                   ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* catalog,
                                                                                   ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* builder)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer * self = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp0_ = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp1_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp3_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* _tmp4_ = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* _tmp5_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* _tmp7_;
	self = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer*) g_object_new (object_type, NULL);
	_tmp1_ = _g_object_ref0 (catalog);
	_tmp0_ = _tmp1_;
	if (_tmp0_ == NULL) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp2_;
		_tmp2_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_new ();
		_g_object_unref0 (_tmp0_);
		_tmp0_ = _tmp2_;
	}
	_tmp3_ = _tmp0_;
	_tmp0_ = NULL;
	_g_object_unref0 (self->priv->catalog);
	self->priv->catalog = _tmp3_;
	_tmp5_ = _g_object_ref0 (builder);
	_tmp4_ = _tmp5_;
	if (_tmp4_ == NULL) {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* _tmp6_;
		_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_command_builder_new ();
		_g_object_unref0 (_tmp4_);
		_tmp4_ = _tmp6_;
	}
	_tmp7_ = _tmp4_;
	_tmp4_ = NULL;
	_g_object_unref0 (self->priv->builder);
	self->priv->builder = _tmp7_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp0_);
	return self;
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_new (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* catalog,
                                                                             ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* builder)
{
	return proton_plus_widgets_games_launch_options_editor_launch_command_composer_construct (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSER, catalog, builder);
}

ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_compose (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionRequest* request)
{
	GeeArrayList* diagnostics = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selections = NULL;
	gint _tmp17_ = 0;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp18_;
	gint selections_length1;
	gint _selections_size_;
	GeeHashSet* selected_ids = NULL;
	GeeHashSet* _tmp19_;
	GeeHashMap* selected_wrappers = NULL;
	GeeHashMap* _tmp20_;
	GeeHashMap* wrapper_arguments = NULL;
	GeeHashMap* _tmp21_;
	GeeArrayList* environments = NULL;
	GeeArrayList* _tmp22_;
	GeeArrayList* game_arguments = NULL;
	GeeArrayList* _tmp23_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp24_;
	gint _tmp24__length1;
	GeeArrayList* _tmp247_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** _tmp248_;
	gint _tmp248__length1;
	GeeHashSet* _tmp249_;
	GeeHashMap* _tmp250_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp251_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp252_;
	GeeArrayList* _tmp253_;
	GeeArrayList* _tmp254_;
	GeeArrayList* _tmp255_;
	gint _tmp256_;
	gint _tmp257_;
	GeeArrayList* wrappers = NULL;
	GeeArrayList* _tmp260_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment** environment_values = NULL;
	GeeArrayList* _tmp314_;
	gint _tmp315_;
	gint _tmp316_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment** _tmp317_;
	gint environment_values_length1;
	gint _environment_values_size_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation** wrapper_values = NULL;
	GeeArrayList* _tmp326_;
	gint _tmp327_;
	gint _tmp328_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation** _tmp329_;
	gint wrapper_values_length1;
	gint _wrapper_values_size_;
	gchar** game_argument_values = NULL;
	GeeArrayList* _tmp338_;
	gint _tmp339_;
	gint _tmp340_;
	gchar** _tmp341_;
	gint game_argument_values_length1;
	gint _game_argument_values_size_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* plan = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment** _tmp350_;
	gint _tmp350__length1;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation** _tmp351_;
	gint _tmp351__length1;
	gchar** _tmp352_;
	gint _tmp352__length1;
	gboolean _tmp353_;
	gboolean _tmp354_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _tmp355_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* build_result = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuilder* _tmp356_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _tmp357_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp358_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp359_;
	gboolean _tmp360_;
	gboolean _tmp361_;
	GeeArrayList* _tmp376_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandPlan* _tmp377_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp378_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* _tmp379_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (request != NULL, NULL);
	_tmp0_ = gee_array_list_new (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	diagnostics = _tmp0_;
	{
		GeeList* _issue_list = NULL;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp1_;
		GeeList* _tmp2_;
		gint _issue_size = 0;
		GeeList* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		gint _issue_index = 0;
		_tmp1_ = self->priv->catalog;
		_tmp2_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_validate (_tmp1_);
		_issue_list = _tmp2_;
		_tmp3_ = _issue_list;
		_tmp4_ = gee_collection_get_size ((GeeCollection*) _tmp3_);
		_tmp5_ = _tmp4_;
		_issue_size = _tmp5_;
		_issue_index = -1;
		while (TRUE) {
			gint _tmp6_;
			gint _tmp7_;
			gchar* issue = NULL;
			GeeList* _tmp8_;
			gpointer _tmp9_;
			GeeArrayList* _tmp10_;
			const gchar* _tmp11_;
			_issue_index = _issue_index + 1;
			_tmp6_ = _issue_index;
			_tmp7_ = _issue_size;
			if (!(_tmp6_ < _tmp7_)) {
				break;
			}
			_tmp8_ = _issue_list;
			_tmp9_ = gee_list_get (_tmp8_, _issue_index);
			issue = (gchar*) _tmp9_;
			_tmp10_ = diagnostics;
			_tmp11_ = issue;
			proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp10_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_CATALOG_DEFINITION, "", _tmp11_);
			_g_free0 (issue);
		}
		_g_object_unref0 (_issue_list);
	}
	_tmp12_ = diagnostics;
	_tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
	_tmp14_ = _tmp13_;
	if (_tmp14_ > 0) {
		GeeArrayList* _tmp15_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* _tmp16_;
		_tmp15_ = diagnostics;
		_tmp16_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_invalid (self, _tmp15_);
		result = _tmp16_;
		_g_object_unref0 (diagnostics);
		return result;
	}
	_tmp18_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_selections (request, &_tmp17_);
	selections = _tmp18_;
	selections_length1 = _tmp17_;
	_selections_size_ = selections_length1;
	_tmp19_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	selected_ids = _tmp19_;
	_tmp20_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_WRAPPER_DEFINITION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	selected_wrappers = _tmp20_;
	_tmp21_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	wrapper_arguments = _tmp21_;
	_tmp22_ = gee_array_list_new (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_ENVIRONMENT_ASSIGNMENT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	environments = _tmp22_;
	_tmp23_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	game_arguments = _tmp23_;
	_tmp24_ = selections;
	_tmp24__length1 = selections_length1;
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selection_collection = NULL;
		gint selection_collection_length1 = 0;
		gint _selection_collection_size_ = 0;
		gint selection_it = 0;
		selection_collection = _tmp24_;
		selection_collection_length1 = _tmp24__length1;
		for (selection_it = 0; selection_it < selection_collection_length1; selection_it = selection_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp25_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection = NULL;
			_tmp25_ = _g_object_ref0 (selection_collection[selection_it]);
			selection = _tmp25_;
			{
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* metadata = NULL;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp26_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp27_;
				const gchar* _tmp28_;
				const gchar* _tmp29_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp30_;
				gboolean _tmp31_ = FALSE;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp32_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics = NULL;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp45_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp46_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp47_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp48_;
				GeeHashSet* _tmp49_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp50_;
				const gchar* _tmp51_;
				const gchar* _tmp52_;
				GeeHashSet* _tmp62_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp63_;
				const gchar* _tmp64_;
				const gchar* _tmp65_;
				gboolean _tmp66_ = FALSE;
				gboolean _tmp67_ = FALSE;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp68_;
				gboolean _tmp69_;
				gboolean _tmp70_;
				GeeArrayList* _tmp86_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp87_;
				const gchar* _tmp88_;
				const gchar* _tmp89_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp90_;
				gint _tmp91_ = 0;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp92_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp93_;
				gint _tmp93__length1;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp94_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp95_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp96_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp97_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp98_;
				_tmp26_ = self->priv->catalog;
				_tmp27_ = selection;
				_tmp28_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp27_);
				_tmp29_ = _tmp28_;
				_tmp30_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup (_tmp26_, _tmp29_);
				metadata = _tmp30_;
				_tmp32_ = metadata;
				if (_tmp32_ == NULL) {
					_tmp31_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp33_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp34_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp35_;
					_tmp33_ = metadata;
					_tmp34_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp33_);
					_tmp35_ = _tmp34_;
					_tmp31_ = _tmp35_ == NULL;
				}
				if (_tmp31_) {
					GeeArrayList* _tmp36_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp37_;
					const gchar* _tmp38_;
					const gchar* _tmp39_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp40_;
					const gchar* _tmp41_;
					const gchar* _tmp42_;
					gchar* _tmp43_;
					gchar* _tmp44_;
					_tmp36_ = diagnostics;
					_tmp37_ = selection;
					_tmp38_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp37_);
					_tmp39_ = _tmp38_;
					_tmp40_ = selection;
					_tmp41_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp40_);
					_tmp42_ = _tmp41_;
					_tmp43_ = g_strdup_printf ("Unknown launch option '%s'.", _tmp42_);
					_tmp44_ = _tmp43_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp36_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNKNOWN_OPTION_ID, _tmp39_, _tmp44_);
					_g_free0 (_tmp44_);
					_g_object_unref0 (metadata);
					_g_object_unref0 (selection);
					continue;
				}
				_tmp45_ = metadata;
				_tmp46_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp45_);
				_tmp47_ = _tmp46_;
				_tmp48_ = _g_object_ref0 (_tmp47_);
				semantics = _tmp48_;
				_tmp49_ = selected_ids;
				_tmp50_ = selection;
				_tmp51_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp50_);
				_tmp52_ = _tmp51_;
				if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp49_, _tmp52_)) {
					GeeArrayList* _tmp53_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp54_;
					const gchar* _tmp55_;
					const gchar* _tmp56_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp57_;
					const gchar* _tmp58_;
					const gchar* _tmp59_;
					gchar* _tmp60_;
					gchar* _tmp61_;
					_tmp53_ = diagnostics;
					_tmp54_ = selection;
					_tmp55_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp54_);
					_tmp56_ = _tmp55_;
					_tmp57_ = selection;
					_tmp58_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp57_);
					_tmp59_ = _tmp58_;
					_tmp60_ = g_strdup_printf ("Launch option '%s' was selected more than once.", _tmp59_);
					_tmp61_ = _tmp60_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp53_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_OPTION_SELECTION, _tmp56_, _tmp61_);
					_g_free0 (_tmp61_);
				}
				_tmp62_ = selected_ids;
				_tmp63_ = selection;
				_tmp64_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp63_);
				_tmp65_ = _tmp64_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp62_, _tmp65_);
				_tmp68_ = semantics;
				_tmp69_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_managed_emission (_tmp68_);
				_tmp70_ = _tmp69_;
				if (!_tmp70_) {
					_tmp67_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp71_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp72_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp73_;
					_tmp71_ = semantics;
					_tmp72_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp71_);
					_tmp73_ = _tmp72_;
					_tmp67_ = _tmp73_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_COMMAND_BOUNDARY;
				}
				if (_tmp67_) {
					_tmp66_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp74_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp75_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp76_;
					_tmp74_ = semantics;
					_tmp75_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp74_);
					_tmp76_ = _tmp75_;
					_tmp66_ = _tmp76_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_OPAQUE_CONTEXT_DEPENDENT;
				}
				if (_tmp66_) {
					GeeArrayList* _tmp77_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp78_;
					const gchar* _tmp79_;
					const gchar* _tmp80_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp81_;
					const gchar* _tmp82_;
					const gchar* _tmp83_;
					gchar* _tmp84_;
					gchar* _tmp85_;
					_tmp77_ = diagnostics;
					_tmp78_ = selection;
					_tmp79_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp78_);
					_tmp80_ = _tmp79_;
					_tmp81_ = selection;
					_tmp82_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp81_);
					_tmp83_ = _tmp82_;
					_tmp84_ = g_strdup_printf ("Launch option '%s' is not eligible for managed emission.", _tmp83_);
					_tmp85_ = _tmp84_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp77_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_OPTION_NOT_ELIGIBLE_FOR_MANAGED_EMISSION, _tmp80_, _tmp85_);
					_g_free0 (_tmp85_);
					_g_object_unref0 (semantics);
					_g_object_unref0 (metadata);
					_g_object_unref0 (selection);
					continue;
				}
				_tmp86_ = diagnostics;
				_tmp87_ = selection;
				_tmp88_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp87_);
				_tmp89_ = _tmp88_;
				_tmp90_ = semantics;
				_tmp92_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_required_capabilities (_tmp90_, &_tmp91_);
				_tmp93_ = _tmp92_;
				_tmp93__length1 = _tmp91_;
				_tmp94_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (request);
				_tmp95_ = _tmp94_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_capabilities (self, _tmp86_, _tmp89_, _tmp93_, (gint) _tmp91_, _tmp95_);
				_tmp93_ = (g_free (_tmp93_), NULL);
				_tmp96_ = semantics;
				_tmp97_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp96_);
				_tmp98_ = _tmp97_;
				if (_tmp98_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_WRAPPER_SELECTOR) {
					GeeArrayList* _tmp99_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp100_;
					const gchar* _tmp101_;
					const gchar* _tmp102_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp103_;
					const gchar* _tmp104_;
					const gchar* _tmp105_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp106_;
					gchar** _tmp107_;
					gint _tmp107__length1;
					gint _tmp108_ = 0;
					gchar** _tmp109_;
					gint _tmp109__length1;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp110_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp111_;
					GeeHashMap* _tmp112_;
					GeeArrayList* _tmp113_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp114_;
					const gchar* _tmp115_;
					const gchar* _tmp116_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp117_;
					const gchar* _tmp118_;
					const gchar* _tmp119_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp120_;
					gint _tmp121_ = 0;
					gchar** _tmp122_;
					gchar** _tmp123_;
					gint _tmp123__length1;
					GeeHashMap* _tmp124_;
					GeeArrayList* _tmp125_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp126_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp127_;
					_tmp99_ = diagnostics;
					_tmp100_ = selection;
					_tmp101_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp100_);
					_tmp102_ = _tmp101_;
					_tmp103_ = selection;
					_tmp104_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_wrapper_id (_tmp103_);
					_tmp105_ = _tmp104_;
					_tmp106_ = semantics;
					_tmp107_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_selectable_wrapper_ids (_tmp106_, &_tmp108_);
					_tmp107__length1 = _tmp108_;
					_tmp109_ = _tmp107_;
					_tmp109__length1 = _tmp107__length1;
					_tmp110_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (request);
					_tmp111_ = _tmp110_;
					_tmp112_ = selected_wrappers;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add_selected_wrapper (self, _tmp99_, _tmp102_, _tmp105_, _tmp109_, (gint) _tmp109__length1, _tmp111_, _tmp112_);
					_tmp113_ = diagnostics;
					_tmp114_ = selection;
					_tmp115_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp114_);
					_tmp116_ = _tmp115_;
					_tmp117_ = selection;
					_tmp118_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_wrapper_id (_tmp117_);
					_tmp119_ = _tmp118_;
					_tmp120_ = selection;
					_tmp122_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_additional_wrapper_arguments (_tmp120_, &_tmp121_);
					_tmp123_ = _tmp122_;
					_tmp123__length1 = _tmp121_;
					_tmp124_ = wrapper_arguments;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_safe_arguments (self, _tmp113_, _tmp116_, _tmp119_, _tmp123_, (gint) _tmp121_, _tmp124_);
					_tmp123_ = (_vala_array_free (_tmp123_, _tmp123__length1, (GDestroyNotify) g_free), NULL);
					_tmp125_ = diagnostics;
					_tmp126_ = selection;
					_tmp127_ = semantics;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (self, _tmp125_, _tmp126_, _tmp127_);
				} else {
					gboolean _tmp128_ = FALSE;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp129_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp130_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp131_;
					_tmp129_ = semantics;
					_tmp130_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp129_);
					_tmp131_ = _tmp130_;
					if (_tmp131_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_PREFIX_WRAPPER) {
						_tmp128_ = TRUE;
					} else {
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp132_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp133_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp134_;
						_tmp132_ = semantics;
						_tmp133_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp132_);
						_tmp134_ = _tmp133_;
						_tmp128_ = _tmp134_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_DELIMITED_WRAPPER;
					}
					if (_tmp128_) {
						GeeArrayList* _tmp135_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp136_;
						const gchar* _tmp137_;
						const gchar* _tmp138_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp139_;
						const gchar* _tmp140_;
						const gchar* _tmp141_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp142_;
						const gchar* _tmp143_;
						const gchar* _tmp144_;
						gchar* _tmp145_;
						gchar** _tmp146_;
						gchar** _tmp147_;
						gint _tmp147__length1;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp148_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* _tmp149_;
						GeeHashMap* _tmp150_;
						GeeArrayList* _tmp151_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp152_;
						const gchar* _tmp153_;
						const gchar* _tmp154_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp155_;
						const gchar* _tmp156_;
						const gchar* _tmp157_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp158_;
						gint _tmp159_ = 0;
						gchar** _tmp160_;
						gchar** _tmp161_;
						gint _tmp161__length1;
						GeeHashMap* _tmp162_;
						GeeArrayList* _tmp163_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp164_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp165_;
						_tmp135_ = diagnostics;
						_tmp136_ = selection;
						_tmp137_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp136_);
						_tmp138_ = _tmp137_;
						_tmp139_ = semantics;
						_tmp140_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (_tmp139_);
						_tmp141_ = _tmp140_;
						_tmp142_ = semantics;
						_tmp143_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (_tmp142_);
						_tmp144_ = _tmp143_;
						_tmp145_ = g_strdup (_tmp144_);
						_tmp146_ = g_new0 (gchar*, 1 + 1);
						_tmp146_[0] = _tmp145_;
						_tmp147_ = _tmp146_;
						_tmp147__length1 = 1;
						_tmp148_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (request);
						_tmp149_ = _tmp148_;
						_tmp150_ = selected_wrappers;
						proton_plus_widgets_games_launch_options_editor_launch_command_composer_add_selected_wrapper (self, _tmp135_, _tmp138_, _tmp141_, _tmp147_, (gint) 1, _tmp149_, _tmp150_);
						_tmp147_ = (_vala_array_free (_tmp147_, _tmp147__length1, (GDestroyNotify) g_free), NULL);
						_tmp151_ = diagnostics;
						_tmp152_ = selection;
						_tmp153_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp152_);
						_tmp154_ = _tmp153_;
						_tmp155_ = semantics;
						_tmp156_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (_tmp155_);
						_tmp157_ = _tmp156_;
						_tmp158_ = selection;
						_tmp160_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_additional_wrapper_arguments (_tmp158_, &_tmp159_);
						_tmp161_ = _tmp160_;
						_tmp161__length1 = _tmp159_;
						_tmp162_ = wrapper_arguments;
						proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_safe_arguments (self, _tmp151_, _tmp154_, _tmp157_, _tmp161_, (gint) _tmp159_, _tmp162_);
						_tmp161_ = (_vala_array_free (_tmp161_, _tmp161__length1, (GDestroyNotify) g_free), NULL);
						_tmp163_ = diagnostics;
						_tmp164_ = selection;
						_tmp165_ = semantics;
						proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (self, _tmp163_, _tmp164_, _tmp165_);
					} else {
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp166_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp167_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp168_;
						_tmp166_ = semantics;
						_tmp167_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp166_);
						_tmp168_ = _tmp167_;
						if (_tmp168_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_ENVIRONMENT_ASSIGNMENT) {
							GeeArrayList* _tmp169_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp170_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp171_;
							GeeArrayList* _tmp172_;
							GeeArrayList* _tmp173_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp174_;
							_tmp169_ = diagnostics;
							_tmp170_ = selection;
							_tmp171_ = semantics;
							_tmp172_ = environments;
							proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_environment (self, _tmp169_, _tmp170_, _tmp171_, _tmp172_);
							_tmp173_ = diagnostics;
							_tmp174_ = selection;
							proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (self, _tmp173_, _tmp174_);
						} else {
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp175_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp176_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp177_;
							_tmp175_ = semantics;
							_tmp176_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp175_);
							_tmp177_ = _tmp176_;
							if (_tmp177_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_WRAPPER_ARGUMENT) {
								GeeArrayList* _tmp178_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp179_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp180_;
								GeeHashMap* _tmp181_;
								GeeArrayList* _tmp182_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp183_;
								_tmp178_ = diagnostics;
								_tmp179_ = selection;
								_tmp180_ = semantics;
								_tmp181_ = wrapper_arguments;
								proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_wrapper_argument (self, _tmp178_, _tmp179_, _tmp180_, _tmp181_);
								_tmp182_ = diagnostics;
								_tmp183_ = selection;
								proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (self, _tmp182_, _tmp183_);
							} else {
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp184_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp185_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp186_;
								_tmp184_ = semantics;
								_tmp185_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp184_);
								_tmp186_ = _tmp185_;
								if (_tmp186_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_GAME_ARGUMENT) {
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp187_;
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp188_;
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp189_;
									GeeArrayList* _tmp235_;
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp236_;
									_tmp187_ = semantics;
									_tmp188_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_emission_mode (_tmp187_);
									_tmp189_ = _tmp188_;
									if (_tmp189_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_EMISSION_MODE_DYNAMIC_GAME_ARGUMENTS) {
										gchar** values = NULL;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp190_;
										gint _tmp191_ = 0;
										gchar** _tmp192_;
										gint values_length1;
										gint _values_size_;
										gchar** _tmp193_;
										gint _tmp193__length1;
										gchar** _tmp203_;
										gint _tmp203__length1;
										_tmp190_ = selection;
										_tmp192_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (_tmp190_, &_tmp191_);
										values = _tmp192_;
										values_length1 = _tmp191_;
										_values_size_ = values_length1;
										_tmp193_ = values;
										_tmp193__length1 = values_length1;
										if (_tmp193__length1 == 0) {
											GeeArrayList* _tmp194_;
											ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp195_;
											const gchar* _tmp196_;
											const gchar* _tmp197_;
											ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp198_;
											const gchar* _tmp199_;
											const gchar* _tmp200_;
											gchar* _tmp201_;
											gchar* _tmp202_;
											_tmp194_ = diagnostics;
											_tmp195_ = selection;
											_tmp196_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp195_);
											_tmp197_ = _tmp196_;
											_tmp198_ = selection;
											_tmp199_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp198_);
											_tmp200_ = _tmp199_;
											_tmp201_ = g_strdup_printf ("Launch option '%s' requires at least one argument.", _tmp200_);
											_tmp202_ = _tmp201_;
											proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp194_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE, _tmp197_, _tmp202_);
											_g_free0 (_tmp202_);
										}
										_tmp203_ = values;
										_tmp203__length1 = values_length1;
										{
											gchar** value_collection = NULL;
											gint value_collection_length1 = 0;
											gint _value_collection_size_ = 0;
											gint value_it = 0;
											value_collection = _tmp203_;
											value_collection_length1 = _tmp203__length1;
											for (value_it = 0; value_it < value_collection_length1; value_it = value_it + 1) {
												gchar* _tmp204_;
												gchar* value = NULL;
												_tmp204_ = g_strdup (value_collection[value_it]);
												value = _tmp204_;
												{
													ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp205_;
													gboolean _tmp206_;
													gboolean _tmp207_;
													_tmp205_ = selection;
													_tmp206_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values_are_serialized (_tmp205_);
													_tmp207_ = _tmp206_;
													if (_tmp207_) {
														GeeArrayList* _tmp208_;
														ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp209_;
														const gchar* _tmp210_;
														const gchar* _tmp211_;
														const gchar* _tmp212_;
														GeeArrayList* _tmp213_;
														_tmp208_ = diagnostics;
														_tmp209_ = selection;
														_tmp210_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp209_);
														_tmp211_ = _tmp210_;
														_tmp212_ = value;
														_tmp213_ = game_arguments;
														proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_serialized_argument (self, _tmp208_, _tmp211_, _tmp212_, _tmp213_);
													} else {
														GeeArrayList* _tmp214_;
														ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp215_;
														const gchar* _tmp216_;
														const gchar* _tmp217_;
														const gchar* _tmp218_;
														_tmp214_ = diagnostics;
														_tmp215_ = selection;
														_tmp216_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp215_);
														_tmp217_ = _tmp216_;
														_tmp218_ = value;
														if (proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, _tmp214_, _tmp217_, _tmp218_)) {
															GeeArrayList* _tmp219_;
															const gchar* _tmp220_;
															gchar* _tmp221_;
															gchar* _tmp222_;
															_tmp219_ = game_arguments;
															_tmp220_ = value;
															_tmp221_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_shell_word (_tmp220_);
															_tmp222_ = _tmp221_;
															gee_abstract_collection_add ((GeeAbstractCollection*) _tmp219_, _tmp222_);
															_g_free0 (_tmp222_);
														}
													}
													_g_free0 (value);
												}
											}
										}
										values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
									} else {
										GeeArrayList* _tmp223_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp224_;
										const gchar* _tmp225_;
										const gchar* _tmp226_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp227_;
										gchar** _tmp228_;
										gint _tmp228__length1;
										gint _tmp229_ = 0;
										gchar** _tmp230_;
										gint _tmp230__length1;
										GeeArrayList* _tmp231_;
										GeeArrayList* _tmp232_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp233_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp234_;
										_tmp223_ = diagnostics;
										_tmp224_ = selection;
										_tmp225_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp224_);
										_tmp226_ = _tmp225_;
										_tmp227_ = semantics;
										_tmp228_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_fixed_tokens (_tmp227_, &_tmp229_);
										_tmp228__length1 = _tmp229_;
										_tmp230_ = _tmp228_;
										_tmp230__length1 = _tmp228__length1;
										_tmp231_ = game_arguments;
										proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_fixed_tokens (self, _tmp223_, _tmp226_, _tmp230_, (gint) _tmp230__length1, _tmp231_);
										_tmp232_ = diagnostics;
										_tmp233_ = selection;
										_tmp234_ = semantics;
										proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (self, _tmp232_, _tmp233_, _tmp234_);
									}
									_tmp235_ = diagnostics;
									_tmp236_ = selection;
									proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (self, _tmp235_, _tmp236_);
								} else {
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp237_;
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp238_;
									ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp239_;
									_tmp237_ = semantics;
									_tmp238_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp237_);
									_tmp239_ = _tmp238_;
									if (_tmp239_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_COMPOSITE_DYNAMIC) {
										GeeArrayList* _tmp240_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp241_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp242_;
										GeeArrayList* _tmp243_;
										GeeHashMap* _tmp244_;
										GeeArrayList* _tmp245_;
										ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp246_;
										_tmp240_ = diagnostics;
										_tmp241_ = selection;
										_tmp242_ = semantics;
										_tmp243_ = environments;
										_tmp244_ = wrapper_arguments;
										proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_composite (self, _tmp240_, _tmp241_, _tmp242_, _tmp243_, _tmp244_);
										_tmp245_ = diagnostics;
										_tmp246_ = selection;
										proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (self, _tmp245_, _tmp246_);
									}
								}
							}
						}
					}
				}
				_g_object_unref0 (semantics);
				_g_object_unref0 (metadata);
				_g_object_unref0 (selection);
			}
		}
	}
	_tmp247_ = diagnostics;
	_tmp248_ = selections;
	_tmp248__length1 = selections_length1;
	_tmp249_ = selected_ids;
	_tmp250_ = selected_wrappers;
	_tmp251_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_capabilities (request);
	_tmp252_ = _tmp251_;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_relationships (self, _tmp247_, _tmp248_, (gint) _tmp248__length1, _tmp249_, _tmp250_, _tmp252_);
	_tmp253_ = diagnostics;
	_tmp254_ = environments;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_environment_keys (self, _tmp253_, _tmp254_);
	_tmp255_ = diagnostics;
	_tmp256_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp255_);
	_tmp257_ = _tmp256_;
	if (_tmp257_ > 0) {
		GeeArrayList* _tmp258_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* _tmp259_;
		_tmp258_ = diagnostics;
		_tmp259_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_invalid (self, _tmp258_);
		result = _tmp259_;
		_g_object_unref0 (game_arguments);
		_g_object_unref0 (environments);
		_g_object_unref0 (wrapper_arguments);
		_g_object_unref0 (selected_wrappers);
		_g_object_unref0 (selected_ids);
		selections = (_vala_array_free (selections, selections_length1, (GDestroyNotify) g_object_unref), NULL);
		_g_object_unref0 (diagnostics);
		return result;
	}
	_tmp260_ = gee_array_list_new (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_WRAPPER_INVOCATION, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	wrappers = _tmp260_;
	{
		GeeList* _definition_list = NULL;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp261_;
		GeeList* _tmp262_;
		gint _definition_size = 0;
		GeeList* _tmp263_;
		gint _tmp264_;
		gint _tmp265_;
		gint _definition_index = 0;
		_tmp261_ = self->priv->catalog;
		_tmp262_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_get_wrappers (_tmp261_);
		_definition_list = _tmp262_;
		_tmp263_ = _definition_list;
		_tmp264_ = gee_collection_get_size ((GeeCollection*) _tmp263_);
		_tmp265_ = _tmp264_;
		_definition_size = _tmp265_;
		_definition_index = -1;
		while (TRUE) {
			gint _tmp266_;
			gint _tmp267_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* definition = NULL;
			GeeList* _tmp268_;
			gpointer _tmp269_;
			GeeHashMap* _tmp270_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp271_;
			const gchar* _tmp272_;
			const gchar* _tmp273_;
			gchar** arguments = NULL;
			gchar** _tmp274_;
			gint arguments_length1;
			gint _arguments_size_;
			GeeHashMap* _tmp275_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp276_;
			const gchar* _tmp277_;
			const gchar* _tmp278_;
			GeeArrayList* _tmp297_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp298_;
			const gchar* _tmp299_;
			const gchar* _tmp300_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp301_;
			gchar** _tmp302_;
			gint _tmp302__length1;
			gint _tmp303_ = 0;
			gchar** _tmp304_;
			gint _tmp304__length1;
			gchar** _tmp305_;
			gint _tmp305__length1;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp306_;
			const gchar* _tmp307_;
			const gchar* _tmp308_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp309_;
			guint _tmp310_;
			guint _tmp311_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation* _tmp312_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation* _tmp313_;
			_definition_index = _definition_index + 1;
			_tmp266_ = _definition_index;
			_tmp267_ = _definition_size;
			if (!(_tmp266_ < _tmp267_)) {
				break;
			}
			_tmp268_ = _definition_list;
			_tmp269_ = gee_list_get (_tmp268_, _definition_index);
			definition = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition*) _tmp269_;
			_tmp270_ = selected_wrappers;
			_tmp271_ = definition;
			_tmp272_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp271_);
			_tmp273_ = _tmp272_;
			if (!gee_abstract_map_has_key ((GeeAbstractMap*) _tmp270_, _tmp273_)) {
				_g_object_unref0 (definition);
				continue;
			}
			_tmp274_ = g_new0 (gchar*, 0 + 1);
			arguments = _tmp274_;
			arguments_length1 = 0;
			_arguments_size_ = arguments_length1;
			_tmp275_ = wrapper_arguments;
			_tmp276_ = definition;
			_tmp277_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp276_);
			_tmp278_ = _tmp277_;
			if (gee_abstract_map_has_key ((GeeAbstractMap*) _tmp275_, _tmp278_)) {
				GeeArrayList* stored_arguments = NULL;
				GeeHashMap* _tmp279_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp280_;
				const gchar* _tmp281_;
				const gchar* _tmp282_;
				gpointer _tmp283_;
				GeeArrayList* _tmp284_;
				_tmp279_ = wrapper_arguments;
				_tmp280_ = definition;
				_tmp281_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp280_);
				_tmp282_ = _tmp281_;
				_tmp283_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp279_, _tmp282_);
				stored_arguments = (GeeArrayList*) _tmp283_;
				_tmp284_ = stored_arguments;
				if (_tmp284_ != NULL) {
					GeeArrayList* _tmp285_;
					gint _tmp286_;
					gint _tmp287_;
					gchar** _tmp288_;
					_tmp285_ = stored_arguments;
					_tmp286_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp285_);
					_tmp287_ = _tmp286_;
					_tmp288_ = g_new0 (gchar*, _tmp287_ + 1);
					arguments = (_vala_array_free (arguments, arguments_length1, (GDestroyNotify) g_free), NULL);
					arguments = _tmp288_;
					arguments_length1 = _tmp287_;
					_arguments_size_ = arguments_length1;
					{
						gint index = 0;
						index = 0;
						{
							gboolean _tmp289_ = FALSE;
							_tmp289_ = TRUE;
							while (TRUE) {
								GeeArrayList* _tmp291_;
								gint _tmp292_;
								gint _tmp293_;
								gchar** _tmp294_;
								gint _tmp294__length1;
								GeeArrayList* _tmp295_;
								gpointer _tmp296_;
								if (!_tmp289_) {
									gint _tmp290_;
									_tmp290_ = index;
									index = _tmp290_ + 1;
								}
								_tmp289_ = FALSE;
								_tmp291_ = stored_arguments;
								_tmp292_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp291_);
								_tmp293_ = _tmp292_;
								if (!(index < _tmp293_)) {
									break;
								}
								_tmp294_ = arguments;
								_tmp294__length1 = arguments_length1;
								_tmp295_ = stored_arguments;
								_tmp296_ = gee_abstract_list_get ((GeeAbstractList*) _tmp295_, index);
								_g_free0 (_tmp294_[index]);
								_tmp294_[index] = (gchar*) _tmp296_;
							}
						}
					}
				}
				_g_object_unref0 (stored_arguments);
			}
			_tmp297_ = wrappers;
			_tmp298_ = definition;
			_tmp299_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp298_);
			_tmp300_ = _tmp299_;
			_tmp301_ = definition;
			_tmp302_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_executable_tokens (_tmp301_, &_tmp303_);
			_tmp302__length1 = _tmp303_;
			_tmp304_ = _tmp302_;
			_tmp304__length1 = _tmp302__length1;
			_tmp305_ = arguments;
			_tmp305__length1 = arguments_length1;
			_tmp306_ = definition;
			_tmp307_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_delimiter (_tmp306_);
			_tmp308_ = _tmp307_;
			_tmp309_ = definition;
			_tmp310_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_nesting_priority (_tmp309_);
			_tmp311_ = _tmp310_;
			_tmp312_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_invocation_new (_tmp300_, _tmp304_, _tmp304__length1, _tmp305_, _tmp305__length1, _tmp308_, (gint) _tmp311_);
			_tmp313_ = _tmp312_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp297_, _tmp313_);
			_g_object_unref0 (_tmp313_);
			arguments = (_vala_array_free (arguments, arguments_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (definition);
		}
		_g_object_unref0 (_definition_list);
	}
	_tmp314_ = environments;
	_tmp315_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp314_);
	_tmp316_ = _tmp315_;
	_tmp317_ = g_new0 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment*, _tmp316_ + 1);
	environment_values = _tmp317_;
	environment_values_length1 = _tmp316_;
	_environment_values_size_ = environment_values_length1;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp318_ = FALSE;
			_tmp318_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp320_;
				gint _tmp321_;
				gint _tmp322_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment** _tmp323_;
				gint _tmp323__length1;
				GeeArrayList* _tmp324_;
				gpointer _tmp325_;
				if (!_tmp318_) {
					gint _tmp319_;
					_tmp319_ = index;
					index = _tmp319_ + 1;
				}
				_tmp318_ = FALSE;
				_tmp320_ = environments;
				_tmp321_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp320_);
				_tmp322_ = _tmp321_;
				if (!(index < _tmp322_)) {
					break;
				}
				_tmp323_ = environment_values;
				_tmp323__length1 = environment_values_length1;
				_tmp324_ = environments;
				_tmp325_ = gee_abstract_list_get ((GeeAbstractList*) _tmp324_, index);
				_g_object_unref0 (_tmp323_[index]);
				_tmp323_[index] = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment*) _tmp325_;
			}
		}
	}
	_tmp326_ = wrappers;
	_tmp327_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp326_);
	_tmp328_ = _tmp327_;
	_tmp329_ = g_new0 (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation*, _tmp328_ + 1);
	wrapper_values = _tmp329_;
	wrapper_values_length1 = _tmp328_;
	_wrapper_values_size_ = wrapper_values_length1;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp330_ = FALSE;
			_tmp330_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp332_;
				gint _tmp333_;
				gint _tmp334_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation** _tmp335_;
				gint _tmp335__length1;
				GeeArrayList* _tmp336_;
				gpointer _tmp337_;
				if (!_tmp330_) {
					gint _tmp331_;
					_tmp331_ = index;
					index = _tmp331_ + 1;
				}
				_tmp330_ = FALSE;
				_tmp332_ = wrappers;
				_tmp333_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp332_);
				_tmp334_ = _tmp333_;
				if (!(index < _tmp334_)) {
					break;
				}
				_tmp335_ = wrapper_values;
				_tmp335__length1 = wrapper_values_length1;
				_tmp336_ = wrappers;
				_tmp337_ = gee_abstract_list_get ((GeeAbstractList*) _tmp336_, index);
				_g_object_unref0 (_tmp335_[index]);
				_tmp335_[index] = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperInvocation*) _tmp337_;
			}
		}
	}
	_tmp338_ = game_arguments;
	_tmp339_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp338_);
	_tmp340_ = _tmp339_;
	_tmp341_ = g_new0 (gchar*, _tmp340_ + 1);
	game_argument_values = _tmp341_;
	game_argument_values_length1 = _tmp340_;
	_game_argument_values_size_ = game_argument_values_length1;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp342_ = FALSE;
			_tmp342_ = TRUE;
			while (TRUE) {
				GeeArrayList* _tmp344_;
				gint _tmp345_;
				gint _tmp346_;
				gchar** _tmp347_;
				gint _tmp347__length1;
				GeeArrayList* _tmp348_;
				gpointer _tmp349_;
				if (!_tmp342_) {
					gint _tmp343_;
					_tmp343_ = index;
					index = _tmp343_ + 1;
				}
				_tmp342_ = FALSE;
				_tmp344_ = game_arguments;
				_tmp345_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp344_);
				_tmp346_ = _tmp345_;
				if (!(index < _tmp346_)) {
					break;
				}
				_tmp347_ = game_argument_values;
				_tmp347__length1 = game_argument_values_length1;
				_tmp348_ = game_arguments;
				_tmp349_ = gee_abstract_list_get ((GeeAbstractList*) _tmp348_, index);
				_g_free0 (_tmp347_[index]);
				_tmp347_[index] = (gchar*) _tmp349_;
			}
		}
	}
	_tmp350_ = environment_values;
	_tmp350__length1 = environment_values_length1;
	_tmp351_ = wrapper_values;
	_tmp351__length1 = wrapper_values_length1;
	_tmp352_ = game_argument_values;
	_tmp352__length1 = game_argument_values_length1;
	_tmp353_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_request_get_retain_placeholder_for_arguments_only (request);
	_tmp354_ = _tmp353_;
	_tmp355_ = proton_plus_widgets_games_launch_options_editor_launch_command_plan_new (_tmp350_, _tmp350__length1, _tmp351_, _tmp351__length1, _tmp352_, _tmp352__length1, _tmp354_);
	plan = _tmp355_;
	_tmp356_ = self->priv->builder;
	_tmp357_ = plan;
	_tmp358_ = proton_plus_widgets_games_launch_options_editor_launch_command_builder_build (_tmp356_, _tmp357_);
	build_result = _tmp358_;
	_tmp359_ = build_result;
	_tmp360_ = proton_plus_widgets_games_launch_options_editor_launch_command_build_result_get_is_valid (_tmp359_);
	_tmp361_ = _tmp360_;
	if (!_tmp361_) {
		GeeArrayList* _tmp374_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* _tmp375_;
		{
			GeeList* _error_list = NULL;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandBuildResult* _tmp362_;
			GeeList* _tmp363_;
			GeeList* _tmp364_;
			gint _error_size = 0;
			GeeList* _tmp365_;
			gint _tmp366_;
			gint _tmp367_;
			gint _error_index = 0;
			_tmp362_ = build_result;
			_tmp363_ = proton_plus_widgets_games_launch_options_editor_launch_command_build_result_get_errors (_tmp362_);
			_tmp364_ = _tmp363_;
			_error_list = _tmp364_;
			_tmp365_ = _error_list;
			_tmp366_ = gee_collection_get_size ((GeeCollection*) _tmp365_);
			_tmp367_ = _tmp366_;
			_error_size = _tmp367_;
			_error_index = -1;
			while (TRUE) {
				gint _tmp368_;
				gint _tmp369_;
				gchar* _error_ = NULL;
				GeeList* _tmp370_;
				gpointer _tmp371_;
				GeeArrayList* _tmp372_;
				const gchar* _tmp373_;
				_error_index = _error_index + 1;
				_tmp368_ = _error_index;
				_tmp369_ = _error_size;
				if (!(_tmp368_ < _tmp369_)) {
					break;
				}
				_tmp370_ = _error_list;
				_tmp371_ = gee_list_get (_tmp370_, _error_index);
				_error_ = (gchar*) _tmp371_;
				_tmp372_ = diagnostics;
				_tmp373_ = _error_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp372_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMPTY_OR_UNSAFE_ARGUMENT, "", _tmp373_);
				_g_free0 (_error_);
			}
		}
		_tmp374_ = diagnostics;
		_tmp375_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_invalid (self, _tmp374_);
		result = _tmp375_;
		_g_object_unref0 (build_result);
		_g_object_unref0 (plan);
		game_argument_values = (_vala_array_free (game_argument_values, game_argument_values_length1, (GDestroyNotify) g_free), NULL);
		wrapper_values = (_vala_array_free (wrapper_values, wrapper_values_length1, (GDestroyNotify) g_object_unref), NULL);
		environment_values = (_vala_array_free (environment_values, environment_values_length1, (GDestroyNotify) g_object_unref), NULL);
		_g_object_unref0 (wrappers);
		_g_object_unref0 (game_arguments);
		_g_object_unref0 (environments);
		_g_object_unref0 (wrapper_arguments);
		_g_object_unref0 (selected_wrappers);
		_g_object_unref0 (selected_ids);
		selections = (_vala_array_free (selections, selections_length1, (GDestroyNotify) g_object_unref), NULL);
		_g_object_unref0 (diagnostics);
		return result;
	}
	_tmp376_ = diagnostics;
	_tmp377_ = plan;
	_tmp378_ = build_result;
	_tmp379_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_new (TRUE, (GeeList*) _tmp376_, _tmp377_, _tmp378_);
	result = _tmp379_;
	_g_object_unref0 (build_result);
	_g_object_unref0 (plan);
	game_argument_values = (_vala_array_free (game_argument_values, game_argument_values_length1, (GDestroyNotify) g_free), NULL);
	wrapper_values = (_vala_array_free (wrapper_values, wrapper_values_length1, (GDestroyNotify) g_object_unref), NULL);
	environment_values = (_vala_array_free (environment_values, environment_values_length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (wrappers);
	_g_object_unref0 (game_arguments);
	_g_object_unref0 (environments);
	_g_object_unref0 (wrapper_arguments);
	_g_object_unref0 (selected_wrappers);
	_g_object_unref0 (selected_ids);
	selections = (_vala_array_free (selections, selections_length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (diagnostics);
	return result;
}

GeeList*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_parsed (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                         ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandParseResult* parsed,
                                                                                         ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities)
{
	GeeArrayList* diagnostics = NULL;
	GeeArrayList* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	GeeHashSet* ids = NULL;
	GeeHashSet* _tmp4_;
	GeeHashSet* all_ids = NULL;
	GeeHashSet* _tmp5_;
	GeeHashSet* environment_keys = NULL;
	GeeHashSet* _tmp19_;
	GeeHashSet* conflict_groups = NULL;
	GeeHashSet* _tmp20_;
	GeeHashSet* wrapper_ids = NULL;
	GeeHashSet* _tmp160_;
	GeeHashSet* wrapper_groups = NULL;
	GeeHashSet* _tmp161_;
	gint previous_priority = 0;
	GeeList* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (parsed != NULL, NULL);
	_tmp0_ = gee_array_list_new (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	diagnostics = _tmp0_;
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_command_parse_result_get_is_structurally_safe (parsed);
	_tmp2_ = _tmp1_;
	if (!_tmp2_) {
		GeeArrayList* _tmp3_;
		_tmp3_ = diagnostics;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp3_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNMANAGED_PARSED_CONTENT, "", "Structural parsing found content that cannot be safely managed.");
	}
	_tmp4_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	ids = _tmp4_;
	_tmp5_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	all_ids = _tmp5_;
	{
		GeeArrayList* _occurrence_list = NULL;
		GeeArrayList* _tmp6_;
		GeeArrayList* _tmp7_;
		gint _occurrence_size = 0;
		GeeArrayList* _tmp8_;
		gint _tmp9_;
		gint _tmp10_;
		gint _occurrence_index = 0;
		_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_command_parse_result_get_occurrences (parsed);
		_tmp7_ = _tmp6_;
		_occurrence_list = _tmp7_;
		_tmp8_ = _occurrence_list;
		_tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
		_tmp10_ = _tmp9_;
		_occurrence_size = _tmp10_;
		_occurrence_index = -1;
		while (TRUE) {
			gint _tmp11_;
			gint _tmp12_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* occurrence = NULL;
			GeeArrayList* _tmp13_;
			gpointer _tmp14_;
			GeeHashSet* _tmp15_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp16_;
			const gchar* _tmp17_;
			const gchar* _tmp18_;
			_occurrence_index = _occurrence_index + 1;
			_tmp11_ = _occurrence_index;
			_tmp12_ = _occurrence_size;
			if (!(_tmp11_ < _tmp12_)) {
				break;
			}
			_tmp13_ = _occurrence_list;
			_tmp14_ = gee_abstract_list_get ((GeeAbstractList*) _tmp13_, _occurrence_index);
			occurrence = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence*) _tmp14_;
			_tmp15_ = all_ids;
			_tmp16_ = occurrence;
			_tmp17_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp16_);
			_tmp18_ = _tmp17_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp15_, _tmp18_);
			_g_object_unref0 (occurrence);
		}
	}
	_tmp19_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	environment_keys = _tmp19_;
	_tmp20_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	conflict_groups = _tmp20_;
	{
		GeeArrayList* _occurrence_list = NULL;
		GeeArrayList* _tmp21_;
		GeeArrayList* _tmp22_;
		gint _occurrence_size = 0;
		GeeArrayList* _tmp23_;
		gint _tmp24_;
		gint _tmp25_;
		gint _occurrence_index = 0;
		_tmp21_ = proton_plus_widgets_games_launch_options_editor_launch_command_parse_result_get_occurrences (parsed);
		_tmp22_ = _tmp21_;
		_occurrence_list = _tmp22_;
		_tmp23_ = _occurrence_list;
		_tmp24_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp23_);
		_tmp25_ = _tmp24_;
		_occurrence_size = _tmp25_;
		_occurrence_index = -1;
		while (TRUE) {
			gint _tmp26_;
			gint _tmp27_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* occurrence = NULL;
			GeeArrayList* _tmp28_;
			gpointer _tmp29_;
			GeeHashSet* _tmp30_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp31_;
			const gchar* _tmp32_;
			const gchar* _tmp33_;
			GeeHashSet* _tmp43_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp44_;
			const gchar* _tmp45_;
			const gchar* _tmp46_;
			gboolean _tmp47_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp48_;
			gboolean _tmp49_;
			gboolean _tmp50_;
			gboolean _tmp63_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp64_;
			const gchar* _tmp65_;
			const gchar* _tmp66_;
			GeeHashSet* _tmp80_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp81_;
			const gchar* _tmp82_;
			const gchar* _tmp83_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* metadata = NULL;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp84_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp85_;
			const gchar* _tmp86_;
			const gchar* _tmp87_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp88_;
			gboolean _tmp89_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp90_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics = NULL;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp94_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp95_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp96_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp97_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp106_;
			gchar** _tmp107_;
			gint _tmp107__length1;
			gint _tmp108_ = 0;
			gchar** _tmp109_;
			gint _tmp109__length1;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp123_;
			gchar** _tmp124_;
			gint _tmp124__length1;
			gint _tmp125_ = 0;
			gchar** _tmp126_;
			gint _tmp126__length1;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp140_;
			const gchar* _tmp141_;
			const gchar* _tmp142_;
			_occurrence_index = _occurrence_index + 1;
			_tmp26_ = _occurrence_index;
			_tmp27_ = _occurrence_size;
			if (!(_tmp26_ < _tmp27_)) {
				break;
			}
			_tmp28_ = _occurrence_list;
			_tmp29_ = gee_abstract_list_get ((GeeAbstractList*) _tmp28_, _occurrence_index);
			occurrence = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence*) _tmp29_;
			_tmp30_ = ids;
			_tmp31_ = occurrence;
			_tmp32_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp31_);
			_tmp33_ = _tmp32_;
			if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp30_, _tmp33_)) {
				GeeArrayList* _tmp34_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp35_;
				const gchar* _tmp36_;
				const gchar* _tmp37_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp38_;
				const gchar* _tmp39_;
				const gchar* _tmp40_;
				gchar* _tmp41_;
				gchar* _tmp42_;
				_tmp34_ = diagnostics;
				_tmp35_ = occurrence;
				_tmp36_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp35_);
				_tmp37_ = _tmp36_;
				_tmp38_ = occurrence;
				_tmp39_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp38_);
				_tmp40_ = _tmp39_;
				_tmp41_ = g_strdup_printf ("Parsed command contains duplicate option '%s'.", _tmp40_);
				_tmp42_ = _tmp41_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp34_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_OPTION_SELECTION, _tmp37_, _tmp42_);
				_g_free0 (_tmp42_);
			}
			_tmp43_ = ids;
			_tmp44_ = occurrence;
			_tmp45_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp44_);
			_tmp46_ = _tmp45_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp43_, _tmp46_);
			_tmp48_ = occurrence;
			_tmp49_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_managed_emission (_tmp48_);
			_tmp50_ = _tmp49_;
			if (!_tmp50_) {
				_tmp47_ = TRUE;
			} else {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp51_;
				gboolean _tmp52_;
				gboolean _tmp53_;
				_tmp51_ = occurrence;
				_tmp52_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_is_legacy (_tmp51_);
				_tmp53_ = _tmp52_;
				_tmp47_ = _tmp53_;
			}
			if (_tmp47_) {
				GeeArrayList* _tmp54_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp55_;
				const gchar* _tmp56_;
				const gchar* _tmp57_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp58_;
				const gchar* _tmp59_;
				const gchar* _tmp60_;
				gchar* _tmp61_;
				gchar* _tmp62_;
				_tmp54_ = diagnostics;
				_tmp55_ = occurrence;
				_tmp56_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp55_);
				_tmp57_ = _tmp56_;
				_tmp58_ = occurrence;
				_tmp59_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp58_);
				_tmp60_ = _tmp59_;
				_tmp61_ = g_strdup_printf ("Parsed option '%s' cannot be managed.", _tmp60_);
				_tmp62_ = _tmp61_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp54_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNMANAGED_PARSED_CONTENT, _tmp57_, _tmp62_);
				_g_free0 (_tmp62_);
			}
			_tmp64_ = occurrence;
			_tmp65_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_environment_key (_tmp64_);
			_tmp66_ = _tmp65_;
			if (g_strcmp0 (_tmp66_, "") != 0) {
				GeeHashSet* _tmp67_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp68_;
				const gchar* _tmp69_;
				const gchar* _tmp70_;
				_tmp67_ = environment_keys;
				_tmp68_ = occurrence;
				_tmp69_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_environment_key (_tmp68_);
				_tmp70_ = _tmp69_;
				_tmp63_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp67_, _tmp70_);
			} else {
				_tmp63_ = FALSE;
			}
			if (_tmp63_) {
				GeeArrayList* _tmp71_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp72_;
				const gchar* _tmp73_;
				const gchar* _tmp74_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp75_;
				const gchar* _tmp76_;
				const gchar* _tmp77_;
				gchar* _tmp78_;
				gchar* _tmp79_;
				_tmp71_ = diagnostics;
				_tmp72_ = occurrence;
				_tmp73_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp72_);
				_tmp74_ = _tmp73_;
				_tmp75_ = occurrence;
				_tmp76_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_environment_key (_tmp75_);
				_tmp77_ = _tmp76_;
				_tmp78_ = g_strdup_printf ("Parsed command contains duplicate environment key '%s'.", _tmp77_);
				_tmp79_ = _tmp78_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp71_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_ENVIRONMENT_KEY, _tmp74_, _tmp79_);
				_g_free0 (_tmp79_);
			}
			_tmp80_ = environment_keys;
			_tmp81_ = occurrence;
			_tmp82_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_environment_key (_tmp81_);
			_tmp83_ = _tmp82_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp80_, _tmp83_);
			_tmp84_ = self->priv->catalog;
			_tmp85_ = occurrence;
			_tmp86_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp85_);
			_tmp87_ = _tmp86_;
			_tmp88_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup (_tmp84_, _tmp87_);
			metadata = _tmp88_;
			_tmp90_ = metadata;
			if (_tmp90_ == NULL) {
				_tmp89_ = TRUE;
			} else {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp91_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp92_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp93_;
				_tmp91_ = metadata;
				_tmp92_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp91_);
				_tmp93_ = _tmp92_;
				_tmp89_ = _tmp93_ == NULL;
			}
			if (_tmp89_) {
				_g_object_unref0 (metadata);
				_g_object_unref0 (occurrence);
				continue;
			}
			_tmp94_ = metadata;
			_tmp95_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp94_);
			_tmp96_ = _tmp95_;
			_tmp97_ = _g_object_ref0 (_tmp96_);
			semantics = _tmp97_;
			if (capabilities != NULL) {
				GeeArrayList* _tmp98_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp99_;
				const gchar* _tmp100_;
				const gchar* _tmp101_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp102_;
				gint _tmp103_ = 0;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp104_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* _tmp105_;
				gint _tmp105__length1;
				_tmp98_ = diagnostics;
				_tmp99_ = occurrence;
				_tmp100_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp99_);
				_tmp101_ = _tmp100_;
				_tmp102_ = semantics;
				_tmp104_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_required_capabilities (_tmp102_, &_tmp103_);
				_tmp105_ = _tmp104_;
				_tmp105__length1 = _tmp103_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_capabilities (self, _tmp98_, _tmp101_, _tmp105_, (gint) _tmp103_, capabilities);
				_tmp105_ = (g_free (_tmp105_), NULL);
			}
			_tmp106_ = semantics;
			_tmp107_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_dependencies (_tmp106_, &_tmp108_);
			_tmp107__length1 = _tmp108_;
			_tmp109_ = _tmp107_;
			_tmp109__length1 = _tmp107__length1;
			{
				gchar** dependency_collection = NULL;
				gint dependency_collection_length1 = 0;
				gint _dependency_collection_size_ = 0;
				gint dependency_it = 0;
				dependency_collection = _tmp109_;
				dependency_collection_length1 = _tmp109__length1;
				for (dependency_it = 0; dependency_it < dependency_collection_length1; dependency_it = dependency_it + 1) {
					gchar* _tmp110_;
					gchar* dependency = NULL;
					_tmp110_ = g_strdup (dependency_collection[dependency_it]);
					dependency = _tmp110_;
					{
						GeeHashSet* _tmp111_;
						const gchar* _tmp112_;
						_tmp111_ = all_ids;
						_tmp112_ = dependency;
						if (!gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp111_, _tmp112_)) {
							GeeArrayList* _tmp113_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp114_;
							const gchar* _tmp115_;
							const gchar* _tmp116_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp117_;
							const gchar* _tmp118_;
							const gchar* _tmp119_;
							const gchar* _tmp120_;
							gchar* _tmp121_;
							gchar* _tmp122_;
							_tmp113_ = diagnostics;
							_tmp114_ = occurrence;
							_tmp115_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp114_);
							_tmp116_ = _tmp115_;
							_tmp117_ = occurrence;
							_tmp118_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp117_);
							_tmp119_ = _tmp118_;
							_tmp120_ = dependency;
							_tmp121_ = g_strdup_printf ("Parsed option '%s' requires '%s'.", _tmp119_, _tmp120_);
							_tmp122_ = _tmp121_;
							proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp113_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DEPENDENCY, _tmp116_, _tmp122_);
							_g_free0 (_tmp122_);
						}
						_g_free0 (dependency);
					}
				}
			}
			_tmp123_ = semantics;
			_tmp124_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflicts (_tmp123_, &_tmp125_);
			_tmp124__length1 = _tmp125_;
			_tmp126_ = _tmp124_;
			_tmp126__length1 = _tmp124__length1;
			{
				gchar** conflict_collection = NULL;
				gint conflict_collection_length1 = 0;
				gint _conflict_collection_size_ = 0;
				gint conflict_it = 0;
				conflict_collection = _tmp126_;
				conflict_collection_length1 = _tmp126__length1;
				for (conflict_it = 0; conflict_it < conflict_collection_length1; conflict_it = conflict_it + 1) {
					gchar* _tmp127_;
					gchar* conflict = NULL;
					_tmp127_ = g_strdup (conflict_collection[conflict_it]);
					conflict = _tmp127_;
					{
						GeeHashSet* _tmp128_;
						const gchar* _tmp129_;
						_tmp128_ = all_ids;
						_tmp129_ = conflict;
						if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp128_, _tmp129_)) {
							GeeArrayList* _tmp130_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp131_;
							const gchar* _tmp132_;
							const gchar* _tmp133_;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp134_;
							const gchar* _tmp135_;
							const gchar* _tmp136_;
							const gchar* _tmp137_;
							gchar* _tmp138_;
							gchar* _tmp139_;
							_tmp130_ = diagnostics;
							_tmp131_ = occurrence;
							_tmp132_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp131_);
							_tmp133_ = _tmp132_;
							_tmp134_ = occurrence;
							_tmp135_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp134_);
							_tmp136_ = _tmp135_;
							_tmp137_ = conflict;
							_tmp138_ = g_strdup_printf ("Parsed option '%s' conflicts with '%s'.", _tmp136_, _tmp137_);
							_tmp139_ = _tmp138_;
							proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp130_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EXPLICIT_OPTION_CONFLICT, _tmp133_, _tmp139_);
							_g_free0 (_tmp139_);
						}
						_g_free0 (conflict);
					}
				}
			}
			_tmp140_ = semantics;
			_tmp141_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp140_);
			_tmp142_ = _tmp141_;
			if (g_strcmp0 (_tmp142_, "") != 0) {
				GeeHashSet* _tmp143_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp144_;
				const gchar* _tmp145_;
				const gchar* _tmp146_;
				GeeHashSet* _tmp156_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp157_;
				const gchar* _tmp158_;
				const gchar* _tmp159_;
				_tmp143_ = conflict_groups;
				_tmp144_ = semantics;
				_tmp145_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp144_);
				_tmp146_ = _tmp145_;
				if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp143_, _tmp146_)) {
					GeeArrayList* _tmp147_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandOptionOccurrence* _tmp148_;
					const gchar* _tmp149_;
					const gchar* _tmp150_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp151_;
					const gchar* _tmp152_;
					const gchar* _tmp153_;
					gchar* _tmp154_;
					gchar* _tmp155_;
					_tmp147_ = diagnostics;
					_tmp148_ = occurrence;
					_tmp149_ = proton_plus_widgets_games_launch_options_editor_launch_command_option_occurrence_get_option_id (_tmp148_);
					_tmp150_ = _tmp149_;
					_tmp151_ = semantics;
					_tmp152_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp151_);
					_tmp153_ = _tmp152_;
					_tmp154_ = g_strdup_printf ("Parsed command has a collision in '%s'.", _tmp153_);
					_tmp155_ = _tmp154_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp147_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_CONFLICT_GROUP_COLLISION, _tmp150_, _tmp155_);
					_g_free0 (_tmp155_);
				}
				_tmp156_ = conflict_groups;
				_tmp157_ = semantics;
				_tmp158_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp157_);
				_tmp159_ = _tmp158_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp156_, _tmp159_);
			}
			_g_object_unref0 (semantics);
			_g_object_unref0 (metadata);
			_g_object_unref0 (occurrence);
		}
	}
	_tmp160_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	wrapper_ids = _tmp160_;
	_tmp161_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	wrapper_groups = _tmp161_;
	previous_priority = -1;
	{
		GeeArrayList* _invocation_list = NULL;
		GeeArrayList* _tmp162_;
		GeeArrayList* _tmp163_;
		gint _invocation_size = 0;
		GeeArrayList* _tmp164_;
		gint _tmp165_;
		gint _tmp166_;
		gint _invocation_index = 0;
		_tmp162_ = proton_plus_widgets_games_launch_options_editor_launch_command_parse_result_get_wrappers (parsed);
		_tmp163_ = _tmp162_;
		_invocation_list = _tmp163_;
		_tmp164_ = _invocation_list;
		_tmp165_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp164_);
		_tmp166_ = _tmp165_;
		_invocation_size = _tmp166_;
		_invocation_index = -1;
		while (TRUE) {
			gint _tmp167_;
			gint _tmp168_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* invocation = NULL;
			GeeArrayList* _tmp169_;
			gpointer _tmp170_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* definition = NULL;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp171_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp172_;
			const gchar* _tmp173_;
			const gchar* _tmp174_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp175_;
			GeeHashSet* _tmp176_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp177_;
			const gchar* _tmp178_;
			const gchar* _tmp179_;
			GeeHashSet* _tmp189_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp190_;
			const gchar* _tmp191_;
			const gchar* _tmp192_;
			gboolean _tmp193_ = FALSE;
			gboolean _tmp194_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp195_;
			gboolean _tmp208_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp209_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp217_;
			gboolean _tmp221_ = FALSE;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp222_;
			_invocation_index = _invocation_index + 1;
			_tmp167_ = _invocation_index;
			_tmp168_ = _invocation_size;
			if (!(_tmp167_ < _tmp168_)) {
				break;
			}
			_tmp169_ = _invocation_list;
			_tmp170_ = gee_abstract_list_get ((GeeAbstractList*) _tmp169_, _invocation_index);
			invocation = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation*) _tmp170_;
			_tmp171_ = self->priv->catalog;
			_tmp172_ = invocation;
			_tmp173_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp172_);
			_tmp174_ = _tmp173_;
			_tmp175_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup_wrapper (_tmp171_, _tmp174_);
			definition = _tmp175_;
			_tmp176_ = wrapper_ids;
			_tmp177_ = invocation;
			_tmp178_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp177_);
			_tmp179_ = _tmp178_;
			if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp176_, _tmp179_)) {
				GeeArrayList* _tmp180_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp181_;
				const gchar* _tmp182_;
				const gchar* _tmp183_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp184_;
				const gchar* _tmp185_;
				const gchar* _tmp186_;
				gchar* _tmp187_;
				gchar* _tmp188_;
				_tmp180_ = diagnostics;
				_tmp181_ = invocation;
				_tmp182_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp181_);
				_tmp183_ = _tmp182_;
				_tmp184_ = invocation;
				_tmp185_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp184_);
				_tmp186_ = _tmp185_;
				_tmp187_ = g_strdup_printf ("Parsed command contains wrapper '%s' more than once.", _tmp186_);
				_tmp188_ = _tmp187_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp180_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_WRAPPER, _tmp183_, _tmp188_);
				_g_free0 (_tmp188_);
			}
			_tmp189_ = wrapper_ids;
			_tmp190_ = invocation;
			_tmp191_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp190_);
			_tmp192_ = _tmp191_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp189_, _tmp192_);
			_tmp195_ = definition;
			if (_tmp195_ != NULL) {
				_tmp194_ = capabilities != NULL;
			} else {
				_tmp194_ = FALSE;
			}
			if (_tmp194_) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp196_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp197_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp198_;
				_tmp196_ = definition;
				_tmp197_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_required_capability (_tmp196_);
				_tmp198_ = _tmp197_;
				_tmp193_ = !proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_has (capabilities, _tmp198_);
			} else {
				_tmp193_ = FALSE;
			}
			if (_tmp193_) {
				GeeArrayList* _tmp199_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp200_;
				const gchar* _tmp201_;
				const gchar* _tmp202_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp203_;
				const gchar* _tmp204_;
				const gchar* _tmp205_;
				gchar* _tmp206_;
				gchar* _tmp207_;
				_tmp199_ = diagnostics;
				_tmp200_ = invocation;
				_tmp201_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp200_);
				_tmp202_ = _tmp201_;
				_tmp203_ = invocation;
				_tmp204_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp203_);
				_tmp205_ = _tmp204_;
				_tmp206_ = g_strdup_printf ("Wrapper '%s' requires an unavailable capability.", _tmp205_);
				_tmp207_ = _tmp206_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp199_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY, _tmp202_, _tmp207_);
				_g_free0 (_tmp207_);
			}
			_tmp209_ = definition;
			if (_tmp209_ != NULL) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp210_;
				guint _tmp211_;
				guint _tmp212_;
				_tmp210_ = definition;
				_tmp211_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_nesting_priority (_tmp210_);
				_tmp212_ = _tmp211_;
				_tmp208_ = previous_priority > ((gint) _tmp212_);
			} else {
				_tmp208_ = FALSE;
			}
			if (_tmp208_) {
				GeeArrayList* _tmp213_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp214_;
				const gchar* _tmp215_;
				const gchar* _tmp216_;
				_tmp213_ = diagnostics;
				_tmp214_ = invocation;
				_tmp215_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp214_);
				_tmp216_ = _tmp215_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp213_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_NESTING_VIOLATION, _tmp216_, "Parsed wrappers are not ordered by declared nesting priority.");
			}
			_tmp217_ = definition;
			if (_tmp217_ != NULL) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp218_;
				guint _tmp219_;
				guint _tmp220_;
				_tmp218_ = definition;
				_tmp219_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_nesting_priority (_tmp218_);
				_tmp220_ = _tmp219_;
				previous_priority = (gint) _tmp220_;
			}
			_tmp222_ = definition;
			if (_tmp222_ != NULL) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp223_;
				const gchar* _tmp224_;
				const gchar* _tmp225_;
				_tmp223_ = definition;
				_tmp224_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp223_);
				_tmp225_ = _tmp224_;
				_tmp221_ = g_strcmp0 (_tmp225_, "") != 0;
			} else {
				_tmp221_ = FALSE;
			}
			if (_tmp221_) {
				GeeHashSet* _tmp226_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp227_;
				const gchar* _tmp228_;
				const gchar* _tmp229_;
				GeeHashSet* _tmp234_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp235_;
				const gchar* _tmp236_;
				const gchar* _tmp237_;
				_tmp226_ = wrapper_groups;
				_tmp227_ = definition;
				_tmp228_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp227_);
				_tmp229_ = _tmp228_;
				if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp226_, _tmp229_)) {
					GeeArrayList* _tmp230_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandWrapperInvocation* _tmp231_;
					const gchar* _tmp232_;
					const gchar* _tmp233_;
					_tmp230_ = diagnostics;
					_tmp231_ = invocation;
					_tmp232_ = proton_plus_widgets_games_launch_options_editor_launch_command_wrapper_invocation_get_wrapper_id (_tmp231_);
					_tmp233_ = _tmp232_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, _tmp230_, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MUTUALLY_EXCLUSIVE_WRAPPERS, _tmp233_, "Parsed command contains mutually exclusive wrappers.");
				}
				_tmp234_ = wrapper_groups;
				_tmp235_ = definition;
				_tmp236_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp235_);
				_tmp237_ = _tmp236_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp234_, _tmp237_);
			}
			_g_object_unref0 (definition);
			_g_object_unref0 (invocation);
		}
	}
	result = (GeeList*) diagnostics;
	_g_object_unref0 (wrapper_groups);
	_g_object_unref0 (wrapper_ids);
	_g_object_unref0 (conflict_groups);
	_g_object_unref0 (environment_keys);
	_g_object_unref0 (all_ids);
	_g_object_unref0 (ids);
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_relationships (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                GeeArrayList* diagnostics,
                                                                                                ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selections,
                                                                                                gint selections_length1,
                                                                                                GeeHashSet* selected_ids,
                                                                                                GeeHashMap* selected_wrappers,
                                                                                                ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities)
{
	GeeHashSet* groups = NULL;
	GeeHashSet* _tmp0_;
	GeeHashSet* wrapper_groups = NULL;
	GeeHashSet* _tmp95_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selected_ids != NULL);
	g_return_if_fail (selected_wrappers != NULL);
	g_return_if_fail (capabilities != NULL);
	_tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	groups = _tmp0_;
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection** selection_collection = NULL;
		gint selection_collection_length1 = 0;
		gint _selection_collection_size_ = 0;
		gint selection_it = 0;
		selection_collection = selections;
		selection_collection_length1 = selections_length1;
		for (selection_it = 0; selection_it < selection_collection_length1; selection_it = selection_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp1_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection = NULL;
			_tmp1_ = _g_object_ref0 (selection_collection[selection_it]);
			selection = _tmp1_;
			{
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* metadata = NULL;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp2_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp3_;
				const gchar* _tmp4_;
				const gchar* _tmp5_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp6_;
				gboolean _tmp7_ = FALSE;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp8_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics = NULL;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp12_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp13_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp14_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp15_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp16_;
				gchar** _tmp17_;
				gint _tmp17__length1;
				gint _tmp18_ = 0;
				gchar** _tmp19_;
				gint _tmp19__length1;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp31_;
				gchar** _tmp32_;
				gint _tmp32__length1;
				gint _tmp33_ = 0;
				gchar** _tmp34_;
				gint _tmp34__length1;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp46_;
				const gchar* _tmp47_;
				const gchar* _tmp48_;
				gboolean _tmp65_ = FALSE;
				gboolean _tmp66_ = FALSE;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp67_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp68_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp69_;
				_tmp2_ = self->priv->catalog;
				_tmp3_ = selection;
				_tmp4_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp3_);
				_tmp5_ = _tmp4_;
				_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup (_tmp2_, _tmp5_);
				metadata = _tmp6_;
				_tmp8_ = metadata;
				if (_tmp8_ == NULL) {
					_tmp7_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionMetadata* _tmp9_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp10_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp11_;
					_tmp9_ = metadata;
					_tmp10_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp9_);
					_tmp11_ = _tmp10_;
					_tmp7_ = _tmp11_ == NULL;
				}
				if (_tmp7_) {
					_g_object_unref0 (metadata);
					_g_object_unref0 (selection);
					continue;
				}
				_tmp12_ = metadata;
				_tmp13_ = proton_plus_widgets_games_launch_options_editor_launch_option_metadata_get_semantics (_tmp12_);
				_tmp14_ = _tmp13_;
				_tmp15_ = _g_object_ref0 (_tmp14_);
				semantics = _tmp15_;
				_tmp16_ = semantics;
				_tmp17_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_dependencies (_tmp16_, &_tmp18_);
				_tmp17__length1 = _tmp18_;
				_tmp19_ = _tmp17_;
				_tmp19__length1 = _tmp17__length1;
				{
					gchar** dependency_collection = NULL;
					gint dependency_collection_length1 = 0;
					gint _dependency_collection_size_ = 0;
					gint dependency_it = 0;
					dependency_collection = _tmp19_;
					dependency_collection_length1 = _tmp19__length1;
					for (dependency_it = 0; dependency_it < dependency_collection_length1; dependency_it = dependency_it + 1) {
						gchar* _tmp20_;
						gchar* dependency = NULL;
						_tmp20_ = g_strdup (dependency_collection[dependency_it]);
						dependency = _tmp20_;
						{
							const gchar* _tmp21_;
							_tmp21_ = dependency;
							if (!gee_abstract_collection_contains ((GeeAbstractCollection*) selected_ids, _tmp21_)) {
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp22_;
								const gchar* _tmp23_;
								const gchar* _tmp24_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp25_;
								const gchar* _tmp26_;
								const gchar* _tmp27_;
								const gchar* _tmp28_;
								gchar* _tmp29_;
								gchar* _tmp30_;
								_tmp22_ = selection;
								_tmp23_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp22_);
								_tmp24_ = _tmp23_;
								_tmp25_ = selection;
								_tmp26_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp25_);
								_tmp27_ = _tmp26_;
								_tmp28_ = dependency;
								_tmp29_ = g_strdup_printf ("Launch option '%s' requires '%s'.", _tmp27_, _tmp28_);
								_tmp30_ = _tmp29_;
								proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DEPENDENCY, _tmp24_, _tmp30_);
								_g_free0 (_tmp30_);
							}
							_g_free0 (dependency);
						}
					}
				}
				_tmp31_ = semantics;
				_tmp32_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflicts (_tmp31_, &_tmp33_);
				_tmp32__length1 = _tmp33_;
				_tmp34_ = _tmp32_;
				_tmp34__length1 = _tmp32__length1;
				{
					gchar** conflict_collection = NULL;
					gint conflict_collection_length1 = 0;
					gint _conflict_collection_size_ = 0;
					gint conflict_it = 0;
					conflict_collection = _tmp34_;
					conflict_collection_length1 = _tmp34__length1;
					for (conflict_it = 0; conflict_it < conflict_collection_length1; conflict_it = conflict_it + 1) {
						gchar* _tmp35_;
						gchar* conflict = NULL;
						_tmp35_ = g_strdup (conflict_collection[conflict_it]);
						conflict = _tmp35_;
						{
							const gchar* _tmp36_;
							_tmp36_ = conflict;
							if (gee_abstract_collection_contains ((GeeAbstractCollection*) selected_ids, _tmp36_)) {
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp37_;
								const gchar* _tmp38_;
								const gchar* _tmp39_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp40_;
								const gchar* _tmp41_;
								const gchar* _tmp42_;
								const gchar* _tmp43_;
								gchar* _tmp44_;
								gchar* _tmp45_;
								_tmp37_ = selection;
								_tmp38_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp37_);
								_tmp39_ = _tmp38_;
								_tmp40_ = selection;
								_tmp41_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp40_);
								_tmp42_ = _tmp41_;
								_tmp43_ = conflict;
								_tmp44_ = g_strdup_printf ("Launch option '%s' conflicts with '%s'.", _tmp42_, _tmp43_);
								_tmp45_ = _tmp44_;
								proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EXPLICIT_OPTION_CONFLICT, _tmp39_, _tmp45_);
								_g_free0 (_tmp45_);
							}
							_g_free0 (conflict);
						}
					}
				}
				_tmp46_ = semantics;
				_tmp47_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp46_);
				_tmp48_ = _tmp47_;
				if (g_strcmp0 (_tmp48_, "") != 0) {
					GeeHashSet* _tmp49_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp50_;
					const gchar* _tmp51_;
					const gchar* _tmp52_;
					GeeHashSet* _tmp61_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp62_;
					const gchar* _tmp63_;
					const gchar* _tmp64_;
					_tmp49_ = groups;
					_tmp50_ = semantics;
					_tmp51_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp50_);
					_tmp52_ = _tmp51_;
					if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp49_, _tmp52_)) {
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp53_;
						const gchar* _tmp54_;
						const gchar* _tmp55_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp56_;
						const gchar* _tmp57_;
						const gchar* _tmp58_;
						gchar* _tmp59_;
						gchar* _tmp60_;
						_tmp53_ = selection;
						_tmp54_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp53_);
						_tmp55_ = _tmp54_;
						_tmp56_ = semantics;
						_tmp57_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp56_);
						_tmp58_ = _tmp57_;
						_tmp59_ = g_strdup_printf ("More than one option belongs to conflict group '%s'.", _tmp58_);
						_tmp60_ = _tmp59_;
						proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_CONFLICT_GROUP_COLLISION, _tmp55_, _tmp60_);
						_g_free0 (_tmp60_);
					}
					_tmp61_ = groups;
					_tmp62_ = semantics;
					_tmp63_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_conflict_group (_tmp62_);
					_tmp64_ = _tmp63_;
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp61_, _tmp64_);
				}
				_tmp67_ = semantics;
				_tmp68_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp67_);
				_tmp69_ = _tmp68_;
				if (_tmp69_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_WRAPPER_ARGUMENT) {
					_tmp66_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp70_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp71_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp72_;
					_tmp70_ = semantics;
					_tmp71_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_kind (_tmp70_);
					_tmp72_ = _tmp71_;
					_tmp66_ = _tmp72_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_COMPOSITE_DYNAMIC;
				}
				if (_tmp66_) {
					_tmp65_ = TRUE;
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp73_;
					const gchar* _tmp74_;
					const gchar* _tmp75_;
					_tmp73_ = semantics;
					_tmp74_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (_tmp73_);
					_tmp75_ = _tmp74_;
					_tmp65_ = g_strcmp0 (_tmp75_, "") != 0;
				}
				if (_tmp65_) {
					gchar* owner = NULL;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* _tmp76_;
					const gchar* _tmp77_;
					const gchar* _tmp78_;
					gchar* _tmp79_;
					gboolean _tmp80_ = FALSE;
					const gchar* _tmp81_;
					_tmp76_ = semantics;
					_tmp77_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (_tmp76_);
					_tmp78_ = _tmp77_;
					_tmp79_ = g_strdup (_tmp78_);
					owner = _tmp79_;
					_tmp81_ = owner;
					if (g_strcmp0 (_tmp81_, "") != 0) {
						const gchar* _tmp82_;
						_tmp82_ = owner;
						_tmp80_ = !gee_abstract_map_has_key ((GeeAbstractMap*) selected_wrappers, _tmp82_);
					} else {
						_tmp80_ = FALSE;
					}
					if (_tmp80_) {
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode _tmp83_ = 0;
						gint _tmp84_;
						gint _tmp85_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode code = 0;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp86_;
						const gchar* _tmp87_;
						const gchar* _tmp88_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* _tmp89_;
						const gchar* _tmp90_;
						const gchar* _tmp91_;
						const gchar* _tmp92_;
						gchar* _tmp93_;
						gchar* _tmp94_;
						_tmp84_ = gee_abstract_map_get_size ((GeeAbstractMap*) selected_wrappers);
						_tmp85_ = _tmp84_;
						if (_tmp85_ == 0) {
							_tmp83_ = PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_WITHOUT_WRAPPER;
						} else {
							_tmp83_ = PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_OWNED_BY_WRONG_WRAPPER;
						}
						code = _tmp83_;
						_tmp86_ = selection;
						_tmp87_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp86_);
						_tmp88_ = _tmp87_;
						_tmp89_ = selection;
						_tmp90_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (_tmp89_);
						_tmp91_ = _tmp90_;
						_tmp92_ = owner;
						_tmp93_ = g_strdup_printf ("Launch option '%s' requires wrapper '%s'.", _tmp91_, _tmp92_);
						_tmp94_ = _tmp93_;
						proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, code, _tmp88_, _tmp94_);
						_g_free0 (_tmp94_);
					}
					_g_free0 (owner);
				}
				_g_object_unref0 (semantics);
				_g_object_unref0 (metadata);
				_g_object_unref0 (selection);
			}
		}
	}
	_tmp95_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	wrapper_groups = _tmp95_;
	{
		GeeList* _wrapper_list = NULL;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp96_;
		GeeList* _tmp97_;
		gint _wrapper_size = 0;
		GeeList* _tmp98_;
		gint _tmp99_;
		gint _tmp100_;
		gint _wrapper_index = 0;
		_tmp96_ = self->priv->catalog;
		_tmp97_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_get_wrappers (_tmp96_);
		_wrapper_list = _tmp97_;
		_tmp98_ = _wrapper_list;
		_tmp99_ = gee_collection_get_size ((GeeCollection*) _tmp98_);
		_tmp100_ = _tmp99_;
		_wrapper_size = _tmp100_;
		_wrapper_index = -1;
		while (TRUE) {
			gint _tmp101_;
			gint _tmp102_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* wrapper = NULL;
			GeeList* _tmp103_;
			gpointer _tmp104_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp105_;
			const gchar* _tmp106_;
			const gchar* _tmp107_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp108_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp109_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp110_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp119_;
			const gchar* _tmp120_;
			const gchar* _tmp121_;
			_wrapper_index = _wrapper_index + 1;
			_tmp101_ = _wrapper_index;
			_tmp102_ = _wrapper_size;
			if (!(_tmp101_ < _tmp102_)) {
				break;
			}
			_tmp103_ = _wrapper_list;
			_tmp104_ = gee_list_get (_tmp103_, _wrapper_index);
			wrapper = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition*) _tmp104_;
			_tmp105_ = wrapper;
			_tmp106_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp105_);
			_tmp107_ = _tmp106_;
			if (!gee_abstract_map_has_key ((GeeAbstractMap*) selected_wrappers, _tmp107_)) {
				_g_object_unref0 (wrapper);
				continue;
			}
			_tmp108_ = wrapper;
			_tmp109_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_required_capability (_tmp108_);
			_tmp110_ = _tmp109_;
			if (!proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_has (capabilities, _tmp110_)) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp111_;
				const gchar* _tmp112_;
				const gchar* _tmp113_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp114_;
				const gchar* _tmp115_;
				const gchar* _tmp116_;
				gchar* _tmp117_;
				gchar* _tmp118_;
				_tmp111_ = wrapper;
				_tmp112_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp111_);
				_tmp113_ = _tmp112_;
				_tmp114_ = wrapper;
				_tmp115_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp114_);
				_tmp116_ = _tmp115_;
				_tmp117_ = g_strdup_printf ("Wrapper '%s' requires an unavailable capability.", _tmp116_);
				_tmp118_ = _tmp117_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY, _tmp113_, _tmp118_);
				_g_free0 (_tmp118_);
			}
			_tmp119_ = wrapper;
			_tmp120_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp119_);
			_tmp121_ = _tmp120_;
			if (g_strcmp0 (_tmp121_, "") != 0) {
				GeeHashSet* _tmp122_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp123_;
				const gchar* _tmp124_;
				const gchar* _tmp125_;
				GeeHashSet* _tmp134_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp135_;
				const gchar* _tmp136_;
				const gchar* _tmp137_;
				_tmp122_ = wrapper_groups;
				_tmp123_ = wrapper;
				_tmp124_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp123_);
				_tmp125_ = _tmp124_;
				if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp122_, _tmp125_)) {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp126_;
					const gchar* _tmp127_;
					const gchar* _tmp128_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp129_;
					const gchar* _tmp130_;
					const gchar* _tmp131_;
					gchar* _tmp132_;
					gchar* _tmp133_;
					_tmp126_ = wrapper;
					_tmp127_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_id (_tmp126_);
					_tmp128_ = _tmp127_;
					_tmp129_ = wrapper;
					_tmp130_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp129_);
					_tmp131_ = _tmp130_;
					_tmp132_ = g_strdup_printf ("More than one wrapper belongs to '%s'.", _tmp131_);
					_tmp133_ = _tmp132_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MUTUALLY_EXCLUSIVE_WRAPPERS, _tmp128_, _tmp133_);
					_g_free0 (_tmp133_);
				}
				_tmp134_ = wrapper_groups;
				_tmp135_ = wrapper;
				_tmp136_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_mutual_exclusion_group (_tmp135_);
				_tmp137_ = _tmp136_;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp134_, _tmp137_);
			}
			_g_object_unref0 (wrapper);
		}
		_g_object_unref0 (_wrapper_list);
	}
	_g_object_unref0 (wrapper_groups);
	_g_object_unref0 (groups);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_environment (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                            GeeArrayList* diagnostics,
                                                                                            ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                            ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                            GeeArrayList* environments)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp1_;
	gchar** values = NULL;
	gint _tmp14_ = 0;
	gchar** _tmp15_;
	gint values_length1;
	gint _values_size_;
	gchar** _tmp16_;
	gint _tmp16__length1;
	gchar** _tmp23_;
	gint _tmp23__length1;
	gboolean selectable = FALSE;
	const gchar* _tmp30_;
	const gchar* _tmp31_;
	gchar** _tmp32_;
	gint _tmp32__length1;
	const gchar* _tmp33_;
	gchar** _tmp34_;
	gint _tmp34__length1;
	gint _tmp35_ = 0;
	gchar** _tmp36_;
	gint _tmp36__length1;
	gboolean safe_value = FALSE;
	const gchar* _tmp37_;
	const gchar* _tmp38_;
	gchar** _tmp39_;
	gint _tmp39__length1;
	const gchar* _tmp40_;
	gboolean _tmp41_ = FALSE;
	const gchar* _tmp42_;
	const gchar* _tmp43_;
	const gchar* _tmp44_;
	const gchar* _tmp45_;
	gchar** _tmp46_;
	gint _tmp46__length1;
	const gchar* _tmp47_;
	gchar* _tmp48_;
	gchar* _tmp49_;
	gchar* _tmp50_;
	gchar* _tmp51_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp52_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp53_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selection != NULL);
	g_return_if_fail (semantics != NULL);
	g_return_if_fail (environments != NULL);
	_tmp0_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_emission_mode (semantics);
	_tmp1_ = _tmp0_;
	if (_tmp1_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_EMISSION_MODE_FIXED_TOKENS) {
		gchar** _tmp2_;
		gint _tmp2__length1;
		gint _tmp3_ = 0;
		gchar** _tmp4_;
		gint _tmp4__length1;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (self, diagnostics, selection, semantics);
		_tmp2_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_fixed_tokens (semantics, &_tmp3_);
		_tmp2__length1 = _tmp3_;
		_tmp4_ = _tmp2_;
		_tmp4__length1 = _tmp2__length1;
		{
			gchar** token_collection = NULL;
			gint token_collection_length1 = 0;
			gint _token_collection_size_ = 0;
			gint token_it = 0;
			token_collection = _tmp4_;
			token_collection_length1 = _tmp4__length1;
			for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
				gchar* _tmp5_;
				gchar* token = NULL;
				_tmp5_ = g_strdup (token_collection[token_it]);
				token = _tmp5_;
				{
					const gchar* _tmp6_;
					const gchar* _tmp7_;
					const gchar* _tmp8_;
					const gchar* _tmp9_;
					const gchar* _tmp10_;
					const gchar* _tmp11_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp12_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp13_;
					_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
					_tmp7_ = _tmp6_;
					_tmp8_ = token;
					if (!proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, _tmp7_, _tmp8_)) {
						_g_free0 (token);
						continue;
					}
					_tmp9_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_environment_key (semantics);
					_tmp10_ = _tmp9_;
					_tmp11_ = token;
					_tmp12_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_new (_tmp10_, _tmp11_);
					_tmp13_ = _tmp12_;
					gee_abstract_collection_add ((GeeAbstractCollection*) environments, _tmp13_);
					_g_object_unref0 (_tmp13_);
					_g_free0 (token);
				}
			}
		}
		return;
	}
	_tmp15_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (selection, &_tmp14_);
	values = _tmp15_;
	values_length1 = _tmp14_;
	_values_size_ = values_length1;
	_tmp16_ = values;
	_tmp16__length1 = values_length1;
	if (_tmp16__length1 == 0) {
		const gchar* _tmp17_;
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		const gchar* _tmp20_;
		gchar* _tmp21_;
		gchar* _tmp22_;
		_tmp17_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp18_ = _tmp17_;
		_tmp19_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp20_ = _tmp19_;
		_tmp21_ = g_strdup_printf ("Launch option '%s' requires a value.", _tmp20_);
		_tmp22_ = _tmp21_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE, _tmp18_, _tmp22_);
		_g_free0 (_tmp22_);
		values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
		return;
	}
	_tmp23_ = values;
	_tmp23__length1 = values_length1;
	if (_tmp23__length1 != 1) {
		const gchar* _tmp24_;
		const gchar* _tmp25_;
		const gchar* _tmp26_;
		const gchar* _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		_tmp24_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp25_ = _tmp24_;
		_tmp26_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp27_ = _tmp26_;
		_tmp28_ = g_strdup_printf ("Launch option '%s' requires exactly one value.", _tmp27_);
		_tmp29_ = _tmp28_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_VALUE_COUNT, _tmp25_, _tmp29_);
		_g_free0 (_tmp29_);
		values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
		return;
	}
	_tmp30_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
	_tmp31_ = _tmp30_;
	_tmp32_ = values;
	_tmp32__length1 = values_length1;
	_tmp33_ = _tmp32_[0];
	_tmp34_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_selectable_values (semantics, &_tmp35_);
	_tmp34__length1 = _tmp35_;
	_tmp36_ = _tmp34_;
	_tmp36__length1 = _tmp34__length1;
	selectable = proton_plus_widgets_games_launch_options_editor_launch_command_composer_valid_selectable (self, diagnostics, _tmp31_, _tmp33_, _tmp36_, (gint) _tmp36__length1);
	_tmp37_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
	_tmp38_ = _tmp37_;
	_tmp39_ = values;
	_tmp39__length1 = values_length1;
	_tmp40_ = _tmp39_[0];
	safe_value = proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, _tmp38_, _tmp40_);
	if (!selectable) {
		_tmp41_ = TRUE;
	} else {
		_tmp41_ = !safe_value;
	}
	if (_tmp41_) {
		values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
		return;
	}
	_tmp42_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_environment_key (semantics);
	_tmp43_ = _tmp42_;
	_tmp44_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_environment_key (semantics);
	_tmp45_ = _tmp44_;
	_tmp46_ = values;
	_tmp46__length1 = values_length1;
	_tmp47_ = _tmp46_[0];
	_tmp48_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_shell_word (_tmp47_);
	_tmp49_ = _tmp48_;
	_tmp50_ = g_strdup_printf ("%s=%s", _tmp45_, _tmp49_);
	_tmp51_ = _tmp50_;
	_tmp52_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_new (_tmp43_, _tmp51_);
	_tmp53_ = _tmp52_;
	gee_abstract_collection_add ((GeeAbstractCollection*) environments, _tmp53_);
	_g_object_unref0 (_tmp53_);
	_g_free0 (_tmp51_);
	_g_free0 (_tmp49_);
	values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_wrapper_argument (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                 GeeArrayList* diagnostics,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                                 ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                                 GeeHashMap* arguments)
{
	GeeArrayList* output = NULL;
	GeeArrayList* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp1_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionEmissionMode _tmp2_;
	const gchar* _tmp33_;
	const gchar* _tmp34_;
	const gchar* _tmp35_;
	const gchar* _tmp36_;
	GeeArrayList* _tmp37_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selection != NULL);
	g_return_if_fail (semantics != NULL);
	g_return_if_fail (arguments != NULL);
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	output = _tmp0_;
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_emission_mode (semantics);
	_tmp2_ = _tmp1_;
	if (_tmp2_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_EMISSION_MODE_FIXED_TOKENS) {
		gchar** _tmp3_;
		gint _tmp3__length1;
		gint _tmp4_ = 0;
		gchar** _tmp5_;
		gint _tmp5__length1;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (self, diagnostics, selection, semantics);
		_tmp3_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_fixed_tokens (semantics, &_tmp4_);
		_tmp3__length1 = _tmp4_;
		_tmp5_ = _tmp3_;
		_tmp5__length1 = _tmp3__length1;
		{
			gchar** token_collection = NULL;
			gint token_collection_length1 = 0;
			gint _token_collection_size_ = 0;
			gint token_it = 0;
			token_collection = _tmp5_;
			token_collection_length1 = _tmp5__length1;
			for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
				gchar* _tmp6_;
				gchar* token = NULL;
				_tmp6_ = g_strdup (token_collection[token_it]);
				token = _tmp6_;
				{
					GeeArrayList* _tmp7_;
					const gchar* _tmp8_;
					_tmp7_ = output;
					_tmp8_ = token;
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp7_, _tmp8_);
					_g_free0 (token);
				}
			}
		}
	} else {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp9_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp10_;
		_tmp9_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_parse_shape (semantics);
		_tmp10_ = _tmp9_;
		if (_tmp10_ != NULL) {
			const gchar* _tmp11_;
			const gchar* _tmp12_;
			gint _tmp13_ = 0;
			gchar** _tmp14_;
			gchar** _tmp15_;
			gint _tmp15__length1;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp16_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp17_;
			GeeArrayList* _tmp18_;
			_tmp11_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
			_tmp12_ = _tmp11_;
			_tmp14_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (selection, &_tmp13_);
			_tmp15_ = _tmp14_;
			_tmp15__length1 = _tmp13_;
			_tmp16_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_parse_shape (semantics);
			_tmp17_ = _tmp16_;
			_tmp18_ = output;
			proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_shape (self, diagnostics, _tmp12_, _tmp15_, (gint) _tmp13_, _tmp17_, _tmp18_);
			_tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
		} else {
			gint _tmp19_ = 0;
			gchar** _tmp20_;
			GeeArrayList* _tmp24_;
			gint _tmp25_;
			gint _tmp26_;
			_tmp20_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (selection, &_tmp19_);
			{
				gchar** token_collection = NULL;
				gint token_collection_length1 = 0;
				gint _token_collection_size_ = 0;
				gint token_it = 0;
				token_collection = _tmp20_;
				token_collection_length1 = _tmp19_;
				for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
					gchar* _tmp21_;
					gchar* token = NULL;
					_tmp21_ = g_strdup (token_collection[token_it]);
					token = _tmp21_;
					{
						GeeArrayList* _tmp22_;
						const gchar* _tmp23_;
						_tmp22_ = output;
						_tmp23_ = token;
						gee_abstract_collection_add ((GeeAbstractCollection*) _tmp22_, _tmp23_);
						_g_free0 (token);
					}
				}
				token_collection = (_vala_array_free (token_collection, token_collection_length1, (GDestroyNotify) g_free), NULL);
			}
			_tmp24_ = output;
			_tmp25_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp24_);
			_tmp26_ = _tmp25_;
			if (_tmp26_ == 0) {
				const gchar* _tmp27_;
				const gchar* _tmp28_;
				const gchar* _tmp29_;
				const gchar* _tmp30_;
				gchar* _tmp31_;
				gchar* _tmp32_;
				_tmp27_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
				_tmp28_ = _tmp27_;
				_tmp29_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
				_tmp30_ = _tmp29_;
				_tmp31_ = g_strdup_printf ("Launch option '%s' requires at least one argument.", _tmp30_);
				_tmp32_ = _tmp31_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE, _tmp28_, _tmp32_);
				_g_free0 (_tmp32_);
			}
		}
	}
	_tmp33_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
	_tmp34_ = _tmp33_;
	_tmp35_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_wrapper_id (semantics);
	_tmp36_ = _tmp35_;
	_tmp37_ = output;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_arguments_for_wrapper (self, diagnostics, _tmp34_, _tmp36_, _tmp37_, arguments);
	_g_object_unref0 (output);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_composite (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                          GeeArrayList* diagnostics,
                                                                                          ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                          ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics,
                                                                                          GeeArrayList* environments,
                                                                                          GeeHashMap* arguments)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput** outputs = NULL;
	gint _tmp0_ = 0;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput** _tmp1_;
	gint outputs_length1;
	gint _outputs_size_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* dynamic_output = NULL;
	GeeArrayList* automatic_outputs = NULL;
	GeeArrayList* _tmp2_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput** _tmp3_;
	gint _tmp3__length1;
	gchar** values = NULL;
	gint _tmp15_ = 0;
	gchar** _tmp16_;
	gint values_length1;
	gint _values_size_;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_ = FALSE;
	gchar** _tmp19_;
	gint _tmp19__length1;
	gboolean _tmp57_ = FALSE;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp58_;
	GeeArrayList* tokens = NULL;
	GeeArrayList* _tmp68_;
	const gchar* _tmp69_;
	const gchar* _tmp70_;
	gchar** _tmp71_;
	gint _tmp71__length1;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp72_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp73_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp74_;
	GeeArrayList* _tmp75_;
	const gchar* _tmp76_;
	const gchar* _tmp77_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp78_;
	const gchar* _tmp79_;
	const gchar* _tmp80_;
	GeeArrayList* _tmp81_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selection != NULL);
	g_return_if_fail (semantics != NULL);
	g_return_if_fail (environments != NULL);
	g_return_if_fail (arguments != NULL);
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_composite_outputs (semantics, &_tmp0_);
	outputs = _tmp1_;
	outputs_length1 = _tmp0_;
	_outputs_size_ = outputs_length1;
	dynamic_output = NULL;
	_tmp2_ = gee_array_list_new (PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_OPTION_SEMANTIC_OUTPUT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	automatic_outputs = _tmp2_;
	_tmp3_ = outputs;
	_tmp3__length1 = outputs_length1;
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput** output_collection = NULL;
		gint output_collection_length1 = 0;
		gint _output_collection_size_ = 0;
		gint output_it = 0;
		output_collection = _tmp3_;
		output_collection_length1 = _tmp3__length1;
		for (output_it = 0; output_it < output_collection_length1; output_it = output_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp4_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* output = NULL;
			_tmp4_ = _g_object_ref0 (output_collection[output_it]);
			output = _tmp4_;
			{
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp5_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp6_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp7_;
				_tmp5_ = output;
				_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_kind (_tmp5_);
				_tmp7_ = _tmp6_;
				if (_tmp7_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_ENVIRONMENT_ASSIGNMENT) {
					GeeArrayList* _tmp8_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp9_;
					_tmp8_ = automatic_outputs;
					_tmp9_ = output;
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, _tmp9_);
				} else {
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp10_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp11_;
					ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticKind _tmp12_;
					_tmp10_ = output;
					_tmp11_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_kind (_tmp10_);
					_tmp12_ = _tmp11_;
					if (_tmp12_ == PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_OPTION_SEMANTIC_KIND_WRAPPER_ARGUMENT) {
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp13_;
						ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp14_;
						_tmp13_ = output;
						_tmp14_ = _g_object_ref0 (_tmp13_);
						_g_object_unref0 (dynamic_output);
						dynamic_output = _tmp14_;
					}
				}
				_g_object_unref0 (output);
			}
		}
	}
	_tmp16_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (selection, &_tmp15_);
	values = _tmp16_;
	values_length1 = _tmp15_;
	_values_size_ = values_length1;
	_tmp19_ = values;
	_tmp19__length1 = values_length1;
	if (_tmp19__length1 == 1) {
		gchar** _tmp20_;
		gint _tmp20__length1;
		const gchar* _tmp21_;
		_tmp20_ = values;
		_tmp20__length1 = values_length1;
		_tmp21_ = _tmp20_[0];
		_tmp18_ = g_strcmp0 (_tmp21_, "auto") == 0;
	} else {
		_tmp18_ = FALSE;
	}
	if (_tmp18_) {
		gchar** _tmp22_;
		gint _tmp22__length1;
		gint _tmp23_ = 0;
		gchar** _tmp24_;
		gint _tmp24__length1;
		_tmp22_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantics_get_selectable_values (semantics, &_tmp23_);
		_tmp22__length1 = _tmp23_;
		_tmp24_ = _tmp22_;
		_tmp24__length1 = _tmp22__length1;
		_tmp17_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_contains (self, _tmp24_, (gint) _tmp24__length1, "auto");
	} else {
		_tmp17_ = FALSE;
	}
	if (_tmp17_) {
		{
			GeeArrayList* _output_list = NULL;
			GeeArrayList* _tmp25_;
			gint _output_size = 0;
			GeeArrayList* _tmp26_;
			gint _tmp27_;
			gint _tmp28_;
			gint _output_index = 0;
			_tmp25_ = automatic_outputs;
			_output_list = _tmp25_;
			_tmp26_ = _output_list;
			_tmp27_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp26_);
			_tmp28_ = _tmp27_;
			_output_size = _tmp28_;
			_output_index = -1;
			while (TRUE) {
				gint _tmp29_;
				gint _tmp30_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* output = NULL;
				GeeArrayList* _tmp31_;
				gpointer _tmp32_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp33_;
				gchar** _tmp34_;
				gint _tmp34__length1;
				gint _tmp35_ = 0;
				gchar** _tmp36_;
				gint _tmp36__length1;
				_output_index = _output_index + 1;
				_tmp29_ = _output_index;
				_tmp30_ = _output_size;
				if (!(_tmp29_ < _tmp30_)) {
					break;
				}
				_tmp31_ = _output_list;
				_tmp32_ = gee_abstract_list_get ((GeeAbstractList*) _tmp31_, _output_index);
				output = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput*) _tmp32_;
				_tmp33_ = output;
				_tmp34_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_fixed_tokens (_tmp33_, &_tmp35_);
				_tmp34__length1 = _tmp35_;
				_tmp36_ = _tmp34_;
				_tmp36__length1 = _tmp34__length1;
				{
					gchar** token_collection = NULL;
					gint token_collection_length1 = 0;
					gint _token_collection_size_ = 0;
					gint token_it = 0;
					token_collection = _tmp36_;
					token_collection_length1 = _tmp36__length1;
					for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
						gchar* _tmp37_;
						gchar* token = NULL;
						_tmp37_ = g_strdup (token_collection[token_it]);
						token = _tmp37_;
						{
							gboolean _tmp38_ = FALSE;
							ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp39_;
							const gchar* _tmp40_;
							const gchar* _tmp41_;
							_tmp39_ = output;
							_tmp40_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_environment_key (_tmp39_);
							_tmp41_ = _tmp40_;
							if (g_strcmp0 (_tmp41_, "") == 0) {
								_tmp38_ = TRUE;
							} else {
								const gchar* _tmp42_;
								const gchar* _tmp43_;
								const gchar* _tmp44_;
								_tmp42_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
								_tmp43_ = _tmp42_;
								_tmp44_ = token;
								_tmp38_ = !proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, _tmp43_, _tmp44_);
							}
							if (_tmp38_) {
								const gchar* _tmp45_;
								const gchar* _tmp46_;
								const gchar* _tmp47_;
								const gchar* _tmp48_;
								gchar* _tmp49_;
								gchar* _tmp50_;
								_tmp45_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
								_tmp46_ = _tmp45_;
								_tmp47_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
								_tmp48_ = _tmp47_;
								_tmp49_ = g_strdup_printf ("Composite option '%s' has an invalid environment output.", _tmp48_);
								_tmp50_ = _tmp49_;
								proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_COMPOSITE_OUTPUT, _tmp46_, _tmp50_);
								_g_free0 (_tmp50_);
							} else {
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp51_;
								const gchar* _tmp52_;
								const gchar* _tmp53_;
								const gchar* _tmp54_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp55_;
								ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp56_;
								_tmp51_ = output;
								_tmp52_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_environment_key (_tmp51_);
								_tmp53_ = _tmp52_;
								_tmp54_ = token;
								_tmp55_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_new (_tmp53_, _tmp54_);
								_tmp56_ = _tmp55_;
								gee_abstract_collection_add ((GeeAbstractCollection*) environments, _tmp56_);
								_g_object_unref0 (_tmp56_);
							}
							_g_free0 (token);
						}
					}
				}
				_g_object_unref0 (output);
			}
		}
		values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
		_g_object_unref0 (automatic_outputs);
		_g_object_unref0 (dynamic_output);
		outputs = (_vala_array_free (outputs, outputs_length1, (GDestroyNotify) g_object_unref), NULL);
		return;
	}
	_tmp58_ = dynamic_output;
	if (_tmp58_ == NULL) {
		_tmp57_ = TRUE;
	} else {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemanticOutput* _tmp59_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp60_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* _tmp61_;
		_tmp59_ = dynamic_output;
		_tmp60_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_parse_shape (_tmp59_);
		_tmp61_ = _tmp60_;
		_tmp57_ = _tmp61_ == NULL;
	}
	if (_tmp57_) {
		const gchar* _tmp62_;
		const gchar* _tmp63_;
		const gchar* _tmp64_;
		const gchar* _tmp65_;
		gchar* _tmp66_;
		gchar* _tmp67_;
		_tmp62_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp63_ = _tmp62_;
		_tmp64_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp65_ = _tmp64_;
		_tmp66_ = g_strdup_printf ("Composite option '%s' has no valid wrapper output.", _tmp65_);
		_tmp67_ = _tmp66_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_COMPOSITE_OUTPUT, _tmp63_, _tmp67_);
		_g_free0 (_tmp67_);
		values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
		_g_object_unref0 (automatic_outputs);
		_g_object_unref0 (dynamic_output);
		outputs = (_vala_array_free (outputs, outputs_length1, (GDestroyNotify) g_object_unref), NULL);
		return;
	}
	_tmp68_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	tokens = _tmp68_;
	_tmp69_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
	_tmp70_ = _tmp69_;
	_tmp71_ = values;
	_tmp71__length1 = values_length1;
	_tmp72_ = dynamic_output;
	_tmp73_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_parse_shape (_tmp72_);
	_tmp74_ = _tmp73_;
	_tmp75_ = tokens;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_shape (self, diagnostics, _tmp70_, _tmp71_, (gint) _tmp71__length1, _tmp74_, _tmp75_);
	_tmp76_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
	_tmp77_ = _tmp76_;
	_tmp78_ = dynamic_output;
	_tmp79_ = proton_plus_widgets_games_launch_options_editor_launch_option_semantic_output_get_wrapper_id (_tmp78_);
	_tmp80_ = _tmp79_;
	_tmp81_ = tokens;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_arguments_for_wrapper (self, diagnostics, _tmp77_, _tmp80_, _tmp81_, arguments);
	_g_object_unref0 (tokens);
	values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (automatic_outputs);
	_g_object_unref0 (dynamic_output);
	outputs = (_vala_array_free (outputs, outputs_length1, (GDestroyNotify) g_object_unref), NULL);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_shape (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                      GeeArrayList* diagnostics,
                                                                                      const gchar* id,
                                                                                      gchar** values,
                                                                                      gint values_length1,
                                                                                      ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionParseShape* shape,
                                                                                      GeeArrayList* output)
{
	guint* arities = NULL;
	gint _tmp0_ = 0;
	guint* _tmp1_;
	gint arities_length1;
	gint _arities_size_;
	gint required = 0;
	guint* _tmp2_;
	gint _tmp2__length1;
	gint cursor = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (shape != NULL);
	g_return_if_fail (output != NULL);
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_option_parse_shape_get_value_arities (shape, &_tmp0_);
	arities = _tmp1_;
	arities_length1 = _tmp0_;
	_arities_size_ = arities_length1;
	required = 0;
	_tmp2_ = arities;
	_tmp2__length1 = arities_length1;
	{
		guint* arity_collection = NULL;
		gint arity_collection_length1 = 0;
		gint _arity_collection_size_ = 0;
		gint arity_it = 0;
		arity_collection = _tmp2_;
		arity_collection_length1 = _tmp2__length1;
		for (arity_it = 0; arity_it < arity_collection_length1; arity_it = arity_it + 1) {
			guint arity = 0U;
			arity = arity_collection[arity_it];
			{
				required += (gint) arity;
			}
		}
	}
	if (values_length1 == 0) {
		gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp3_ = g_strdup_printf ("Launch option '%s' requires values.", id);
		_tmp4_ = _tmp3_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_DYNAMIC_VALUE, id, _tmp4_);
		_g_free0 (_tmp4_);
		arities = (g_free (arities), NULL);
		return;
	}
	if (values_length1 != required) {
		gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = g_strdup_printf ("Launch option '%s' requires %d values.", id, required);
		_tmp6_ = _tmp5_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_VALUE_COUNT, id, _tmp6_);
		_g_free0 (_tmp6_);
		arities = (g_free (arities), NULL);
		return;
	}
	cursor = 0;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp7_ = FALSE;
			_tmp7_ = TRUE;
			while (TRUE) {
				gchar** _tmp9_;
				gint _tmp9__length1;
				gint _tmp10_ = 0;
				gchar** _tmp11_;
				gint _tmp11__length1;
				gchar** _tmp12_;
				gint _tmp12__length1;
				gint _tmp13_ = 0;
				gchar** _tmp14_;
				gint _tmp14__length1;
				const gchar* _tmp15_;
				if (!_tmp7_) {
					gint _tmp8_;
					_tmp8_ = index;
					index = _tmp8_ + 1;
				}
				_tmp7_ = FALSE;
				_tmp9_ = proton_plus_widgets_games_launch_options_editor_launch_option_parse_shape_get_tokens (shape, &_tmp10_);
				_tmp9__length1 = _tmp10_;
				_tmp11_ = _tmp9_;
				_tmp11__length1 = _tmp9__length1;
				if (!(index < _tmp11__length1)) {
					break;
				}
				_tmp12_ = proton_plus_widgets_games_launch_options_editor_launch_option_parse_shape_get_tokens (shape, &_tmp13_);
				_tmp12__length1 = _tmp13_;
				_tmp14_ = _tmp12_;
				_tmp14__length1 = _tmp12__length1;
				_tmp15_ = _tmp14_[index];
				gee_abstract_collection_add ((GeeAbstractCollection*) output, _tmp15_);
				{
					gint count = 0;
					count = 0;
					{
						gboolean _tmp16_ = FALSE;
						_tmp16_ = TRUE;
						while (TRUE) {
							guint* _tmp18_;
							gint _tmp18__length1;
							guint _tmp19_;
							const gchar* _tmp20_;
							gint _tmp24_;
							if (!_tmp16_) {
								gint _tmp17_;
								_tmp17_ = count;
								count = _tmp17_ + 1;
							}
							_tmp16_ = FALSE;
							_tmp18_ = arities;
							_tmp18__length1 = arities_length1;
							_tmp19_ = _tmp18_[index];
							if (!(((guint) count) < _tmp19_)) {
								break;
							}
							_tmp20_ = values[cursor];
							if (proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, id, _tmp20_)) {
								const gchar* _tmp21_;
								gchar* _tmp22_;
								gchar* _tmp23_;
								_tmp21_ = values[cursor];
								_tmp22_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_shell_word (_tmp21_);
								_tmp23_ = _tmp22_;
								gee_abstract_collection_add ((GeeAbstractCollection*) output, _tmp23_);
								_g_free0 (_tmp23_);
							}
							_tmp24_ = cursor;
							cursor = _tmp24_ + 1;
						}
					}
				}
			}
		}
	}
	arities = (g_free (arities), NULL);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_add_selected_wrapper (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                              GeeArrayList* diagnostics,
                                                                                              const gchar* option_id,
                                                                                              const gchar* wrapper_id,
                                                                                              gchar** allowed,
                                                                                              gint allowed_length1,
                                                                                              ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities,
                                                                                              GeeHashMap* selected)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* definition = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp7_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp8_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp11_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp12_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp13_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (option_id != NULL);
	g_return_if_fail (wrapper_id != NULL);
	g_return_if_fail (capabilities != NULL);
	g_return_if_fail (selected != NULL);
	if (g_strcmp0 (wrapper_id, "") == 0) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = !proton_plus_widgets_games_launch_options_editor_launch_command_composer_contains (self, allowed, (gint) allowed_length1, wrapper_id);
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp2_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp3_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp4_;
		_tmp2_ = self->priv->catalog;
		_tmp3_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup_wrapper (_tmp2_, wrapper_id);
		_tmp4_ = _tmp3_;
		_tmp0_ = _tmp4_ == NULL;
		_g_object_unref0 (_tmp4_);
	}
	if (_tmp0_) {
		gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = g_strdup_printf ("Launch option '%s' has an invalid wrapper selection.", option_id);
		_tmp6_ = _tmp5_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_INVALID_WRAPPER_SELECTION, option_id, _tmp6_);
		_g_free0 (_tmp6_);
		return;
	}
	_tmp7_ = self->priv->catalog;
	_tmp8_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup_wrapper (_tmp7_, wrapper_id);
	definition = _tmp8_;
	if (gee_abstract_map_has_key ((GeeAbstractMap*) selected, wrapper_id)) {
		gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp9_ = g_strdup_printf ("Wrapper '%s' was selected more than once.", wrapper_id);
		_tmp10_ = _tmp9_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_WRAPPER, option_id, _tmp10_);
		_g_free0 (_tmp10_);
	}
	_tmp11_ = definition;
	gee_abstract_map_set ((GeeAbstractMap*) selected, wrapper_id, _tmp11_);
	_tmp12_ = definition;
	_tmp13_ = proton_plus_widgets_games_launch_options_editor_launch_wrapper_definition_get_required_capability (_tmp12_);
	_tmp14_ = _tmp13_;
	if (!proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_has (capabilities, _tmp14_)) {
		gchar* _tmp15_;
		gchar* _tmp16_;
		_tmp15_ = g_strdup_printf ("Wrapper '%s' requires an unavailable capability.", wrapper_id);
		_tmp16_ = _tmp15_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY, option_id, _tmp16_);
		_g_free0 (_tmp16_);
	}
	_g_object_unref0 (definition);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_safe_arguments (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                               GeeArrayList* diagnostics,
                                                                                               const gchar* option_id,
                                                                                               const gchar* wrapper_id,
                                                                                               gchar** tokens,
                                                                                               gint tokens_length1,
                                                                                               GeeHashMap* arguments)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCatalog* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp1_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchWrapperDefinition* _tmp2_;
	gboolean _tmp3_;
	GeeArrayList* _tmp4_ = NULL;
	GeeArrayList* bucket = NULL;
	GeeArrayList* _tmp7_;
	GeeArrayList* _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (option_id != NULL);
	g_return_if_fail (wrapper_id != NULL);
	g_return_if_fail (arguments != NULL);
	if (tokens_length1 == 0) {
		return;
	}
	_tmp0_ = self->priv->catalog;
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_option_catalog_lookup_wrapper (_tmp0_, wrapper_id);
	_tmp2_ = _tmp1_;
	_tmp3_ = _tmp2_ == NULL;
	_g_object_unref0 (_tmp2_);
	if (_tmp3_) {
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_OWNED_BY_WRONG_WRAPPER, option_id, "Additional wrapper arguments require an owned wrapper.");
		return;
	}
	if (gee_abstract_map_has_key ((GeeAbstractMap*) arguments, wrapper_id)) {
		gpointer _tmp5_;
		_tmp5_ = gee_abstract_map_get ((GeeAbstractMap*) arguments, wrapper_id);
		_g_object_unref0 (_tmp4_);
		_tmp4_ = (GeeArrayList*) _tmp5_;
	} else {
		GeeArrayList* _tmp6_;
		_tmp6_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
		_g_object_unref0 (_tmp4_);
		_tmp4_ = _tmp6_;
	}
	_tmp7_ = _tmp4_;
	_tmp4_ = NULL;
	bucket = _tmp7_;
	{
		gchar** token_collection = NULL;
		gint token_collection_length1 = 0;
		gint _token_collection_size_ = 0;
		gint token_it = 0;
		token_collection = tokens;
		token_collection_length1 = tokens_length1;
		for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
			gchar* _tmp8_;
			gchar* token = NULL;
			_tmp8_ = g_strdup (token_collection[token_it]);
			token = _tmp8_;
			{
				const gchar* _tmp9_;
				_tmp9_ = token;
				if (proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, option_id, _tmp9_)) {
					GeeArrayList* _tmp10_;
					const gchar* _tmp11_;
					gchar* _tmp12_;
					gchar* _tmp13_;
					_tmp10_ = bucket;
					_tmp11_ = token;
					_tmp12_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_shell_word (_tmp11_);
					_tmp13_ = _tmp12_;
					gee_abstract_collection_add ((GeeAbstractCollection*) _tmp10_, _tmp13_);
					_g_free0 (_tmp13_);
				}
				_g_free0 (token);
			}
		}
	}
	_tmp14_ = bucket;
	gee_abstract_map_set ((GeeAbstractMap*) arguments, wrapper_id, _tmp14_);
	_g_object_unref0 (bucket);
	_g_object_unref0 (_tmp4_);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_arguments_for_wrapper (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                      GeeArrayList* diagnostics,
                                                                                                      const gchar* option_id,
                                                                                                      const gchar* wrapper_id,
                                                                                                      GeeArrayList* tokens,
                                                                                                      GeeHashMap* arguments)
{
	GeeArrayList* _tmp0_ = NULL;
	GeeArrayList* bucket = NULL;
	GeeArrayList* _tmp3_;
	GeeArrayList* _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (option_id != NULL);
	g_return_if_fail (wrapper_id != NULL);
	g_return_if_fail (tokens != NULL);
	g_return_if_fail (arguments != NULL);
	if (gee_abstract_map_has_key ((GeeAbstractMap*) arguments, wrapper_id)) {
		gpointer _tmp1_;
		_tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) arguments, wrapper_id);
		_g_object_unref0 (_tmp0_);
		_tmp0_ = (GeeArrayList*) _tmp1_;
	} else {
		GeeArrayList* _tmp2_;
		_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
		_g_object_unref0 (_tmp0_);
		_tmp0_ = _tmp2_;
	}
	_tmp3_ = _tmp0_;
	_tmp0_ = NULL;
	bucket = _tmp3_;
	{
		GeeArrayList* _token_list = NULL;
		gint _token_size = 0;
		GeeArrayList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _token_index = 0;
		_token_list = tokens;
		_tmp4_ = _token_list;
		_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp4_);
		_tmp6_ = _tmp5_;
		_token_size = _tmp6_;
		_token_index = -1;
		while (TRUE) {
			gint _tmp7_;
			gint _tmp8_;
			gchar* token = NULL;
			GeeArrayList* _tmp9_;
			gpointer _tmp10_;
			const gchar* _tmp11_;
			_token_index = _token_index + 1;
			_tmp7_ = _token_index;
			_tmp8_ = _token_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _token_list;
			_tmp10_ = gee_abstract_list_get ((GeeAbstractList*) _tmp9_, _token_index);
			token = (gchar*) _tmp10_;
			_tmp11_ = token;
			if (proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, option_id, _tmp11_)) {
				GeeArrayList* _tmp12_;
				const gchar* _tmp13_;
				_tmp12_ = bucket;
				_tmp13_ = token;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
			}
			_g_free0 (token);
		}
	}
	_tmp14_ = bucket;
	gee_abstract_map_set ((GeeAbstractMap*) arguments, wrapper_id, _tmp14_);
	_g_object_unref0 (bucket);
	_g_object_unref0 (_tmp0_);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_capabilities (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                               GeeArrayList* diagnostics,
                                                                                               const gchar* id,
                                                                                               ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* required,
                                                                                               gint required_length1,
                                                                                               ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCapabilityContext* capabilities)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (capabilities != NULL);
	{
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability* capability_collection = NULL;
		gint capability_collection_length1 = 0;
		gint _capability_collection_size_ = 0;
		gint capability_it = 0;
		capability_collection = required;
		capability_collection_length1 = required_length1;
		for (capability_it = 0; capability_it < capability_collection_length1; capability_it = capability_it + 1) {
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionCapability capability = 0;
			capability = capability_collection[capability_it];
			{
				if (!proton_plus_widgets_games_launch_options_editor_launch_command_capability_context_has (capabilities, capability)) {
					gchar* _tmp0_;
					gchar* _tmp1_;
					_tmp0_ = g_strdup_printf ("Launch option '%s' requires an unavailable capability.", id);
					_tmp1_ = _tmp0_;
					proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_MISSING_REQUIRED_CAPABILITY, id, _tmp1_);
					_g_free0 (_tmp1_);
				}
			}
		}
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_environment_keys (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                   GeeArrayList* diagnostics,
                                                                                                   GeeArrayList* environments)
{
	GeeHashSet* keys = NULL;
	GeeHashSet* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (environments != NULL);
	_tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL);
	keys = _tmp0_;
	{
		GeeArrayList* _environment_list = NULL;
		gint _environment_size = 0;
		GeeArrayList* _tmp1_;
		gint _tmp2_;
		gint _tmp3_;
		gint _environment_index = 0;
		_environment_list = environments;
		_tmp1_ = _environment_list;
		_tmp2_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp1_);
		_tmp3_ = _tmp2_;
		_environment_size = _tmp3_;
		_environment_index = -1;
		while (TRUE) {
			gint _tmp4_;
			gint _tmp5_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* environment = NULL;
			GeeArrayList* _tmp6_;
			gpointer _tmp7_;
			GeeHashSet* _tmp8_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp9_;
			const gchar* _tmp10_;
			const gchar* _tmp11_;
			GeeHashSet* _tmp20_;
			ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp21_;
			const gchar* _tmp22_;
			const gchar* _tmp23_;
			_environment_index = _environment_index + 1;
			_tmp4_ = _environment_index;
			_tmp5_ = _environment_size;
			if (!(_tmp4_ < _tmp5_)) {
				break;
			}
			_tmp6_ = _environment_list;
			_tmp7_ = gee_abstract_list_get ((GeeAbstractList*) _tmp6_, _environment_index);
			environment = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment*) _tmp7_;
			_tmp8_ = keys;
			_tmp9_ = environment;
			_tmp10_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_get_key (_tmp9_);
			_tmp11_ = _tmp10_;
			if (gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp8_, _tmp11_)) {
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp12_;
				const gchar* _tmp13_;
				const gchar* _tmp14_;
				ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchEnvironmentAssignment* _tmp15_;
				const gchar* _tmp16_;
				const gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				_tmp12_ = environment;
				_tmp13_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_get_key (_tmp12_);
				_tmp14_ = _tmp13_;
				_tmp15_ = environment;
				_tmp16_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_get_key (_tmp15_);
				_tmp17_ = _tmp16_;
				_tmp18_ = g_strdup_printf ("Environment key '%s' is emitted more than once.", _tmp17_);
				_tmp19_ = _tmp18_;
				proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_DUPLICATE_ENVIRONMENT_KEY, _tmp14_, _tmp19_);
				_g_free0 (_tmp19_);
			}
			_tmp20_ = keys;
			_tmp21_ = environment;
			_tmp22_ = proton_plus_widgets_games_launch_options_editor_launch_environment_assignment_get_key (_tmp21_);
			_tmp23_ = _tmp22_;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp20_, _tmp23_);
			_g_object_unref0 (environment);
		}
	}
	_g_object_unref0 (keys);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_values (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                            GeeArrayList* diagnostics,
                                                                                            ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection,
                                                                                            ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionSemantics* semantics)
{
	gint _tmp0_ = 0;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selection != NULL);
	g_return_if_fail (semantics != NULL);
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_values (selection, &_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp0_;
	_tmp3_ = _tmp0_ > 0;
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	if (_tmp3_) {
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp4_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp5_ = _tmp4_;
		_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_strdup_printf ("Launch option '%s' does not accept values.", _tmp7_);
		_tmp9_ = _tmp8_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNEXPECTED_DYNAMIC_VALUE, _tmp5_, _tmp9_);
		_g_free0 (_tmp9_);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_validate_no_additional_arguments (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                          GeeArrayList* diagnostics,
                                                                                                          ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandSelection* selection)
{
	gint _tmp0_ = 0;
	gchar** _tmp1_;
	gchar** _tmp2_;
	gint _tmp2__length1;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (selection != NULL);
	_tmp1_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_additional_wrapper_arguments (selection, &_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp2__length1 = _tmp0_;
	_tmp3_ = _tmp0_ > 0;
	_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
	if (_tmp3_) {
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp4_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp5_ = _tmp4_;
		_tmp6_ = proton_plus_widgets_games_launch_options_editor_launch_command_selection_get_option_id (selection);
		_tmp7_ = _tmp6_;
		_tmp8_ = g_strdup_printf ("Launch option '%s' cannot own additional wrapper arguments.", _tmp7_);
		_tmp9_ = _tmp8_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_WRAPPER_ARGUMENT_OWNED_BY_WRONG_WRAPPER, _tmp5_, _tmp9_);
		_g_free0 (_tmp9_);
	}
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_fixed_tokens (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                             GeeArrayList* diagnostics,
                                                                                             const gchar* id,
                                                                                             gchar** tokens,
                                                                                             gint tokens_length1,
                                                                                             GeeArrayList* output)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (output != NULL);
	{
		gchar** token_collection = NULL;
		gint token_collection_length1 = 0;
		gint _token_collection_size_ = 0;
		gint token_it = 0;
		token_collection = tokens;
		token_collection_length1 = tokens_length1;
		for (token_it = 0; token_it < token_collection_length1; token_it = token_it + 1) {
			gchar* _tmp0_;
			gchar* token = NULL;
			_tmp0_ = g_strdup (token_collection[token_it]);
			token = _tmp0_;
			{
				const gchar* _tmp1_;
				_tmp1_ = token;
				if (proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, id, _tmp1_)) {
					const gchar* _tmp2_;
					_tmp2_ = token;
					gee_abstract_collection_add ((GeeAbstractCollection*) output, _tmp2_);
				}
				_g_free0 (token);
			}
		}
	}
}

static gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_composer_valid_selectable (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                          GeeArrayList* diagnostics,
                                                                                          const gchar* id,
                                                                                          const gchar* value,
                                                                                          gchar** selectable,
                                                                                          gint selectable_length1)
{
	gboolean _tmp0_ = FALSE;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (diagnostics != NULL, FALSE);
	g_return_val_if_fail (id != NULL, FALSE);
	g_return_val_if_fail (value != NULL, FALSE);
	if (selectable_length1 == 0) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = proton_plus_widgets_games_launch_options_editor_launch_command_composer_contains (self, selectable, (gint) selectable_length1, value);
	}
	if (_tmp0_) {
		result = TRUE;
		return result;
	}
	_tmp1_ = g_strdup_printf ("Value '%s' is not selectable for '%s'.", value, id);
	_tmp2_ = _tmp1_;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_UNSUPPORTED_SELECTABLE_VALUE, id, _tmp2_);
	_g_free0 (_tmp2_);
	result = FALSE;
	return result;
}

static gboolean
string_contains (const gchar* self,
                 const gchar* needle)
{
	gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
	result = _tmp0_ != NULL;
	return result;
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

static gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                              GeeArrayList* diagnostics,
                                                                              const gchar* id,
                                                                              const gchar* token)
{
	gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean _tmp4_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (diagnostics != NULL, FALSE);
	g_return_val_if_fail (id != NULL, FALSE);
	g_return_val_if_fail (token != NULL, FALSE);
	if (string_contains (token, "%command%")) {
		gchar* _tmp0_;
		gchar* _tmp1_;
		_tmp0_ = g_strdup_printf ("Launch option '%s' must not contain %%command%%.", id);
		_tmp1_ = _tmp0_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMBEDDED_COMMAND_PLACEHOLDER, id, _tmp1_);
		_g_free0 (_tmp1_);
		result = FALSE;
		return result;
	}
	_tmp2_ = string_strip (token);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strcmp0 (_tmp3_, "") == 0;
	_g_free0 (_tmp3_);
	if (_tmp4_) {
		gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = g_strdup_printf ("Launch option '%s' has an empty argument.", id);
		_tmp6_ = _tmp5_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMPTY_OR_UNSAFE_ARGUMENT, id, _tmp6_);
		_g_free0 (_tmp6_);
		result = FALSE;
		return result;
	}
	result = TRUE;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_append_serialized_argument (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                                    GeeArrayList* diagnostics,
                                                                                                    const gchar* id,
                                                                                                    const gchar* raw,
                                                                                                    GeeArrayList* output)
{
	GeeArrayList* tokens = NULL;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionShellTokenizer* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionShellTokenizer* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeArrayList* _tmp3_;
	gboolean _tmp4_ = FALSE;
	GeeArrayList* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (raw != NULL);
	g_return_if_fail (output != NULL);
	if (!proton_plus_widgets_games_launch_options_editor_launch_command_composer_safe (self, diagnostics, id, raw)) {
		return;
	}
	_tmp0_ = proton_plus_widgets_games_launch_options_editor_launch_option_shell_tokenizer_new ();
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_widgets_games_launch_options_editor_launch_option_shell_tokenizer_tokenize (_tmp1_, raw);
	_tmp3_ = _tmp2_;
	_g_object_unref0 (_tmp1_);
	tokens = _tmp3_;
	_tmp5_ = tokens;
	_tmp6_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_ != 1) {
		_tmp4_ = TRUE;
	} else {
		GeeArrayList* _tmp8_;
		gpointer _tmp9_;
		ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionShellToken* _tmp10_;
		const gchar* _tmp11_;
		const gchar* _tmp12_;
		_tmp8_ = tokens;
		_tmp9_ = gee_abstract_list_get ((GeeAbstractList*) _tmp8_, 0);
		_tmp10_ = (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchOptionShellToken*) _tmp9_;
		_tmp11_ = proton_plus_widgets_games_launch_options_editor_launch_option_shell_token_get_raw (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp4_ = g_strcmp0 (_tmp12_, raw) != 0;
		_g_object_unref0 (_tmp10_);
	}
	if (_tmp4_) {
		gchar* _tmp13_;
		gchar* _tmp14_;
		_tmp13_ = g_strdup_printf ("Launch option '%s' must contain one complete shell argument per entry.", id);
		_tmp14_ = _tmp13_;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (self, diagnostics, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_LAUNCH_COMMAND_COMPOSITION_DIAGNOSTIC_CODE_EMPTY_OR_UNSAFE_ARGUMENT, id, _tmp14_);
		_g_free0 (_tmp14_);
		_g_object_unref0 (tokens);
		return;
	}
	gee_abstract_collection_add ((GeeAbstractCollection*) output, raw);
	_g_object_unref0 (tokens);
}

static gboolean
proton_plus_widgets_games_launch_options_editor_launch_command_composer_contains (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                  gchar** values,
                                                                                  gint values_length1,
                                                                                  const gchar* value)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (value != NULL, FALSE);
	{
		gchar** candidate_collection = NULL;
		gint candidate_collection_length1 = 0;
		gint _candidate_collection_size_ = 0;
		gint candidate_it = 0;
		candidate_collection = values;
		candidate_collection_length1 = values_length1;
		for (candidate_it = 0; candidate_it < candidate_collection_length1; candidate_it = candidate_it + 1) {
			gchar* _tmp0_;
			gchar* candidate = NULL;
			_tmp0_ = g_strdup (candidate_collection[candidate_it]);
			candidate = _tmp0_;
			{
				const gchar* _tmp1_;
				_tmp1_ = candidate;
				if (g_strcmp0 (_tmp1_, value) == 0) {
					result = TRUE;
					_g_free0 (candidate);
					return result;
				}
				_g_free0 (candidate);
			}
		}
	}
	result = FALSE;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_add (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                             GeeArrayList* diagnostics,
                                                                             ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnosticCode code,
                                                                             const gchar* id,
                                                                             const gchar* message)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionDiagnostic* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (diagnostics != NULL);
	g_return_if_fail (id != NULL);
	g_return_if_fail (message != NULL);
	_tmp0_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_diagnostic_new (code, id, message);
	_tmp1_ = _tmp0_;
	gee_abstract_collection_add ((GeeAbstractCollection*) diagnostics, _tmp1_);
	_g_object_unref0 (_tmp1_);
}

static ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_invalid (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer* self,
                                                                                 GeeArrayList* diagnostics)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* _tmp0_;
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandCompositionResult* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (diagnostics != NULL, NULL);
	_tmp0_ = proton_plus_widgets_games_launch_options_editor_launch_command_composition_result_new (FALSE, (GeeList*) diagnostics, NULL, NULL);
	result = _tmp0_;
	return result;
}

static gunichar
string_get_char (const gchar* self,
                 glong index)
{
	gunichar result;
	g_return_val_if_fail (self != NULL, 0U);
	result = g_utf8_get_char (((gchar*) self) + index);
	return result;
}

static gchar*
string_replace (const gchar* self,
                const gchar* old,
                const gchar* replacement)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GError* _inner_error0_ = NULL;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (old != NULL, NULL);
	g_return_val_if_fail (replacement != NULL, NULL);
	if ((*((gchar*) self)) == '\0') {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = (*((gchar*) old)) == '\0';
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = g_strcmp0 (old, replacement) == 0;
	}
	if (_tmp0_) {
		gchar* _tmp2_;
		_tmp2_ = g_strdup (self);
		result = _tmp2_;
		return result;
	}
	{
		GRegex* regex = NULL;
		gchar* _tmp3_;
		gchar* _tmp4_;
		GRegex* _tmp5_;
		GRegex* _tmp6_;
		gchar* _tmp7_ = NULL;
		GRegex* _tmp8_;
		gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp3_ = g_regex_escape_string (old, -1);
		_tmp4_ = _tmp3_;
		_tmp5_ = g_regex_new (_tmp4_, 0, 0, &_inner_error0_);
		_tmp6_ = _tmp5_;
		_g_free0 (_tmp4_);
		regex = _tmp6_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp8_ = regex;
		_tmp9_ = g_regex_replace_literal (_tmp8_, self, (gssize) -1, 0, replacement, 0, &_inner_error0_);
		_tmp7_ = _tmp9_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_regex_unref0 (regex);
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return NULL;
		}
		_tmp10_ = _tmp7_;
		_tmp7_ = NULL;
		result = _tmp10_;
		_g_free0 (_tmp7_);
		_g_regex_unref0 (regex);
		return result;
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
		g_clear_error (&_inner_error0_);
		g_assert_not_reached ();
	}
	__finally0:
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
	g_clear_error (&_inner_error0_);
	return NULL;
}

gchar*
proton_plus_widgets_games_launch_options_editor_launch_command_composer_shell_word (const gchar* value)
{
	gboolean plain = FALSE;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* result;
	g_return_val_if_fail (value != NULL, NULL);
	if (g_strcmp0 (value, "") == 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup ("''");
		result = _tmp0_;
		return result;
	}
	plain = TRUE;
	{
		gint index = 0;
		index = 0;
		{
			gboolean _tmp1_ = FALSE;
			_tmp1_ = TRUE;
			while (TRUE) {
				gint _tmp3_;
				gint _tmp4_;
				gunichar character = 0U;
				gboolean _tmp5_ = FALSE;
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gboolean _tmp8_ = FALSE;
				gboolean _tmp9_ = FALSE;
				gboolean _tmp10_ = FALSE;
				if (!_tmp1_) {
					gint _tmp2_;
					_tmp2_ = index;
					index = _tmp2_ + 1;
				}
				_tmp1_ = FALSE;
				_tmp3_ = strlen (value);
				_tmp4_ = _tmp3_;
				if (!(index < _tmp4_)) {
					break;
				}
				character = string_get_char (value, (glong) index);
				if (g_unichar_isalnum (character)) {
					_tmp10_ = TRUE;
				} else {
					_tmp10_ = character == ((gunichar) '_');
				}
				if (_tmp10_) {
					_tmp9_ = TRUE;
				} else {
					_tmp9_ = character == ((gunichar) '.');
				}
				if (_tmp9_) {
					_tmp8_ = TRUE;
				} else {
					_tmp8_ = character == ((gunichar) '/');
				}
				if (_tmp8_) {
					_tmp7_ = TRUE;
				} else {
					_tmp7_ = character == ((gunichar) ':');
				}
				if (_tmp7_) {
					_tmp6_ = TRUE;
				} else {
					_tmp6_ = character == ((gunichar) '-');
				}
				if (_tmp6_) {
					_tmp5_ = TRUE;
				} else {
					_tmp5_ = character == ((gunichar) '+');
				}
				if (!_tmp5_) {
					plain = FALSE;
					break;
				}
			}
		}
	}
	if (plain) {
		gchar* _tmp11_;
		_tmp11_ = g_strdup (value);
		result = _tmp11_;
		return result;
	}
	_tmp12_ = string_replace (value, "'", "'\\\"'\\\"'");
	_tmp13_ = _tmp12_;
	_tmp14_ = g_strdup_printf ("'%s'", _tmp13_);
	_tmp15_ = _tmp14_;
	_g_free0 (_tmp13_);
	result = _tmp15_;
	return result;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_class_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposerClass * klass,
                                                                                    gpointer klass_data)
{
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer_private_offset);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_widgets_games_launch_options_editor_launch_command_composer_finalize;
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_instance_init (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer * self,
                                                                                       gpointer klass)
{
	self->priv = proton_plus_widgets_games_launch_options_editor_launch_command_composer_get_instance_private (self);
}

static void
proton_plus_widgets_games_launch_options_editor_launch_command_composer_finalize (GObject * obj)
{
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_WIDGETS_GAMES_LAUNCH_OPTIONS_EDITOR_TYPE_LAUNCH_COMMAND_COMPOSER, ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer);
	_g_object_unref0 (self->priv->catalog);
	_g_object_unref0 (self->priv->builder);
	G_OBJECT_CLASS (proton_plus_widgets_games_launch_options_editor_launch_command_composer_parent_class)->finalize (obj);
}

static GType
proton_plus_widgets_games_launch_options_editor_launch_command_composer_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer), 0, (GInstanceInitFunc) proton_plus_widgets_games_launch_options_editor_launch_command_composer_instance_init, NULL };
	GType proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id;
	proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer", &g_define_type_info, 0);
	ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposer_private_offset = g_type_add_instance_private (proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id, sizeof (ProtonPlusWidgetsGamesLaunchOptionsEditorLaunchCommandComposerPrivate));
	return proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id;
}

GType
proton_plus_widgets_games_launch_options_editor_launch_command_composer_get_type (void)
{
	static volatile gsize proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id__once)) {
		GType proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id;
		proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id = proton_plus_widgets_games_launch_options_editor_launch_command_composer_get_type_once ();
		g_once_init_leave (&proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id__once, proton_plus_widgets_games_launch_options_editor_launch_command_composer_type_id);
	}
	return proton_plus_widgets_games_launch_options_editor_launch_command_composer_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 inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

