/* configModel.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from configModel.vala, do not modify */

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gtk4-layer-shell.h>
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
#include <gio/gio.h>
#include <stdio.h>

#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS G_REGEX_MULTILINE
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS G_REGEX_MATCH_NOTEMPTY
#define SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_COMPILE_OPTIONS G_REGEX_MULTILINE
#define SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_MATCH_FLAGS G_REGEX_MATCH_NOTEMPTY
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_DEFAULT 10
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_DEFAULT 5
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_DEFAULT 0
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_DEFAULT 200
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MINIMUM_WIDTH 300
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_DEFAULT_WIDTH 500
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_HEIGHT 100
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_DEFAULT_HEIGHT 100
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_WIDTH 200
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_DEFAULT_WIDTH 200
#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
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

typedef enum  {
	SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT,
	SWAY_NOTIFICATION_CENTER_POSITION_X_LEFT,
	SWAY_NOTIFICATION_CENTER_POSITION_X_CENTER,
	SWAY_NOTIFICATION_CENTER_POSITION_X_NONE
} SwayNotificationCenterPositionX;

#define SWAY_NOTIFICATION_CENTER_TYPE_POSITION_X (sway_notification_center_position_x_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_POSITION_Y_TOP,
	SWAY_NOTIFICATION_CENTER_POSITION_Y_BOTTOM,
	SWAY_NOTIFICATION_CENTER_POSITION_Y_CENTER,
	SWAY_NOTIFICATION_CENTER_POSITION_Y_NONE
} SwayNotificationCenterPositionY;

#define SWAY_NOTIFICATION_CENTER_TYPE_POSITION_Y (sway_notification_center_position_y_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_ALWAYS,
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE,
	SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER
} SwayNotificationCenterImageVisibility;

#define SWAY_NOTIFICATION_CENTER_TYPE_IMAGE_VISIBILITY (sway_notification_center_image_visibility_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_LAYER_BACKGROUND,
	SWAY_NOTIFICATION_CENTER_LAYER_BOTTOM,
	SWAY_NOTIFICATION_CENTER_LAYER_TOP,
	SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY
} SwayNotificationCenterLayer;

#define SWAY_NOTIFICATION_CENTER_TYPE_LAYER (sway_notification_center_layer_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_APPLICATION,
	SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER
} SwayNotificationCenterCssPriority;

#define SWAY_NOTIFICATION_CENTER_TYPE_CSS_PRIORITY (sway_notification_center_css_priority_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY (sway_notification_center_category_get_type ())
#define SWAY_NOTIFICATION_CENTER_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategory))
#define SWAY_NOTIFICATION_CENTER_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategoryClass))
#define SWAY_NOTIFICATION_CENTER_IS_CATEGORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY))
#define SWAY_NOTIFICATION_CENTER_IS_CATEGORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY))
#define SWAY_NOTIFICATION_CENTER_CATEGORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategoryClass))

typedef struct _SwayNotificationCenterCategory SwayNotificationCenterCategory;
typedef struct _SwayNotificationCenterCategoryClass SwayNotificationCenterCategoryClass;
typedef struct _SwayNotificationCenterCategoryPrivate SwayNotificationCenterCategoryPrivate;
enum  {
	SWAY_NOTIFICATION_CENTER_CATEGORY_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CATEGORY_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_category_properties[SWAY_NOTIFICATION_CENTER_CATEGORY_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))

#define SWAY_NOTIFICATION_CENTER_TYPE_MATCH_CASE (sway_notification_center_match_case_get_type ())
typedef struct _SwayNotificationCenterMatchCase SwayNotificationCenterMatchCase;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING (sway_notification_center_notification_matching_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatchingClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatchingClass))

typedef struct _SwayNotificationCenterNotificationMatching SwayNotificationCenterNotificationMatching;
typedef struct _SwayNotificationCenterNotificationMatchingClass SwayNotificationCenterNotificationMatchingClass;
typedef struct _SwayNotificationCenterNotificationMatchingPrivate SwayNotificationCenterNotificationMatchingPrivate;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS (sway_notification_center_notify_params_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParams))
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParamsClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS))
#define SWAY_NOTIFICATION_CENTER_NOTIFY_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFY_PARAMS, SwayNotificationCenterNotifyParamsClass))

typedef struct _SwayNotificationCenterNotifyParams SwayNotificationCenterNotifyParams;
typedef struct _SwayNotificationCenterNotifyParamsClass SwayNotificationCenterNotifyParamsClass;
enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_NUM_PROPERTIES];
typedef enum  {
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_LOW = 0,
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_NORMAL = 1,
	SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_CRITICAL = 2
} SwayNotificationCenterUrgencyLevels;

#define SWAY_NOTIFICATION_CENTER_TYPE_URGENCY_LEVELS (sway_notification_center_urgency_levels_get_type ())
#define _g_type_class_unref0(var) ((var == NULL) ? NULL : (var = (g_type_class_unref (var), NULL)))
#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))

#define SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING (sway_notification_center_action_matching_get_type ())
#define SWAY_NOTIFICATION_CENTER_ACTION_MATCHING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatching))
#define SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatchingClass))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING))
#define SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatchingClass))

typedef struct _SwayNotificationCenterActionMatching SwayNotificationCenterActionMatching;
typedef struct _SwayNotificationCenterActionMatchingClass SwayNotificationCenterActionMatchingClass;
typedef struct _SwayNotificationCenterActionMatchingPrivate SwayNotificationCenterActionMatchingPrivate;
enum  {
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY,
	SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_NUM_PROPERTIES];

#define SWAY_NOTIFICATION_CENTER_TYPE_ACTION (sway_notification_center_action_get_type ())
#define SWAY_NOTIFICATION_CENTER_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterAction))
#define SWAY_NOTIFICATION_CENTER_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterActionClass))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION))
#define SWAY_NOTIFICATION_CENTER_IS_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ACTION))
#define SWAY_NOTIFICATION_CENTER_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ACTION, SwayNotificationCenterActionClass))

typedef struct _SwayNotificationCenterAction SwayNotificationCenterAction;
typedef struct _SwayNotificationCenterActionClass SwayNotificationCenterActionClass;
typedef enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_ENABLED,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_MUTED,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_IGNORED,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_TRANSIENT
} SwayNotificationCenterNotificationStatusEnum;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_STATUS_ENUM (sway_notification_center_notification_status_enum_get_type ())
typedef enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_UNSET = -1,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_LOW = SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_LOW,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_NORMAL = SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_NORMAL,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_CRITICAL = SWAY_NOTIFICATION_CENTER_URGENCY_LEVELS_CRITICAL
} SwayNotificationCenterNotificationUrgencyEnum;

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_URGENCY_ENUM (sway_notification_center_notification_urgency_enum_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY (sway_notification_center_notification_visibility_get_type ())
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibility))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibilityClass))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY))
#define SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY))
#define SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibilityClass))

typedef struct _SwayNotificationCenterNotificationVisibility SwayNotificationCenterNotificationVisibility;
typedef struct _SwayNotificationCenterNotificationVisibilityClass SwayNotificationCenterNotificationVisibilityClass;
typedef struct _SwayNotificationCenterNotificationVisibilityPrivate SwayNotificationCenterNotificationVisibilityPrivate;
enum  {
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_notification_visibility_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_NUM_PROPERTIES];
typedef enum  {
	SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_ACTION,
	SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE
} SwayNotificationCenterScriptRunOnType;

#define SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT_RUN_ON_TYPE (sway_notification_center_script_run_on_type_get_type ())

#define SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT (sway_notification_center_script_get_type ())
#define SWAY_NOTIFICATION_CENTER_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScript))
#define SWAY_NOTIFICATION_CENTER_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScriptClass))
#define SWAY_NOTIFICATION_CENTER_IS_SCRIPT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT))
#define SWAY_NOTIFICATION_CENTER_IS_SCRIPT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT))
#define SWAY_NOTIFICATION_CENTER_SCRIPT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScriptClass))

typedef struct _SwayNotificationCenterScript SwayNotificationCenterScript;
typedef struct _SwayNotificationCenterScriptClass SwayNotificationCenterScriptClass;
typedef struct _SwayNotificationCenterScriptPrivate SwayNotificationCenterScriptPrivate;
enum  {
	SWAY_NOTIFICATION_CENTER_SCRIPT_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY,
	SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY,
	SWAY_NOTIFICATION_CENTER_SCRIPT_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_script_properties[SWAY_NOTIFICATION_CENTER_SCRIPT_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
typedef struct _SwayNotificationCenterScriptRunScriptData SwayNotificationCenterScriptRunScriptData;

#define SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL (sway_notification_center_config_model_get_type ())
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel))
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModelClass))
#define SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL))
#define SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL))
#define SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModelClass))

typedef struct _SwayNotificationCenterConfigModel SwayNotificationCenterConfigModel;
typedef struct _SwayNotificationCenterConfigModelClass SwayNotificationCenterConfigModelClass;
typedef struct _SwayNotificationCenterConfigModelPrivate SwayNotificationCenterConfigModelPrivate;

#define SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE (sway_notification_center_ordered_hash_table_get_type ())
#define SWAY_NOTIFICATION_CENTER_ORDERED_HASH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, SwayNotificationCenterOrderedHashTable))
#define SWAY_NOTIFICATION_CENTER_ORDERED_HASH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, SwayNotificationCenterOrderedHashTableClass))
#define SWAY_NOTIFICATION_CENTER_IS_ORDERED_HASH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE))
#define SWAY_NOTIFICATION_CENTER_IS_ORDERED_HASH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE))
#define SWAY_NOTIFICATION_CENTER_ORDERED_HASH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, SwayNotificationCenterOrderedHashTableClass))

typedef struct _SwayNotificationCenterOrderedHashTable SwayNotificationCenterOrderedHashTable;
typedef struct _SwayNotificationCenterOrderedHashTableClass SwayNotificationCenterOrderedHashTableClass;
enum  {
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_0_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY,
	SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NUM_PROPERTIES
};
static GParamSpec* sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NUM_PROPERTIES];
#define _sway_notification_center_ordered_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (sway_notification_center_ordered_hash_table_unref (var), NULL)))
#define _g_ptr_array_unref0(var) ((var == NULL) ? NULL : (var = (g_ptr_array_unref (var), NULL)))
typedef void (*SwayNotificationCenterConfigModelModifyNode) (JsonNode* node, gpointer user_data);
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC (sway_notification_center_swaync_get_type ())
#define SWAY_NOTIFICATION_CENTER_SWAYNC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwaync))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwayncClass))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC))
#define SWAY_NOTIFICATION_CENTER_IS_SWAYNC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC))
#define SWAY_NOTIFICATION_CENTER_SWAYNC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWAY_NOTIFICATION_CENTER_TYPE_SWAYNC, SwayNotificationCenterSwayncClass))

typedef struct _SwayNotificationCenterSwaync SwayNotificationCenterSwaync;
typedef struct _SwayNotificationCenterSwayncClass SwayNotificationCenterSwayncClass;
#define _json_object_unref0(var) ((var == NULL) ? NULL : (var = (json_object_unref (var), NULL)))
#define _json_array_unref0(var) ((var == NULL) ? NULL : (var = (json_array_unref (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
typedef struct _Block4Data Block4Data;

struct _SwayNotificationCenterCategory {
	GObject parent_instance;
	SwayNotificationCenterCategoryPrivate * priv;
};

struct _SwayNotificationCenterCategoryClass {
	GObjectClass parent_class;
};

struct _SwayNotificationCenterCategoryPrivate {
	gchar* _sound;
	gchar* _icon;
};

struct _SwayNotificationCenterMatchCase {
	gchar* pattern;
	gchar* str;
};

struct _SwayNotificationCenterNotificationMatching {
	GObject parent_instance;
	SwayNotificationCenterNotificationMatchingPrivate * priv;
};

struct _SwayNotificationCenterNotificationMatchingClass {
	GObjectClass parent_class;
	gboolean (*matches_notification) (SwayNotificationCenterNotificationMatching* self, SwayNotificationCenterNotifyParams* param);
};

struct _SwayNotificationCenterNotificationMatchingPrivate {
	gchar* _app_name;
	gchar* _desktop_entry;
	gchar* _summary;
	gchar* _body;
	gchar* _urgency;
	gchar* _category;
	gchar* _sound_name;
	gchar* _sound_file;
};

struct _SwayNotificationCenterActionMatching {
	GObject parent_instance;
	SwayNotificationCenterActionMatchingPrivate * priv;
};

struct _SwayNotificationCenterActionMatchingClass {
	GObjectClass parent_class;
};

struct _SwayNotificationCenterActionMatchingPrivate {
	gchar* _app_name;
	gchar* _desktop_entry;
	gchar* _id_matcher;
	gchar* _text_matcher;
	gboolean _use_regex;
};

struct _SwayNotificationCenterNotificationVisibility {
	SwayNotificationCenterNotificationMatching parent_instance;
	SwayNotificationCenterNotificationVisibilityPrivate * priv;
};

struct _SwayNotificationCenterNotificationVisibilityClass {
	SwayNotificationCenterNotificationMatchingClass parent_class;
};

struct _SwayNotificationCenterNotificationVisibilityPrivate {
	SwayNotificationCenterNotificationStatusEnum _state;
	SwayNotificationCenterNotificationUrgencyEnum _override_urgency;
};

struct _SwayNotificationCenterScript {
	SwayNotificationCenterNotificationMatching parent_instance;
	SwayNotificationCenterScriptPrivate * priv;
};

struct _SwayNotificationCenterScriptClass {
	SwayNotificationCenterNotificationMatchingClass parent_class;
};

struct _SwayNotificationCenterScriptPrivate {
	gchar* _exec;
	SwayNotificationCenterScriptRunOnType _run_on;
};

struct _SwayNotificationCenterScriptRunScriptData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	SwayNotificationCenterScript* self;
	SwayNotificationCenterNotifyParams* param;
	gchar* msg;
	gboolean result;
	gchar** spawn_env;
	gchar** _tmp0_;
	gint spawn_env_length1;
	gint _spawn_env_size_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	SwayNotificationCenterUrgencyLevels _tmp10_;
	SwayNotificationCenterUrgencyLevels _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	gchar* _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	gchar* _tmp23_;
	guint32 _tmp24_;
	guint32 _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	guint32 _tmp29_;
	guint32 _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gint64 _tmp34_;
	gint64 _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	const gchar* _tmp39_;
	const gchar* _tmp40_;
	const gchar* _tmp41_;
	gchar* _tmp42_;
	GHashTable* _tmp43_;
	GHashTable* _tmp44_;
	GList* _tmp45_;
	GList* hint_collection;
	GList* hint_it;
	gchar* _tmp46_;
	gchar* hint;
	gboolean _tmp47_;
	const gchar* _tmp48_;
	const gchar* _tmp49_;
	const gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar* _tmp54_;
	GHashTable* _tmp55_;
	GHashTable* _tmp56_;
	const gchar* _tmp57_;
	gconstpointer _tmp58_;
	gchar* _tmp59_;
	gchar* _tmp60_;
	gchar* _tmp61_;
	const gchar* _tmp62_;
	gchar** _tmp63_;
	gint _tmp63__length1;
	gchar* _tmp64_;
	gboolean _tmp65_;
};

struct _SwayNotificationCenterConfigModel {
	GObject parent_instance;
	SwayNotificationCenterConfigModelPrivate * priv;
};

struct _SwayNotificationCenterConfigModelClass {
	GObjectClass parent_class;
};

struct _SwayNotificationCenterConfigModelPrivate {
	gboolean _ignore_gtk_theme;
	SwayNotificationCenterPositionX _positionX;
	SwayNotificationCenterPositionY _positionY;
	SwayNotificationCenterLayer _layer;
	gboolean _layer_shell;
	gboolean _layer_shell_cover_screen;
	SwayNotificationCenterCssPriority _cssPriority;
	gint _timeout;
	gint _timeout_low;
	gint _timeout_critical;
	gint _transition_time;
	gboolean _keyboard_shortcuts;
	gboolean _notification_grouping;
	SwayNotificationCenterImageVisibility _image_visibility;
	gint _notification_window_width;
	gint _notification_window_height;
	gchar* _notification_window_preferred_output;
	gboolean _hide_on_clear;
	gboolean _hide_on_action;
	gchar* _text_empty;
	SwayNotificationCenterPositionX _control_center_positionX;
	SwayNotificationCenterPositionY _control_center_positionY;
	gint control_center_margin_top_;
	gint control_center_margin_bottom_;
	gint control_center_margin_left_;
	gint control_center_margin_right_;
	SwayNotificationCenterLayer _control_center_layer;
	gboolean _control_center_exclusive_zone;
	SwayNotificationCenterOrderedHashTable* _categories_settings;
	SwayNotificationCenterOrderedHashTable* _notification_action_filter;
	SwayNotificationCenterOrderedHashTable* _notification_visibility;
	SwayNotificationCenterOrderedHashTable* _scripts;
	gboolean _script_fail_notify;
	gboolean _fit_to_screen;
	gboolean _relative_timestamps;
	gint _control_center_height;
	gint _control_center_width;
	gchar* _control_center_preferred_output;
	gboolean _notification_2fa_action;
	gboolean _notification_inline_replies;
	gint _notification_icon_size;
	gint _notification_body_image_height;
	gint _notification_body_image_width;
	GPtrArray* _widgets;
	SwayNotificationCenterOrderedHashTable* _widget_config;
};

struct _Block4Data {
	int _ref_count_;
	SwayNotificationCenterConfigModel* self;
	gchar* member_name;
	GVariant* value;
};

static gint SwayNotificationCenterCategory_private_offset;
static gpointer sway_notification_center_category_parent_class = NULL;
static gint SwayNotificationCenterNotificationMatching_private_offset;
static gpointer sway_notification_center_notification_matching_parent_class = NULL;
static JsonSerializableIface * sway_notification_center_notification_matching_json_serializable_parent_iface = NULL;
static gint SwayNotificationCenterActionMatching_private_offset;
static gpointer sway_notification_center_action_matching_parent_class = NULL;
static JsonSerializableIface * sway_notification_center_action_matching_json_serializable_parent_iface = NULL;
static gint SwayNotificationCenterNotificationVisibility_private_offset;
static gpointer sway_notification_center_notification_visibility_parent_class = NULL;
static gint SwayNotificationCenterScript_private_offset;
static gpointer sway_notification_center_script_parent_class = NULL;
static gint SwayNotificationCenterConfigModel_private_offset;
static gpointer sway_notification_center_config_model_parent_class = NULL;
static SwayNotificationCenterConfigModel* sway_notification_center_config_model__instance;
static SwayNotificationCenterConfigModel* sway_notification_center_config_model__instance = NULL;
static gchar* sway_notification_center_config_model__path;
static gchar* sway_notification_center_config_model__path = NULL;
VALA_EXTERN SwayNotificationCenterSwaync* sway_notification_center_app;
static JsonSerializableIface * sway_notification_center_config_model_json_serializable_parent_iface = NULL;

VALA_EXTERN GType sway_notification_center_position_x_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType sway_notification_center_position_y_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType sway_notification_center_image_visibility_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* sway_notification_center_image_visibility_parse (SwayNotificationCenterImageVisibility self);
VALA_EXTERN GType sway_notification_center_layer_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* sway_notification_center_layer_parse (SwayNotificationCenterLayer self);
VALA_EXTERN GtkLayerShellLayer sway_notification_center_layer_to_layer (SwayNotificationCenterLayer self);
VALA_EXTERN GType sway_notification_center_css_priority_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gint sway_notification_center_css_priority_get_priority (SwayNotificationCenterCssPriority self);
VALA_EXTERN GType sway_notification_center_category_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterCategory, g_object_unref)
VALA_EXTERN gchar* sway_notification_center_category_to_string (SwayNotificationCenterCategory* self);
VALA_EXTERN const gchar* sway_notification_center_category_get_sound (SwayNotificationCenterCategory* self);
static void _vala_array_add1 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
VALA_EXTERN const gchar* sway_notification_center_category_get_icon (SwayNotificationCenterCategory* self);
static void _vala_array_add2 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
VALA_EXTERN SwayNotificationCenterCategory* sway_notification_center_category_new (void);
VALA_EXTERN SwayNotificationCenterCategory* sway_notification_center_category_construct (GType object_type);
VALA_EXTERN void sway_notification_center_category_set_sound (SwayNotificationCenterCategory* self,
                                                  const gchar* value);
VALA_EXTERN void sway_notification_center_category_set_icon (SwayNotificationCenterCategory* self,
                                                 const gchar* value);
static void sway_notification_center_category_finalize (GObject * obj);
static GType sway_notification_center_category_get_type_once (void);
static void _vala_sway_notification_center_category_get_property (GObject * object,
                                                           guint property_id,
                                                           GValue * value,
                                                           GParamSpec * pspec);
static void _vala_sway_notification_center_category_set_property (GObject * object,
                                                           guint property_id,
                                                           const GValue * value,
                                                           GParamSpec * pspec);
VALA_EXTERN GType sway_notification_center_match_case_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterMatchCase* sway_notification_center_match_case_dup (const SwayNotificationCenterMatchCase* self);
VALA_EXTERN void sway_notification_center_match_case_free (SwayNotificationCenterMatchCase* self);
VALA_EXTERN void sway_notification_center_match_case_copy (const SwayNotificationCenterMatchCase* self,
                                               SwayNotificationCenterMatchCase* dest);
VALA_EXTERN void sway_notification_center_match_case_destroy (SwayNotificationCenterMatchCase* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (SwayNotificationCenterMatchCase, sway_notification_center_match_case_destroy)
VALA_EXTERN void sway_notification_center_match_case_init (SwayNotificationCenterMatchCase *self,
                                               const gchar* pattern,
                                               const gchar* str);
VALA_EXTERN gboolean sway_notification_center_match_case_is_valid (SwayNotificationCenterMatchCase *self);
VALA_EXTERN GType sway_notification_center_notification_matching_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotificationMatching, g_object_unref)
VALA_EXTERN GType sway_notification_center_notify_params_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotifyParams, g_object_unref)
VALA_EXTERN gboolean sway_notification_center_notification_matching_matches_notification (SwayNotificationCenterNotificationMatching* self,
                                                                              SwayNotificationCenterNotifyParams* param);
static gboolean sway_notification_center_notification_matching_real_matches_notification (SwayNotificationCenterNotificationMatching* self,
                                                                                   SwayNotificationCenterNotifyParams* param);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_app_name (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_app_name (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_desktop_entry (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_desktop_entry (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_summary (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_summary (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_body (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_body (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_urgency (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN GType sway_notification_center_urgency_levels_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SwayNotificationCenterUrgencyLevels sway_notification_center_notify_params_get_urgency (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gchar* sway_notification_center_urgency_levels_to_string (SwayNotificationCenterUrgencyLevels self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_category (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_category (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_sound_file (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_sound_file (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN const gchar* sway_notification_center_notification_matching_get_sound_name (SwayNotificationCenterNotificationMatching* self);
VALA_EXTERN const gchar* sway_notification_center_notify_params_get_sound_name (SwayNotificationCenterNotifyParams* self);
VALA_EXTERN gchar* sway_notification_center_notification_matching_to_string (SwayNotificationCenterNotificationMatching* self);
static void _vala_array_add3 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add4 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add5 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add6 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add7 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add8 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static JsonNode* sway_notification_center_notification_matching_real_serialize_property (JsonSerializable* base,
                                                                                  const gchar* property_name,
                                                                                  GValue* value,
                                                                                  GParamSpec* pspec);
static void _vala_JsonNode_free (JsonNode* self);
VALA_EXTERN SwayNotificationCenterNotificationMatching* sway_notification_center_notification_matching_new (void);
VALA_EXTERN SwayNotificationCenterNotificationMatching* sway_notification_center_notification_matching_construct (GType object_type);
VALA_EXTERN void sway_notification_center_notification_matching_set_app_name (SwayNotificationCenterNotificationMatching* self,
                                                                  const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_desktop_entry (SwayNotificationCenterNotificationMatching* self,
                                                                       const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_summary (SwayNotificationCenterNotificationMatching* self,
                                                                 const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_body (SwayNotificationCenterNotificationMatching* self,
                                                              const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_urgency (SwayNotificationCenterNotificationMatching* self,
                                                                 const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_category (SwayNotificationCenterNotificationMatching* self,
                                                                  const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_sound_name (SwayNotificationCenterNotificationMatching* self,
                                                                    const gchar* value);
VALA_EXTERN void sway_notification_center_notification_matching_set_sound_file (SwayNotificationCenterNotificationMatching* self,
                                                                    const gchar* value);
static void sway_notification_center_notification_matching_finalize (GObject * obj);
static GType sway_notification_center_notification_matching_get_type_once (void);
static void _vala_sway_notification_center_notification_matching_get_property (GObject * object,
                                                                        guint property_id,
                                                                        GValue * value,
                                                                        GParamSpec * pspec);
static void _vala_sway_notification_center_notification_matching_set_property (GObject * object,
                                                                        guint property_id,
                                                                        const GValue * value,
                                                                        GParamSpec * pspec);
VALA_EXTERN GType sway_notification_center_action_matching_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterActionMatching, g_object_unref)
VALA_EXTERN GType sway_notification_center_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterAction, g_object_unref)
VALA_EXTERN gboolean sway_notification_center_action_matching_matches_action (SwayNotificationCenterActionMatching* self,
                                                                  SwayNotificationCenterAction* action);
VALA_EXTERN const gchar* sway_notification_center_action_matching_get_id_matcher (SwayNotificationCenterActionMatching* self);
VALA_EXTERN const gchar* sway_notification_center_action_get_identifier (SwayNotificationCenterAction* self);
VALA_EXTERN const gchar* sway_notification_center_action_matching_get_text_matcher (SwayNotificationCenterActionMatching* self);
VALA_EXTERN const gchar* sway_notification_center_action_get_text (SwayNotificationCenterAction* self);
VALA_EXTERN gboolean sway_notification_center_action_matching_get_use_regex (SwayNotificationCenterActionMatching* self);
static void _vala_SwayNotificationCenterMatchCase_array_free (SwayNotificationCenterMatchCase * array,
                                                       gssize array_length);
VALA_EXTERN gboolean sway_notification_center_action_matching_matches_notification (SwayNotificationCenterActionMatching* self,
                                                                        SwayNotificationCenterNotifyParams* param);
VALA_EXTERN gchar* sway_notification_center_action_matching_to_string (SwayNotificationCenterActionMatching* self);
VALA_EXTERN const gchar* sway_notification_center_action_matching_get_app_name (SwayNotificationCenterActionMatching* self);
VALA_EXTERN const gchar* sway_notification_center_action_matching_get_desktop_entry (SwayNotificationCenterActionMatching* self);
static void _vala_array_add9 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void _vala_array_add10 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add11 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add12 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static JsonNode* sway_notification_center_action_matching_real_serialize_property (JsonSerializable* base,
                                                                            const gchar* property_name,
                                                                            GValue* value,
                                                                            GParamSpec* pspec);
VALA_EXTERN SwayNotificationCenterActionMatching* sway_notification_center_action_matching_new (void);
VALA_EXTERN SwayNotificationCenterActionMatching* sway_notification_center_action_matching_construct (GType object_type);
VALA_EXTERN void sway_notification_center_action_matching_set_app_name (SwayNotificationCenterActionMatching* self,
                                                            const gchar* value);
VALA_EXTERN void sway_notification_center_action_matching_set_desktop_entry (SwayNotificationCenterActionMatching* self,
                                                                 const gchar* value);
VALA_EXTERN void sway_notification_center_action_matching_set_id_matcher (SwayNotificationCenterActionMatching* self,
                                                              const gchar* value);
VALA_EXTERN void sway_notification_center_action_matching_set_text_matcher (SwayNotificationCenterActionMatching* self,
                                                                const gchar* value);
VALA_EXTERN void sway_notification_center_action_matching_set_use_regex (SwayNotificationCenterActionMatching* self,
                                                             gboolean value);
static void sway_notification_center_action_matching_finalize (GObject * obj);
static GType sway_notification_center_action_matching_get_type_once (void);
static void _vala_sway_notification_center_action_matching_get_property (GObject * object,
                                                                  guint property_id,
                                                                  GValue * value,
                                                                  GParamSpec * pspec);
static void _vala_sway_notification_center_action_matching_set_property (GObject * object,
                                                                  guint property_id,
                                                                  const GValue * value,
                                                                  GParamSpec * pspec);
VALA_EXTERN GType sway_notification_center_notification_status_enum_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* sway_notification_center_notification_status_enum_to_string (SwayNotificationCenterNotificationStatusEnum self);
VALA_EXTERN SwayNotificationCenterNotificationStatusEnum sway_notification_center_notification_status_enum_from_value (const gchar* value);
VALA_EXTERN GType sway_notification_center_notification_urgency_enum_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint8 sway_notification_center_notification_urgency_enum_to_byte (SwayNotificationCenterNotificationUrgencyEnum self);
VALA_EXTERN gchar* sway_notification_center_notification_urgency_enum_to_string (SwayNotificationCenterNotificationUrgencyEnum self);
VALA_EXTERN GType sway_notification_center_notification_visibility_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterNotificationVisibility, g_object_unref)
VALA_EXTERN SwayNotificationCenterNotificationVisibility* sway_notification_center_notification_visibility_new (void);
VALA_EXTERN SwayNotificationCenterNotificationVisibility* sway_notification_center_notification_visibility_construct (GType object_type);
VALA_EXTERN SwayNotificationCenterNotificationStatusEnum sway_notification_center_notification_visibility_get_state (SwayNotificationCenterNotificationVisibility* self);
VALA_EXTERN void sway_notification_center_notification_visibility_set_state (SwayNotificationCenterNotificationVisibility* self,
                                                                 SwayNotificationCenterNotificationStatusEnum value);
VALA_EXTERN SwayNotificationCenterNotificationUrgencyEnum sway_notification_center_notification_visibility_get_override_urgency (SwayNotificationCenterNotificationVisibility* self);
VALA_EXTERN void sway_notification_center_notification_visibility_set_override_urgency (SwayNotificationCenterNotificationVisibility* self,
                                                                            SwayNotificationCenterNotificationUrgencyEnum value);
static void sway_notification_center_notification_visibility_finalize (GObject * obj);
static GType sway_notification_center_notification_visibility_get_type_once (void);
static void _vala_sway_notification_center_notification_visibility_get_property (GObject * object,
                                                                          guint property_id,
                                                                          GValue * value,
                                                                          GParamSpec * pspec);
static void _vala_sway_notification_center_notification_visibility_set_property (GObject * object,
                                                                          guint property_id,
                                                                          const GValue * value,
                                                                          GParamSpec * pspec);
VALA_EXTERN GType sway_notification_center_script_run_on_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType sway_notification_center_script_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterScript, g_object_unref)
static void sway_notification_center_script_run_script_data_free (gpointer _data);
VALA_EXTERN void sway_notification_center_script_run_script (SwayNotificationCenterScript* self,
                                                 SwayNotificationCenterNotifyParams* param,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
VALA_EXTERN gboolean sway_notification_center_script_run_script_finish (SwayNotificationCenterScript* self,
                                                            GAsyncResult* _res_,
                                                            gchar** msg);
static gboolean sway_notification_center_script_run_script_co (SwayNotificationCenterScriptRunScriptData* _data_);
static void _vala_array_add13 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add14 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add15 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add16 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add17 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add18 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add19 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN guint32 sway_notification_center_notify_params_get_applied_id (SwayNotificationCenterNotifyParams* self);
static void _vala_array_add20 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN guint32 sway_notification_center_notify_params_get_replaces_id (SwayNotificationCenterNotifyParams* self);
static void _vala_array_add21 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN gint64 sway_notification_center_notify_params_get_time (SwayNotificationCenterNotifyParams* self);
static void _vala_array_add22 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
static void _vala_array_add23 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN GHashTable* sway_notification_center_notify_params_get_hints (SwayNotificationCenterNotifyParams* self);
static void _vala_array_add24 (gchar** * array,
                        gint* length,
                        gint* size,
                        gchar* value);
VALA_EXTERN void sway_notification_center_functions_execute_command (const gchar* cmd,
                                                         gchar** env_additions,
                                                         gint env_additions_length1,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
VALA_EXTERN gboolean sway_notification_center_functions_execute_command_finish (GAsyncResult* _res_,
                                                                    gchar** msg);
VALA_EXTERN const gchar* sway_notification_center_script_get_exec (SwayNotificationCenterScript* self);
static void sway_notification_center_script_run_script_ready (GObject* source_object,
                                                       GAsyncResult* _res_,
                                                       gpointer _user_data_);
static gboolean sway_notification_center_script_real_matches_notification (SwayNotificationCenterNotificationMatching* base,
                                                                    SwayNotificationCenterNotifyParams* param);
VALA_EXTERN SwayNotificationCenterScript* sway_notification_center_script_new (void);
VALA_EXTERN SwayNotificationCenterScript* sway_notification_center_script_construct (GType object_type);
VALA_EXTERN void sway_notification_center_script_set_exec (SwayNotificationCenterScript* self,
                                               const gchar* value);
VALA_EXTERN SwayNotificationCenterScriptRunOnType sway_notification_center_script_get_run_on (SwayNotificationCenterScript* self);
VALA_EXTERN void sway_notification_center_script_set_run_on (SwayNotificationCenterScript* self,
                                                 SwayNotificationCenterScriptRunOnType value);
static void sway_notification_center_script_finalize (GObject * obj);
static GType sway_notification_center_script_get_type_once (void);
static void _vala_sway_notification_center_script_get_property (GObject * object,
                                                         guint property_id,
                                                         GValue * value,
                                                         GParamSpec * pspec);
static void _vala_sway_notification_center_script_set_property (GObject * object,
                                                         guint property_id,
                                                         const GValue * value,
                                                         GParamSpec * pspec);
VALA_EXTERN GType sway_notification_center_config_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterConfigModel, g_object_unref)
VALA_EXTERN gpointer sway_notification_center_ordered_hash_table_ref (gpointer instance);
VALA_EXTERN void sway_notification_center_ordered_hash_table_unref (gpointer instance);
VALA_EXTERN GParamSpec* sway_notification_center_param_spec_ordered_hash_table (const gchar* name,
                                                                    const gchar* nick,
                                                                    const gchar* blurb,
                                                                    GType object_type,
                                                                    GParamFlags flags);
VALA_EXTERN void sway_notification_center_value_set_ordered_hash_table (GValue* value,
                                                            gpointer v_object);
VALA_EXTERN void sway_notification_center_value_take_ordered_hash_table (GValue* value,
                                                             gpointer v_object);
VALA_EXTERN gpointer sway_notification_center_value_get_ordered_hash_table (const GValue* value);
VALA_EXTERN GType sway_notification_center_ordered_hash_table_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterOrderedHashTable, sway_notification_center_ordered_hash_table_unref)
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_ordered_hash_table_new (GType t_type,
                                                                                         GBoxedCopyFunc t_dup_func,
                                                                                         GDestroyNotify t_destroy_func);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_ordered_hash_table_construct (GType object_type,
                                                                                               GType t_type,
                                                                                               GBoxedCopyFunc t_dup_func,
                                                                                               GDestroyNotify t_destroy_func);
static void _g_free0_ (gpointer var);
VALA_EXTERN SwayNotificationCenterConfigModel* sway_notification_center_config_model_init (const gchar* path);
VALA_EXTERN void sway_notification_center_config_model_reload_config (SwayNotificationCenterConfigModelModifyNode modify_cb,
                                                          gpointer modify_cb_target);
static void _lambda15_ (void);
static void __lambda15__sway_notification_center_config_model_modify_node (JsonNode* node,
                                                                    gpointer self);
VALA_EXTERN gchar* sway_notification_center_functions_get_config_path (gchar* custom_path);
static JsonNode* _vala_JsonNode_copy (JsonNode* self);
VALA_EXTERN SwayNotificationCenterConfigModel* sway_notification_center_config_model_new (void);
VALA_EXTERN SwayNotificationCenterConfigModel* sway_notification_center_config_model_construct (GType object_type);
VALA_EXTERN gchar* sway_notification_center_config_model_to_string (SwayNotificationCenterConfigModel* self);
VALA_EXTERN GType sway_notification_center_swaync_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SwayNotificationCenterSwaync, g_object_unref)
static gboolean sway_notification_center_config_model_real_deserialize_property (JsonSerializable* base,
                                                                          const gchar* property_name,
                                                                          GValue* value,
                                                                          GParamSpec* pspec,
                                                                          JsonNode* property_node);
static SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_extract_hashtable (SwayNotificationCenterConfigModel* self,
                                                                                                 GType t_type,
                                                                                                 GBoxedCopyFunc t_dup_func,
                                                                                                 GDestroyNotify t_destroy_func,
                                                                                                 const gchar* property_name,
                                                                                                 JsonNode* node,
                                                                                                 gboolean* status);
static GPtrArray* sway_notification_center_config_model_extract_array (SwayNotificationCenterConfigModel* self,
                                                                GType t_type,
                                                                GBoxedCopyFunc t_dup_func,
                                                                GDestroyNotify t_destroy_func,
                                                                const gchar* property_name,
                                                                JsonNode* node,
                                                                gboolean* status);
VALA_EXTERN void sway_notification_center_ordered_hash_table_insert (SwayNotificationCenterOrderedHashTable* self,
                                                         gchar* key,
                                                         gpointer value);
static JsonNode* sway_notification_center_config_model_real_serialize_property (JsonSerializable* base,
                                                                         const gchar* property_name,
                                                                         GValue* value,
                                                                         GParamSpec* pspec);
static GEnumValue* _g_enum_value_dup (GEnumValue* self);
static JsonObject* sway_notification_center_config_model_serialize_hashtable (SwayNotificationCenterConfigModel* self,
                                                                       GType t_type,
                                                                       GBoxedCopyFunc t_dup_func,
                                                                       GDestroyNotify t_destroy_func,
                                                                       SwayNotificationCenterOrderedHashTable* table);
static JsonArray* sway_notification_center_config_model_serialize_array (SwayNotificationCenterConfigModel* self,
                                                                  GType t_type,
                                                                  GBoxedCopyFunc t_dup_func,
                                                                  GDestroyNotify t_destroy_func,
                                                                  GPtrArray* array);
VALA_EXTERN SwayNotificationCenterConfigModel* sway_notification_center_config_model_get_instance (void);
VALA_EXTERN GType sway_notification_center_functions_get_base_type (GType type);
static gint64* _int64_dup (gint64* self);
VALA_EXTERN GList* sway_notification_center_ordered_hash_table_get_keys (SwayNotificationCenterOrderedHashTable* self);
VALA_EXTERN gconstpointer sway_notification_center_ordered_hash_table_get (SwayNotificationCenterOrderedHashTable* self,
                                                               const gchar* key);
static gboolean* _bool_dup (gboolean* self);
VALA_EXTERN void sway_notification_center_config_model_change_value (SwayNotificationCenterConfigModel* self,
                                                         const gchar* member_name,
                                                         GVariant* value,
                                                         gboolean write,
                                                         const gchar* path);
static Block4Data* block4_data_ref (Block4Data* _data4_);
static void block4_data_unref (void * _userdata_);
static void __lambda98_ (Block4Data* _data4_,
                  JsonNode* node);
static void ___lambda98__sway_notification_center_config_model_modify_node (JsonNode* node,
                                                                     gpointer self);
static gboolean sway_notification_center_config_model_write_to_file (SwayNotificationCenterConfigModel* self,
                                                              gchar* path);
VALA_EXTERN gboolean sway_notification_center_config_model_get_ignore_gtk_theme (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_ignore_gtk_theme (SwayNotificationCenterConfigModel* self,
                                                                 gboolean value);
VALA_EXTERN SwayNotificationCenterPositionX sway_notification_center_config_model_get_positionX (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_positionX (SwayNotificationCenterConfigModel* self,
                                                          SwayNotificationCenterPositionX value);
VALA_EXTERN SwayNotificationCenterPositionY sway_notification_center_config_model_get_positionY (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_positionY (SwayNotificationCenterConfigModel* self,
                                                          SwayNotificationCenterPositionY value);
VALA_EXTERN SwayNotificationCenterLayer sway_notification_center_config_model_get_layer (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_layer (SwayNotificationCenterConfigModel* self,
                                                      SwayNotificationCenterLayer value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_layer_shell (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_layer_shell (SwayNotificationCenterConfigModel* self,
                                                            gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_layer_shell_cover_screen (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_layer_shell_cover_screen (SwayNotificationCenterConfigModel* self,
                                                                         gboolean value);
VALA_EXTERN SwayNotificationCenterCssPriority sway_notification_center_config_model_get_cssPriority (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_cssPriority (SwayNotificationCenterConfigModel* self,
                                                            SwayNotificationCenterCssPriority value);
VALA_EXTERN gint sway_notification_center_config_model_get_timeout (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_timeout (SwayNotificationCenterConfigModel* self,
                                                        gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_timeout_low (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_timeout_low (SwayNotificationCenterConfigModel* self,
                                                            gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_timeout_critical (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_timeout_critical (SwayNotificationCenterConfigModel* self,
                                                                 gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_transition_time (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_transition_time (SwayNotificationCenterConfigModel* self,
                                                                gint value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_keyboard_shortcuts (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_keyboard_shortcuts (SwayNotificationCenterConfigModel* self,
                                                                   gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_notification_grouping (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_grouping (SwayNotificationCenterConfigModel* self,
                                                                      gboolean value);
VALA_EXTERN SwayNotificationCenterImageVisibility sway_notification_center_config_model_get_image_visibility (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_image_visibility (SwayNotificationCenterConfigModel* self,
                                                                 SwayNotificationCenterImageVisibility value);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_window_width (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_window_width (SwayNotificationCenterConfigModel* self,
                                                                          gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_window_height (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_window_height (SwayNotificationCenterConfigModel* self,
                                                                           gint value);
VALA_EXTERN const gchar* sway_notification_center_config_model_get_notification_window_preferred_output (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_window_preferred_output (SwayNotificationCenterConfigModel* self,
                                                                                     const gchar* value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_hide_on_clear (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_hide_on_clear (SwayNotificationCenterConfigModel* self,
                                                              gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_hide_on_action (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_hide_on_action (SwayNotificationCenterConfigModel* self,
                                                               gboolean value);
VALA_EXTERN const gchar* sway_notification_center_config_model_get_text_empty (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_text_empty (SwayNotificationCenterConfigModel* self,
                                                           const gchar* value);
VALA_EXTERN SwayNotificationCenterPositionX sway_notification_center_config_model_get_control_center_positionX (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_positionX (SwayNotificationCenterConfigModel* self,
                                                                         SwayNotificationCenterPositionX value);
VALA_EXTERN SwayNotificationCenterPositionY sway_notification_center_config_model_get_control_center_positionY (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_positionY (SwayNotificationCenterConfigModel* self,
                                                                         SwayNotificationCenterPositionY value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_margin_top (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_margin_top (SwayNotificationCenterConfigModel* self,
                                                                          gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_margin_bottom (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_margin_bottom (SwayNotificationCenterConfigModel* self,
                                                                             gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_margin_left (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_margin_left (SwayNotificationCenterConfigModel* self,
                                                                           gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_margin_right (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_margin_right (SwayNotificationCenterConfigModel* self,
                                                                            gint value);
VALA_EXTERN SwayNotificationCenterLayer sway_notification_center_config_model_get_control_center_layer (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_layer (SwayNotificationCenterConfigModel* self,
                                                                     SwayNotificationCenterLayer value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_control_center_exclusive_zone (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_exclusive_zone (SwayNotificationCenterConfigModel* self,
                                                                              gboolean value);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_get_categories_settings (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_categories_settings (SwayNotificationCenterConfigModel* self,
                                                                    SwayNotificationCenterOrderedHashTable* value);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_get_notification_action_filter (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_action_filter (SwayNotificationCenterConfigModel* self,
                                                                           SwayNotificationCenterOrderedHashTable* value);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_get_notification_visibility (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_visibility (SwayNotificationCenterConfigModel* self,
                                                                        SwayNotificationCenterOrderedHashTable* value);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_get_scripts (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_scripts (SwayNotificationCenterConfigModel* self,
                                                        SwayNotificationCenterOrderedHashTable* value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_script_fail_notify (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_script_fail_notify (SwayNotificationCenterConfigModel* self,
                                                                   gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_fit_to_screen (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_fit_to_screen (SwayNotificationCenterConfigModel* self,
                                                              gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_relative_timestamps (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_relative_timestamps (SwayNotificationCenterConfigModel* self,
                                                                    gboolean value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_height (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_height (SwayNotificationCenterConfigModel* self,
                                                                      gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_control_center_width (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_width (SwayNotificationCenterConfigModel* self,
                                                                     gint value);
VALA_EXTERN const gchar* sway_notification_center_config_model_get_control_center_preferred_output (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_control_center_preferred_output (SwayNotificationCenterConfigModel* self,
                                                                                const gchar* value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_notification_2fa_action (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_2fa_action (SwayNotificationCenterConfigModel* self,
                                                                        gboolean value);
VALA_EXTERN gboolean sway_notification_center_config_model_get_notification_inline_replies (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_inline_replies (SwayNotificationCenterConfigModel* self,
                                                                            gboolean value);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_icon_size (SwayNotificationCenterConfigModel* self) G_GNUC_DEPRECATED ;
VALA_EXTERN void sway_notification_center_config_model_set_notification_icon_size (SwayNotificationCenterConfigModel* self,
                                                                       gint value) G_GNUC_DEPRECATED ;
VALA_EXTERN gint sway_notification_center_config_model_get_notification_body_image_height (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_body_image_height (SwayNotificationCenterConfigModel* self,
                                                                               gint value);
VALA_EXTERN gint sway_notification_center_config_model_get_notification_body_image_width (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_notification_body_image_width (SwayNotificationCenterConfigModel* self,
                                                                              gint value);
VALA_EXTERN GPtrArray* sway_notification_center_config_model_get_widgets (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_widgets (SwayNotificationCenterConfigModel* self,
                                                        GPtrArray* value);
VALA_EXTERN SwayNotificationCenterOrderedHashTable* sway_notification_center_config_model_get_widget_config (SwayNotificationCenterConfigModel* self);
VALA_EXTERN void sway_notification_center_config_model_set_widget_config (SwayNotificationCenterConfigModel* self,
                                                              SwayNotificationCenterOrderedHashTable* value);
static void sway_notification_center_config_model_finalize (GObject * obj);
static GType sway_notification_center_config_model_get_type_once (void);
static void _vala_sway_notification_center_config_model_get_property (GObject * object,
                                                               guint property_id,
                                                               GValue * value,
                                                               GParamSpec * pspec);
static void _vala_sway_notification_center_config_model_set_property (GObject * object,
                                                               guint property_id,
                                                               const GValue * value,
                                                               GParamSpec * pspec);
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);

 G_GNUC_NO_INLINE static GType
sway_notification_center_position_x_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT, "SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT", "right"}, {SWAY_NOTIFICATION_CENTER_POSITION_X_LEFT, "SWAY_NOTIFICATION_CENTER_POSITION_X_LEFT", "left"}, {SWAY_NOTIFICATION_CENTER_POSITION_X_CENTER, "SWAY_NOTIFICATION_CENTER_POSITION_X_CENTER", "center"}, {SWAY_NOTIFICATION_CENTER_POSITION_X_NONE, "SWAY_NOTIFICATION_CENTER_POSITION_X_NONE", "none"}, {0, NULL, NULL}};
	GType sway_notification_center_position_x_type_id;
	sway_notification_center_position_x_type_id = g_enum_register_static ("SwayNotificationCenterPositionX", values);
	return sway_notification_center_position_x_type_id;
}

GType
sway_notification_center_position_x_get_type (void)
{
	static gsize sway_notification_center_position_x_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_position_x_type_id__once)) {
		GType sway_notification_center_position_x_type_id;
		sway_notification_center_position_x_type_id = sway_notification_center_position_x_get_type_once ();
		g_once_init_leave (&sway_notification_center_position_x_type_id__once, sway_notification_center_position_x_type_id);
	}
	return sway_notification_center_position_x_type_id__once;
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_position_y_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_POSITION_Y_TOP, "SWAY_NOTIFICATION_CENTER_POSITION_Y_TOP", "top"}, {SWAY_NOTIFICATION_CENTER_POSITION_Y_BOTTOM, "SWAY_NOTIFICATION_CENTER_POSITION_Y_BOTTOM", "bottom"}, {SWAY_NOTIFICATION_CENTER_POSITION_Y_CENTER, "SWAY_NOTIFICATION_CENTER_POSITION_Y_CENTER", "center"}, {SWAY_NOTIFICATION_CENTER_POSITION_Y_NONE, "SWAY_NOTIFICATION_CENTER_POSITION_Y_NONE", "none"}, {0, NULL, NULL}};
	GType sway_notification_center_position_y_type_id;
	sway_notification_center_position_y_type_id = g_enum_register_static ("SwayNotificationCenterPositionY", values);
	return sway_notification_center_position_y_type_id;
}

GType
sway_notification_center_position_y_get_type (void)
{
	static gsize sway_notification_center_position_y_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_position_y_type_id__once)) {
		GType sway_notification_center_position_y_type_id;
		sway_notification_center_position_y_type_id = sway_notification_center_position_y_get_type_once ();
		g_once_init_leave (&sway_notification_center_position_y_type_id__once, sway_notification_center_position_y_type_id);
	}
	return sway_notification_center_position_y_type_id__once;
}

gchar*
sway_notification_center_image_visibility_parse (SwayNotificationCenterImageVisibility self)
{
	gchar* result;
	switch (self) {
		default:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("always");
			result = _tmp0_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("when_available");
			result = _tmp1_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("never");
			result = _tmp2_;
			return result;
		}
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_image_visibility_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_ALWAYS, "SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_ALWAYS", "always"}, {SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE, "SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE", "when-available"}, {SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER, "SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_NEVER", "never"}, {0, NULL, NULL}};
	GType sway_notification_center_image_visibility_type_id;
	sway_notification_center_image_visibility_type_id = g_enum_register_static ("SwayNotificationCenterImageVisibility", values);
	return sway_notification_center_image_visibility_type_id;
}

GType
sway_notification_center_image_visibility_get_type (void)
{
	static gsize sway_notification_center_image_visibility_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_image_visibility_type_id__once)) {
		GType sway_notification_center_image_visibility_type_id;
		sway_notification_center_image_visibility_type_id = sway_notification_center_image_visibility_get_type_once ();
		g_once_init_leave (&sway_notification_center_image_visibility_type_id__once, sway_notification_center_image_visibility_type_id);
	}
	return sway_notification_center_image_visibility_type_id__once;
}

gchar*
sway_notification_center_layer_parse (SwayNotificationCenterLayer self)
{
	gchar* result;
	switch (self) {
		case SWAY_NOTIFICATION_CENTER_LAYER_BACKGROUND:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("background");
			result = _tmp0_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_LAYER_BOTTOM:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("bottom");
			result = _tmp1_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_LAYER_TOP:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("top");
			result = _tmp2_;
			return result;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup ("overlay");
			result = _tmp3_;
			return result;
		}
	}
}

GtkLayerShellLayer
sway_notification_center_layer_to_layer (SwayNotificationCenterLayer self)
{
	GtkLayerShellLayer result;
	switch (self) {
		case SWAY_NOTIFICATION_CENTER_LAYER_BACKGROUND:
		{
			result = GTK_LAYER_SHELL_LAYER_BACKGROUND;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_LAYER_BOTTOM:
		{
			result = GTK_LAYER_SHELL_LAYER_BOTTOM;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_LAYER_TOP:
		{
			result = GTK_LAYER_SHELL_LAYER_TOP;
			return result;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY:
		{
			result = GTK_LAYER_SHELL_LAYER_OVERLAY;
			return result;
		}
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_layer_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_LAYER_BACKGROUND, "SWAY_NOTIFICATION_CENTER_LAYER_BACKGROUND", "background"}, {SWAY_NOTIFICATION_CENTER_LAYER_BOTTOM, "SWAY_NOTIFICATION_CENTER_LAYER_BOTTOM", "bottom"}, {SWAY_NOTIFICATION_CENTER_LAYER_TOP, "SWAY_NOTIFICATION_CENTER_LAYER_TOP", "top"}, {SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY, "SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY", "overlay"}, {0, NULL, NULL}};
	GType sway_notification_center_layer_type_id;
	sway_notification_center_layer_type_id = g_enum_register_static ("SwayNotificationCenterLayer", values);
	return sway_notification_center_layer_type_id;
}

GType
sway_notification_center_layer_get_type (void)
{
	static gsize sway_notification_center_layer_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_layer_type_id__once)) {
		GType sway_notification_center_layer_type_id;
		sway_notification_center_layer_type_id = sway_notification_center_layer_get_type_once ();
		g_once_init_leave (&sway_notification_center_layer_type_id__once, sway_notification_center_layer_type_id);
	}
	return sway_notification_center_layer_type_id__once;
}

gint
sway_notification_center_css_priority_get_priority (SwayNotificationCenterCssPriority self)
{
	gint result;
	switch (self) {
		case SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_APPLICATION:
		{
			result = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION;
			return result;
		}
		default:
		case SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER:
		{
			result = GTK_STYLE_PROVIDER_PRIORITY_USER;
			return result;
		}
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_css_priority_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_APPLICATION, "SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_APPLICATION", "application"}, {SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER, "SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER", "user"}, {0, NULL, NULL}};
	GType sway_notification_center_css_priority_type_id;
	sway_notification_center_css_priority_type_id = g_enum_register_static ("SwayNotificationCenterCssPriority", values);
	return sway_notification_center_css_priority_type_id;
}

GType
sway_notification_center_css_priority_get_type (void)
{
	static gsize sway_notification_center_css_priority_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_css_priority_type_id__once)) {
		GType sway_notification_center_css_priority_type_id;
		sway_notification_center_css_priority_type_id = sway_notification_center_css_priority_get_type_once ();
		g_once_init_leave (&sway_notification_center_css_priority_type_id__once, sway_notification_center_css_priority_type_id);
	}
	return sway_notification_center_css_priority_type_id__once;
}

static inline gpointer
sway_notification_center_category_get_instance_private (SwayNotificationCenterCategory* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterCategory_private_offset);
}

static void
_vala_array_add1 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add2 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static gchar*
_vala_g_strjoinv (const gchar* separator,
                  gchar** str_array,
                  gint str_array_length1)
{
	gboolean _tmp0_ = FALSE;
	gchar* result;
	if (separator == NULL) {
		separator = "";
	}
	if (str_array != NULL) {
		gboolean _tmp1_ = FALSE;
		if (str_array_length1 > 0) {
			_tmp1_ = TRUE;
		} else {
			gboolean _tmp2_ = FALSE;
			if (str_array_length1 == -1) {
				const gchar* _tmp3_;
				_tmp3_ = str_array[0];
				_tmp2_ = _tmp3_ != NULL;
			} else {
				_tmp2_ = FALSE;
			}
			_tmp1_ = _tmp2_;
		}
		_tmp0_ = _tmp1_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gint i = 0;
		gsize len = 0UL;
		gint _tmp16_;
		gint _tmp17_;
		const gchar* res = NULL;
		void* _tmp18_;
		const gchar* _tmp19_ = NULL;
		const gchar* _tmp20_;
		void* ptr = NULL;
		const gchar* _tmp22_;
		void* _tmp23_;
		const gchar* _tmp33_;
		len = (gsize) 1;
		{
			gboolean _tmp4_ = FALSE;
			i = 0;
			_tmp4_ = TRUE;
			while (TRUE) {
				gboolean _tmp6_ = FALSE;
				gboolean _tmp7_ = FALSE;
				gint _tmp10_ = 0;
				const gchar* _tmp11_;
				if (!_tmp4_) {
					gint _tmp5_;
					_tmp5_ = i;
					i = _tmp5_ + 1;
				}
				_tmp4_ = FALSE;
				if (str_array_length1 != -1) {
					_tmp7_ = i < str_array_length1;
				} else {
					_tmp7_ = FALSE;
				}
				if (_tmp7_) {
					_tmp6_ = TRUE;
				} else {
					gboolean _tmp8_ = FALSE;
					if (str_array_length1 == -1) {
						const gchar* _tmp9_;
						_tmp9_ = str_array[i];
						_tmp8_ = _tmp9_ != NULL;
					} else {
						_tmp8_ = FALSE;
					}
					_tmp6_ = _tmp8_;
				}
				if (!_tmp6_) {
					break;
				}
				_tmp11_ = str_array[i];
				if (_tmp11_ != NULL) {
					const gchar* _tmp12_;
					gint _tmp13_;
					gint _tmp14_;
					_tmp12_ = str_array[i];
					_tmp13_ = strlen ((const gchar*) _tmp12_);
					_tmp14_ = _tmp13_;
					_tmp10_ = _tmp14_;
				} else {
					_tmp10_ = 0;
				}
				len += (gsize) _tmp10_;
			}
		}
		if (i == 0) {
			gchar* _tmp15_;
			_tmp15_ = g_strdup ("");
			result = _tmp15_;
			return result;
		}
		str_array_length1 = i;
		_tmp16_ = strlen ((const gchar*) separator);
		_tmp17_ = _tmp16_;
		len += (gsize) (_tmp17_ * (i - 1));
		_tmp18_ = g_malloc (len);
		res = _tmp18_;
		_tmp20_ = str_array[0];
		if (_tmp20_ != NULL) {
			const gchar* _tmp21_;
			_tmp21_ = str_array[0];
			_tmp19_ = (const gchar*) _tmp21_;
		} else {
			_tmp19_ = "";
		}
		_tmp22_ = res;
		_tmp23_ = g_stpcpy ((void*) _tmp22_, _tmp19_);
		ptr = _tmp23_;
		{
			gboolean _tmp24_ = FALSE;
			i = 1;
			_tmp24_ = TRUE;
			while (TRUE) {
				void* _tmp26_;
				void* _tmp27_;
				const gchar* _tmp28_ = NULL;
				const gchar* _tmp29_;
				void* _tmp31_;
				void* _tmp32_;
				if (!_tmp24_) {
					gint _tmp25_;
					_tmp25_ = i;
					i = _tmp25_ + 1;
				}
				_tmp24_ = FALSE;
				if (!(i < str_array_length1)) {
					break;
				}
				_tmp26_ = ptr;
				_tmp27_ = g_stpcpy (_tmp26_, (const gchar*) separator);
				ptr = _tmp27_;
				_tmp29_ = str_array[i];
				if (_tmp29_ != NULL) {
					const gchar* _tmp30_;
					_tmp30_ = str_array[i];
					_tmp28_ = (const gchar*) _tmp30_;
				} else {
					_tmp28_ = "";
				}
				_tmp31_ = ptr;
				_tmp32_ = g_stpcpy (_tmp31_, _tmp28_);
				ptr = _tmp32_;
			}
		}
		_tmp33_ = res;
		res = NULL;
		result = (gchar*) _tmp33_;
		return result;
	} else {
		gchar* _tmp34_;
		_tmp34_ = g_strdup ("");
		result = _tmp34_;
		return result;
	}
}

gchar*
sway_notification_center_category_to_string (SwayNotificationCenterCategory* self)
{
	gchar** fields = NULL;
	gchar** _tmp0_;
	gint fields_length1;
	gint _fields_size_;
	const gchar* _tmp1_;
	const gchar* _tmp4_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar* _tmp8_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CATEGORY (self), NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	fields = _tmp0_;
	fields_length1 = 0;
	_fields_size_ = fields_length1;
	_tmp1_ = self->priv->_sound;
	if (_tmp1_ != NULL) {
		const gchar* _tmp2_;
		gchar* _tmp3_;
		_tmp2_ = self->priv->_sound;
		_tmp3_ = g_strdup_printf ("sound: %s", _tmp2_);
		_vala_array_add1 (&fields, &fields_length1, &_fields_size_, _tmp3_);
	}
	_tmp4_ = self->priv->_icon;
	if (_tmp4_ != NULL) {
		const gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = self->priv->_icon;
		_tmp6_ = g_strdup_printf ("icon: %s", _tmp5_);
		_vala_array_add2 (&fields, &fields_length1, &_fields_size_, _tmp6_);
	}
	_tmp7_ = fields;
	_tmp7__length1 = fields_length1;
	_tmp8_ = _vala_g_strjoinv (", ", _tmp7_, (gint) _tmp7__length1);
	result = _tmp8_;
	fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

SwayNotificationCenterCategory*
sway_notification_center_category_construct (GType object_type)
{
	SwayNotificationCenterCategory * self = NULL;
	self = (SwayNotificationCenterCategory*) g_object_new (object_type, NULL);
	return self;
}

SwayNotificationCenterCategory*
sway_notification_center_category_new (void)
{
	return sway_notification_center_category_construct (SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY);
}

const gchar*
sway_notification_center_category_get_sound (SwayNotificationCenterCategory* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CATEGORY (self), NULL);
	_tmp0_ = self->priv->_sound;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_category_set_sound (SwayNotificationCenterCategory* self,
                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CATEGORY (self));
	old_value = sway_notification_center_category_get_sound (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_sound);
		self->priv->_sound = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_category_properties[SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY]);
	}
}

const gchar*
sway_notification_center_category_get_icon (SwayNotificationCenterCategory* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CATEGORY (self), NULL);
	_tmp0_ = self->priv->_icon;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_category_set_icon (SwayNotificationCenterCategory* self,
                                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CATEGORY (self));
	old_value = sway_notification_center_category_get_icon (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_icon);
		self->priv->_icon = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_category_properties[SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY]);
	}
}

static void
sway_notification_center_category_class_init (SwayNotificationCenterCategoryClass * klass,
                                              gpointer klass_data)
{
	sway_notification_center_category_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterCategory_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_category_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_category_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_category_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY, sway_notification_center_category_properties[SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY] = g_param_spec_string ("sound", "sound", "sound", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY, sway_notification_center_category_properties[SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY] = g_param_spec_string ("icon", "icon", "icon", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
sway_notification_center_category_instance_init (SwayNotificationCenterCategory * self,
                                                 gpointer klass)
{
	self->priv = sway_notification_center_category_get_instance_private (self);
	self->priv->_sound = NULL;
	self->priv->_icon = NULL;
}

static void
sway_notification_center_category_finalize (GObject * obj)
{
	SwayNotificationCenterCategory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategory);
	_g_free0 (self->priv->_sound);
	_g_free0 (self->priv->_icon);
	G_OBJECT_CLASS (sway_notification_center_category_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_category_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterCategoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_category_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterCategory), 0, (GInstanceInitFunc) sway_notification_center_category_instance_init, NULL };
	GType sway_notification_center_category_type_id;
	sway_notification_center_category_type_id = g_type_register_static (G_TYPE_OBJECT, "SwayNotificationCenterCategory", &g_define_type_info, 0);
	SwayNotificationCenterCategory_private_offset = g_type_add_instance_private (sway_notification_center_category_type_id, sizeof (SwayNotificationCenterCategoryPrivate));
	return sway_notification_center_category_type_id;
}

GType
sway_notification_center_category_get_type (void)
{
	static gsize sway_notification_center_category_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_category_type_id__once)) {
		GType sway_notification_center_category_type_id;
		sway_notification_center_category_type_id = sway_notification_center_category_get_type_once ();
		g_once_init_leave (&sway_notification_center_category_type_id__once, sway_notification_center_category_type_id);
	}
	return sway_notification_center_category_type_id__once;
}

static void
_vala_sway_notification_center_category_get_property (GObject * object,
                                                      guint property_id,
                                                      GValue * value,
                                                      GParamSpec * pspec)
{
	SwayNotificationCenterCategory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategory);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY:
		g_value_set_string (value, sway_notification_center_category_get_sound (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY:
		g_value_set_string (value, sway_notification_center_category_get_icon (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_category_set_property (GObject * object,
                                                      guint property_id,
                                                      const GValue * value,
                                                      GParamSpec * pspec)
{
	SwayNotificationCenterCategory * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, SwayNotificationCenterCategory);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_CATEGORY_SOUND_PROPERTY:
		sway_notification_center_category_set_sound (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CATEGORY_ICON_PROPERTY:
		sway_notification_center_category_set_icon (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

void
sway_notification_center_match_case_init (SwayNotificationCenterMatchCase *self,
                                          const gchar* pattern,
                                          const gchar* str)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	memset (self, 0, sizeof (SwayNotificationCenterMatchCase));
	_tmp0_ = g_strdup (pattern);
	_g_free0 ((*self).pattern);
	(*self).pattern = _tmp0_;
	_tmp1_ = g_strdup (str);
	_g_free0 ((*self).str);
	(*self).str = _tmp1_;
}

gboolean
sway_notification_center_match_case_is_valid (SwayNotificationCenterMatchCase *self)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	gboolean result;
	_tmp1_ = (*self).pattern;
	if (_tmp1_ != NULL) {
		const gchar* _tmp2_;
		_tmp2_ = (*self).str;
		_tmp0_ = _tmp2_ != NULL;
	} else {
		_tmp0_ = FALSE;
	}
	result = _tmp0_;
	return result;
}

void
sway_notification_center_match_case_copy (const SwayNotificationCenterMatchCase* self,
                                          SwayNotificationCenterMatchCase* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	_tmp0_ = (*self).pattern;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 ((*dest).pattern);
	(*dest).pattern = _tmp1_;
	_tmp2_ = (*self).str;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 ((*dest).str);
	(*dest).str = _tmp3_;
}

void
sway_notification_center_match_case_destroy (SwayNotificationCenterMatchCase* self)
{
	_g_free0 ((*self).pattern);
	_g_free0 ((*self).str);
}

SwayNotificationCenterMatchCase*
sway_notification_center_match_case_dup (const SwayNotificationCenterMatchCase* self)
{
	SwayNotificationCenterMatchCase* dup;
	dup = g_new0 (SwayNotificationCenterMatchCase, 1);
	sway_notification_center_match_case_copy (self, dup);
	return dup;
}

void
sway_notification_center_match_case_free (SwayNotificationCenterMatchCase* self)
{
	sway_notification_center_match_case_destroy (self);
	g_free (self);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_match_case_get_type_once (void)
{
	GType sway_notification_center_match_case_type_id;
	sway_notification_center_match_case_type_id = g_boxed_type_register_static ("SwayNotificationCenterMatchCase", (GBoxedCopyFunc) sway_notification_center_match_case_dup, (GBoxedFreeFunc) sway_notification_center_match_case_free);
	return sway_notification_center_match_case_type_id;
}

GType
sway_notification_center_match_case_get_type (void)
{
	static gsize sway_notification_center_match_case_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_match_case_type_id__once)) {
		GType sway_notification_center_match_case_type_id;
		sway_notification_center_match_case_type_id = sway_notification_center_match_case_get_type_once ();
		g_once_init_leave (&sway_notification_center_match_case_type_id__once, sway_notification_center_match_case_type_id);
	}
	return sway_notification_center_match_case_type_id__once;
}

static inline gpointer
sway_notification_center_notification_matching_get_instance_private (SwayNotificationCenterNotificationMatching* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterNotificationMatching_private_offset);
}

static gboolean
sway_notification_center_notification_matching_real_matches_notification (SwayNotificationCenterNotificationMatching* self,
                                                                          SwayNotificationCenterNotifyParams* param)
{
	const gchar* _tmp0_;
	const gchar* _tmp6_;
	const gchar* _tmp12_;
	const gchar* _tmp18_;
	const gchar* _tmp24_;
	const gchar* _tmp31_;
	const gchar* _tmp37_;
	const gchar* _tmp43_;
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param), FALSE);
	_tmp0_ = self->priv->_app_name;
	if (_tmp0_ != NULL) {
		const gchar* _tmp1_;
		const gchar* _tmp2_;
		gboolean _result_ = FALSE;
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		_tmp1_ = sway_notification_center_notify_params_get_app_name (param);
		_tmp2_ = _tmp1_;
		if (_tmp2_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp3_ = self->priv->_app_name;
		_tmp4_ = sway_notification_center_notify_params_get_app_name (param);
		_tmp5_ = _tmp4_;
		_result_ = g_regex_match_simple (_tmp3_, _tmp5_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp6_ = self->priv->_desktop_entry;
	if (_tmp6_ != NULL) {
		const gchar* _tmp7_;
		const gchar* _tmp8_;
		gboolean _result_ = FALSE;
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		const gchar* _tmp11_;
		_tmp7_ = sway_notification_center_notify_params_get_desktop_entry (param);
		_tmp8_ = _tmp7_;
		if (_tmp8_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp9_ = self->priv->_desktop_entry;
		_tmp10_ = sway_notification_center_notify_params_get_desktop_entry (param);
		_tmp11_ = _tmp10_;
		_result_ = g_regex_match_simple (_tmp9_, _tmp11_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp12_ = self->priv->_summary;
	if (_tmp12_ != NULL) {
		const gchar* _tmp13_;
		const gchar* _tmp14_;
		gboolean _result_ = FALSE;
		const gchar* _tmp15_;
		const gchar* _tmp16_;
		const gchar* _tmp17_;
		_tmp13_ = sway_notification_center_notify_params_get_summary (param);
		_tmp14_ = _tmp13_;
		if (_tmp14_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp15_ = self->priv->_summary;
		_tmp16_ = sway_notification_center_notify_params_get_summary (param);
		_tmp17_ = _tmp16_;
		_result_ = g_regex_match_simple (_tmp15_, _tmp17_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp18_ = self->priv->_body;
	if (_tmp18_ != NULL) {
		const gchar* _tmp19_;
		const gchar* _tmp20_;
		gboolean _result_ = FALSE;
		const gchar* _tmp21_;
		const gchar* _tmp22_;
		const gchar* _tmp23_;
		_tmp19_ = sway_notification_center_notify_params_get_body (param);
		_tmp20_ = _tmp19_;
		if (_tmp20_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp21_ = self->priv->_body;
		_tmp22_ = sway_notification_center_notify_params_get_body (param);
		_tmp23_ = _tmp22_;
		_result_ = g_regex_match_simple (_tmp21_, _tmp23_, 0, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp24_ = self->priv->_urgency;
	if (_tmp24_ != NULL) {
		gboolean _result_ = FALSE;
		const gchar* _tmp25_;
		SwayNotificationCenterUrgencyLevels _tmp26_;
		SwayNotificationCenterUrgencyLevels _tmp27_;
		gchar* _tmp28_;
		gchar* _tmp29_;
		gboolean _tmp30_;
		_tmp25_ = self->priv->_urgency;
		_tmp26_ = sway_notification_center_notify_params_get_urgency (param);
		_tmp27_ = _tmp26_;
		_tmp28_ = sway_notification_center_urgency_levels_to_string (_tmp27_);
		_tmp29_ = _tmp28_;
		_tmp30_ = g_regex_match_simple (_tmp25_, _tmp29_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		_g_free0 (_tmp29_);
		_result_ = _tmp30_;
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp31_ = self->priv->_category;
	if (_tmp31_ != NULL) {
		const gchar* _tmp32_;
		const gchar* _tmp33_;
		gboolean _result_ = FALSE;
		const gchar* _tmp34_;
		const gchar* _tmp35_;
		const gchar* _tmp36_;
		_tmp32_ = sway_notification_center_notify_params_get_category (param);
		_tmp33_ = _tmp32_;
		if (_tmp33_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp34_ = self->priv->_category;
		_tmp35_ = sway_notification_center_notify_params_get_category (param);
		_tmp36_ = _tmp35_;
		_result_ = g_regex_match_simple (_tmp34_, _tmp36_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp37_ = self->priv->_sound_file;
	if (_tmp37_ != NULL) {
		const gchar* _tmp38_;
		const gchar* _tmp39_;
		gboolean _result_ = FALSE;
		const gchar* _tmp40_;
		const gchar* _tmp41_;
		const gchar* _tmp42_;
		_tmp38_ = sway_notification_center_notify_params_get_sound_file (param);
		_tmp39_ = _tmp38_;
		if (_tmp39_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp40_ = self->priv->_sound_file;
		_tmp41_ = sway_notification_center_notify_params_get_sound_file (param);
		_tmp42_ = _tmp41_;
		_result_ = g_regex_match_simple (_tmp40_, _tmp42_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	_tmp43_ = self->priv->_sound_name;
	if (_tmp43_ != NULL) {
		const gchar* _tmp44_;
		const gchar* _tmp45_;
		gboolean _result_ = FALSE;
		const gchar* _tmp46_;
		const gchar* _tmp47_;
		const gchar* _tmp48_;
		_tmp44_ = sway_notification_center_notify_params_get_sound_name (param);
		_tmp45_ = _tmp44_;
		if (_tmp45_ == NULL) {
			result = FALSE;
			return result;
		}
		_tmp46_ = self->priv->_sound_name;
		_tmp47_ = sway_notification_center_notify_params_get_sound_name (param);
		_tmp48_ = _tmp47_;
		_result_ = g_regex_match_simple (_tmp46_, _tmp48_, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_REGEX_MATCH_FLAGS);
		if (!_result_) {
			result = FALSE;
			return result;
		}
	}
	result = TRUE;
	return result;
}

gboolean
sway_notification_center_notification_matching_matches_notification (SwayNotificationCenterNotificationMatching* self,
                                                                     SwayNotificationCenterNotifyParams* param)
{
	SwayNotificationCenterNotificationMatchingClass* _klass_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), FALSE);
	_klass_ = SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_GET_CLASS (self);
	if (_klass_->matches_notification) {
		return _klass_->matches_notification (self, param);
	}
	return FALSE;
}

static void
_vala_array_add3 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add4 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add5 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add6 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add7 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add8 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

gchar*
sway_notification_center_notification_matching_to_string (SwayNotificationCenterNotificationMatching* self)
{
	gchar** fields = NULL;
	gchar** _tmp0_;
	gint fields_length1;
	gint _fields_size_;
	const gchar* _tmp1_;
	const gchar* _tmp4_;
	const gchar* _tmp7_;
	const gchar* _tmp10_;
	const gchar* _tmp13_;
	const gchar* _tmp16_;
	gchar** _tmp19_;
	gint _tmp19__length1;
	gchar* _tmp20_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	fields = _tmp0_;
	fields_length1 = 0;
	_fields_size_ = fields_length1;
	_tmp1_ = self->priv->_app_name;
	if (_tmp1_ != NULL) {
		const gchar* _tmp2_;
		gchar* _tmp3_;
		_tmp2_ = self->priv->_app_name;
		_tmp3_ = g_strdup_printf ("app-name: %s", _tmp2_);
		_vala_array_add3 (&fields, &fields_length1, &_fields_size_, _tmp3_);
	}
	_tmp4_ = self->priv->_desktop_entry;
	if (_tmp4_ != NULL) {
		const gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = self->priv->_desktop_entry;
		_tmp6_ = g_strdup_printf ("desktop-entry: %s", _tmp5_);
		_vala_array_add4 (&fields, &fields_length1, &_fields_size_, _tmp6_);
	}
	_tmp7_ = self->priv->_summary;
	if (_tmp7_ != NULL) {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp8_ = self->priv->_summary;
		_tmp9_ = g_strdup_printf ("summary: %s", _tmp8_);
		_vala_array_add5 (&fields, &fields_length1, &_fields_size_, _tmp9_);
	}
	_tmp10_ = self->priv->_body;
	if (_tmp10_ != NULL) {
		const gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp11_ = self->priv->_body;
		_tmp12_ = g_strdup_printf ("body: %s", _tmp11_);
		_vala_array_add6 (&fields, &fields_length1, &_fields_size_, _tmp12_);
	}
	_tmp13_ = self->priv->_urgency;
	if (_tmp13_ != NULL) {
		const gchar* _tmp14_;
		gchar* _tmp15_;
		_tmp14_ = self->priv->_urgency;
		_tmp15_ = g_strdup_printf ("urgency: %s", _tmp14_);
		_vala_array_add7 (&fields, &fields_length1, &_fields_size_, _tmp15_);
	}
	_tmp16_ = self->priv->_category;
	if (_tmp16_ != NULL) {
		const gchar* _tmp17_;
		gchar* _tmp18_;
		_tmp17_ = self->priv->_category;
		_tmp18_ = g_strdup_printf ("category: %s", _tmp17_);
		_vala_array_add8 (&fields, &fields_length1, &_fields_size_, _tmp18_);
	}
	_tmp19_ = fields;
	_tmp19__length1 = fields_length1;
	_tmp20_ = _vala_g_strjoinv (", ", _tmp19_, (gint) _tmp19__length1);
	result = _tmp20_;
	fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

static void
_vala_JsonNode_free (JsonNode* self)
{
	g_boxed_free (json_node_get_type (), self);
}

static JsonNode*
sway_notification_center_notification_matching_real_serialize_property (JsonSerializable* base,
                                                                        const gchar* property_name,
                                                                        GValue* value,
                                                                        GParamSpec* pspec)
{
	SwayNotificationCenterNotificationMatching * self;
	GValue _tmp11_;
	JsonNode* _tmp12_;
	JsonNode* result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching);
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (value != NULL, NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (pspec, G_TYPE_PARAM), NULL);
	if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_ENUM)) {
		JsonNode* node = NULL;
		JsonNode* _tmp0_;
		GEnumClass* enumc = NULL;
		GTypeClass* _tmp1_;
		GEnumValue* eval = NULL;
		GEnumClass* _tmp2_;
		GEnumValue* _tmp3_;
		JsonNode* _tmp6_;
		GEnumValue* _tmp7_;
		const gchar* _tmp8_;
		_tmp0_ = json_node_new (JSON_NODE_VALUE);
		node = _tmp0_;
		_tmp1_ = g_type_class_ref (G_VALUE_TYPE (value));
		enumc = (GEnumClass*) _tmp1_;
		_tmp2_ = enumc;
		eval = g_enum_get_value (_tmp2_, g_value_get_enum (value));
		_tmp3_ = eval;
		if (_tmp3_ == NULL) {
			JsonNode* _tmp4_;
			GValue _tmp5_;
			_tmp4_ = node;
			_tmp5_ = *value;
			json_node_set_value (_tmp4_, &_tmp5_);
			result = node;
			_g_type_class_unref0 (enumc);
			return result;
		}
		_tmp6_ = node;
		_tmp7_ = eval;
		_tmp8_ = (*_tmp7_).value_nick;
		json_node_set_string (_tmp6_, _tmp8_);
		result = node;
		_g_type_class_unref0 (enumc);
		return result;
	} else {
		if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_BOOLEAN)) {
			JsonNode* node = NULL;
			JsonNode* _tmp9_;
			JsonNode* _tmp10_;
			_tmp9_ = json_node_new (JSON_NODE_VALUE);
			node = _tmp9_;
			_tmp10_ = node;
			json_node_set_boolean (_tmp10_, g_value_get_boolean (value));
			result = node;
			return result;
		}
	}
	_tmp11_ = *value;
	_tmp12_ = json_serializable_default_serialize_property (G_TYPE_CHECK_INSTANCE_CAST (self, json_serializable_get_type (), JsonSerializable), property_name, &_tmp11_, pspec);
	result = _tmp12_;
	return result;
}

SwayNotificationCenterNotificationMatching*
sway_notification_center_notification_matching_construct (GType object_type)
{
	SwayNotificationCenterNotificationMatching * self = NULL;
	self = (SwayNotificationCenterNotificationMatching*) g_object_new (object_type, NULL);
	return self;
}

SwayNotificationCenterNotificationMatching*
sway_notification_center_notification_matching_new (void)
{
	return sway_notification_center_notification_matching_construct (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING);
}

const gchar*
sway_notification_center_notification_matching_get_app_name (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_app_name;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_app_name (SwayNotificationCenterNotificationMatching* self,
                                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_app_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_app_name);
		self->priv->_app_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_desktop_entry (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_desktop_entry;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_desktop_entry (SwayNotificationCenterNotificationMatching* self,
                                                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_desktop_entry (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_desktop_entry);
		self->priv->_desktop_entry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_summary (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_summary;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_summary (SwayNotificationCenterNotificationMatching* self,
                                                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_summary (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_summary);
		self->priv->_summary = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_body (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_body;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_body (SwayNotificationCenterNotificationMatching* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_body (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_body);
		self->priv->_body = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_urgency (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_urgency;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_urgency (SwayNotificationCenterNotificationMatching* self,
                                                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_urgency (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_urgency);
		self->priv->_urgency = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_category (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_category;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_category (SwayNotificationCenterNotificationMatching* self,
                                                             const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_category (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_category);
		self->priv->_category = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_sound_name (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_sound_name;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_sound_name (SwayNotificationCenterNotificationMatching* self,
                                                               const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_sound_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_sound_name);
		self->priv->_sound_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY]);
	}
}

const gchar*
sway_notification_center_notification_matching_get_sound_file (SwayNotificationCenterNotificationMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_sound_file;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_notification_matching_set_sound_file (SwayNotificationCenterNotificationMatching* self,
                                                               const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_MATCHING (self));
	old_value = sway_notification_center_notification_matching_get_sound_file (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_sound_file);
		self->priv->_sound_file = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY]);
	}
}

static void
sway_notification_center_notification_matching_class_init (SwayNotificationCenterNotificationMatchingClass * klass,
                                                           gpointer klass_data)
{
	sway_notification_center_notification_matching_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterNotificationMatching_private_offset);
	((SwayNotificationCenterNotificationMatchingClass *) klass)->matches_notification = (gboolean (*) (SwayNotificationCenterNotificationMatching*, SwayNotificationCenterNotifyParams*)) sway_notification_center_notification_matching_real_matches_notification;
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_notification_matching_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_notification_matching_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_notification_matching_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY] = g_param_spec_string ("app-name", "app-name", "app-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY] = g_param_spec_string ("desktop-entry", "desktop-entry", "desktop-entry", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY] = g_param_spec_string ("summary", "summary", "summary", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY] = g_param_spec_string ("body", "body", "body", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY] = g_param_spec_string ("urgency", "urgency", "urgency", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY] = g_param_spec_string ("category", "category", "category", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY] = g_param_spec_string ("sound-name", "sound-name", "sound-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY, sway_notification_center_notification_matching_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY] = g_param_spec_string ("sound-file", "sound-file", "sound-file", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
sway_notification_center_notification_matching_json_serializable_interface_init (JsonSerializableIface * iface,
                                                                                 gpointer iface_data)
{
	sway_notification_center_notification_matching_json_serializable_parent_iface = g_type_interface_peek_parent (iface);
	iface->serialize_property = (JsonNode* (*) (JsonSerializable*, const gchar*, GValue*, GParamSpec*)) sway_notification_center_notification_matching_real_serialize_property;
}

static void
sway_notification_center_notification_matching_instance_init (SwayNotificationCenterNotificationMatching * self,
                                                              gpointer klass)
{
	self->priv = sway_notification_center_notification_matching_get_instance_private (self);
	self->priv->_app_name = NULL;
	self->priv->_desktop_entry = NULL;
	self->priv->_summary = NULL;
	self->priv->_body = NULL;
	self->priv->_urgency = NULL;
	self->priv->_category = NULL;
	self->priv->_sound_name = NULL;
	self->priv->_sound_file = NULL;
}

static void
sway_notification_center_notification_matching_finalize (GObject * obj)
{
	SwayNotificationCenterNotificationMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching);
	_g_free0 (self->priv->_app_name);
	_g_free0 (self->priv->_desktop_entry);
	_g_free0 (self->priv->_summary);
	_g_free0 (self->priv->_body);
	_g_free0 (self->priv->_urgency);
	_g_free0 (self->priv->_category);
	_g_free0 (self->priv->_sound_name);
	_g_free0 (self->priv->_sound_file);
	G_OBJECT_CLASS (sway_notification_center_notification_matching_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_matching_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterNotificationMatchingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_notification_matching_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterNotificationMatching), 0, (GInstanceInitFunc) sway_notification_center_notification_matching_instance_init, NULL };
	static const GInterfaceInfo json_serializable_info = { (GInterfaceInitFunc) sway_notification_center_notification_matching_json_serializable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType sway_notification_center_notification_matching_type_id;
	sway_notification_center_notification_matching_type_id = g_type_register_static (G_TYPE_OBJECT, "SwayNotificationCenterNotificationMatching", &g_define_type_info, 0);
	g_type_add_interface_static (sway_notification_center_notification_matching_type_id, json_serializable_get_type (), &json_serializable_info);
	SwayNotificationCenterNotificationMatching_private_offset = g_type_add_instance_private (sway_notification_center_notification_matching_type_id, sizeof (SwayNotificationCenterNotificationMatchingPrivate));
	return sway_notification_center_notification_matching_type_id;
}

GType
sway_notification_center_notification_matching_get_type (void)
{
	static gsize sway_notification_center_notification_matching_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_matching_type_id__once)) {
		GType sway_notification_center_notification_matching_type_id;
		sway_notification_center_notification_matching_type_id = sway_notification_center_notification_matching_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_matching_type_id__once, sway_notification_center_notification_matching_type_id);
	}
	return sway_notification_center_notification_matching_type_id__once;
}

static void
_vala_sway_notification_center_notification_matching_get_property (GObject * object,
                                                                   guint property_id,
                                                                   GValue * value,
                                                                   GParamSpec * pspec)
{
	SwayNotificationCenterNotificationMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_app_name (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_desktop_entry (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_summary (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_body (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_urgency (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_category (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_sound_name (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY:
		g_value_set_string (value, sway_notification_center_notification_matching_get_sound_file (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_notification_matching_set_property (GObject * object,
                                                                   guint property_id,
                                                                   const GValue * value,
                                                                   GParamSpec * pspec)
{
	SwayNotificationCenterNotificationMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_APP_NAME_PROPERTY:
		sway_notification_center_notification_matching_set_app_name (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_DESKTOP_ENTRY_PROPERTY:
		sway_notification_center_notification_matching_set_desktop_entry (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SUMMARY_PROPERTY:
		sway_notification_center_notification_matching_set_summary (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_BODY_PROPERTY:
		sway_notification_center_notification_matching_set_body (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_URGENCY_PROPERTY:
		sway_notification_center_notification_matching_set_urgency (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CATEGORY_PROPERTY:
		sway_notification_center_notification_matching_set_category (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_NAME_PROPERTY:
		sway_notification_center_notification_matching_set_sound_name (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_SOUND_FILE_PROPERTY:
		sway_notification_center_notification_matching_set_sound_file (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
sway_notification_center_action_matching_get_instance_private (SwayNotificationCenterActionMatching* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterActionMatching_private_offset);
}

static void
_vala_SwayNotificationCenterMatchCase_array_free (SwayNotificationCenterMatchCase * array,
                                                  gssize array_length)
{
	if (array != NULL) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			sway_notification_center_match_case_destroy (&array[i]);
		}
	}
	g_free (array);
}

gboolean
sway_notification_center_action_matching_matches_action (SwayNotificationCenterActionMatching* self,
                                                         SwayNotificationCenterAction* action)
{
	SwayNotificationCenterMatchCase* matchers = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	SwayNotificationCenterMatchCase _tmp3_ = {0};
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	SwayNotificationCenterMatchCase _tmp7_ = {0};
	SwayNotificationCenterMatchCase* _tmp8_;
	gint matchers_length1;
	gint _matchers_size_;
	SwayNotificationCenterMatchCase* _tmp9_;
	gint _tmp9__length1;
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), FALSE);
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION (action), FALSE);
	_tmp0_ = self->priv->_id_matcher;
	_tmp1_ = sway_notification_center_action_get_identifier (action);
	_tmp2_ = _tmp1_;
	sway_notification_center_match_case_init (&_tmp3_, _tmp0_, _tmp2_);
	_tmp4_ = self->priv->_text_matcher;
	_tmp5_ = sway_notification_center_action_get_text (action);
	_tmp6_ = _tmp5_;
	sway_notification_center_match_case_init (&_tmp7_, _tmp4_, _tmp6_);
	_tmp8_ = g_new0 (SwayNotificationCenterMatchCase, 2);
	_tmp8_[0] = _tmp3_;
	_tmp8_[1] = _tmp7_;
	matchers = _tmp8_;
	matchers_length1 = 2;
	_matchers_size_ = matchers_length1;
	_tmp9_ = matchers;
	_tmp9__length1 = matchers_length1;
	{
		SwayNotificationCenterMatchCase* matcher_collection = NULL;
		gint matcher_collection_length1 = 0;
		gint _matcher_collection_size_ = 0;
		gint matcher_it = 0;
		matcher_collection = _tmp9_;
		matcher_collection_length1 = _tmp9__length1;
		for (matcher_it = 0; matcher_it < matcher_collection_length1; matcher_it = matcher_it + 1) {
			SwayNotificationCenterMatchCase _tmp10_;
			SwayNotificationCenterMatchCase _tmp11_ = {0};
			SwayNotificationCenterMatchCase matcher = {0};
			_tmp10_ = matcher_collection[matcher_it];
			sway_notification_center_match_case_copy (&_tmp10_, &_tmp11_);
			matcher = _tmp11_;
			{
				gboolean _tmp12_;
				if (!sway_notification_center_match_case_is_valid (&matcher)) {
					sway_notification_center_match_case_destroy (&matcher);
					continue;
				}
				_tmp12_ = self->priv->_use_regex;
				if (_tmp12_) {
					gboolean _result_ = FALSE;
					SwayNotificationCenterMatchCase _tmp13_;
					const gchar* _tmp14_;
					SwayNotificationCenterMatchCase _tmp15_;
					const gchar* _tmp16_;
					_tmp13_ = matcher;
					_tmp14_ = _tmp13_.pattern;
					_tmp15_ = matcher;
					_tmp16_ = _tmp15_.str;
					_result_ = g_regex_match_simple (_tmp14_, _tmp16_, SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_MATCH_FLAGS);
					if (!_result_) {
						result = FALSE;
						sway_notification_center_match_case_destroy (&matcher);
						matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
						return result;
					}
				} else {
					SwayNotificationCenterMatchCase _tmp17_;
					const gchar* _tmp18_;
					SwayNotificationCenterMatchCase _tmp19_;
					const gchar* _tmp20_;
					_tmp17_ = matcher;
					_tmp18_ = _tmp17_.pattern;
					_tmp19_ = matcher;
					_tmp20_ = _tmp19_.str;
					if (g_strcmp0 (_tmp18_, _tmp20_) != 0) {
						result = FALSE;
						sway_notification_center_match_case_destroy (&matcher);
						matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
						return result;
					}
				}
				sway_notification_center_match_case_destroy (&matcher);
			}
		}
	}
	result = TRUE;
	matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
	return result;
}

gboolean
sway_notification_center_action_matching_matches_notification (SwayNotificationCenterActionMatching* self,
                                                               SwayNotificationCenterNotifyParams* param)
{
	gboolean _tmp0_ = FALSE;
	const gchar* _tmp1_;
	SwayNotificationCenterMatchCase* matchers = NULL;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	SwayNotificationCenterMatchCase _tmp8_ = {0};
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	const gchar* _tmp11_;
	SwayNotificationCenterMatchCase _tmp12_ = {0};
	SwayNotificationCenterMatchCase* _tmp13_;
	gint matchers_length1;
	gint _matchers_size_;
	SwayNotificationCenterMatchCase* _tmp14_;
	gint _tmp14__length1;
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), FALSE);
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param), FALSE);
	_tmp1_ = self->priv->_id_matcher;
	if (_tmp1_ == NULL) {
		const gchar* _tmp2_;
		_tmp2_ = self->priv->_text_matcher;
		_tmp0_ = _tmp2_ == NULL;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp3_ = sway_notification_center_action_matching_to_string (self);
		_tmp4_ = _tmp3_;
		g_critical ("configModel.vala:302: Action filter doesn't contain a matcher: %s", _tmp4_);
		_g_free0 (_tmp4_);
		result = FALSE;
		return result;
	}
	_tmp5_ = self->priv->_app_name;
	_tmp6_ = sway_notification_center_notify_params_get_app_name (param);
	_tmp7_ = _tmp6_;
	sway_notification_center_match_case_init (&_tmp8_, _tmp5_, _tmp7_);
	_tmp9_ = self->priv->_desktop_entry;
	_tmp10_ = sway_notification_center_notify_params_get_desktop_entry (param);
	_tmp11_ = _tmp10_;
	sway_notification_center_match_case_init (&_tmp12_, _tmp9_, _tmp11_);
	_tmp13_ = g_new0 (SwayNotificationCenterMatchCase, 2);
	_tmp13_[0] = _tmp8_;
	_tmp13_[1] = _tmp12_;
	matchers = _tmp13_;
	matchers_length1 = 2;
	_matchers_size_ = matchers_length1;
	_tmp14_ = matchers;
	_tmp14__length1 = matchers_length1;
	{
		SwayNotificationCenterMatchCase* matcher_collection = NULL;
		gint matcher_collection_length1 = 0;
		gint _matcher_collection_size_ = 0;
		gint matcher_it = 0;
		matcher_collection = _tmp14_;
		matcher_collection_length1 = _tmp14__length1;
		for (matcher_it = 0; matcher_it < matcher_collection_length1; matcher_it = matcher_it + 1) {
			SwayNotificationCenterMatchCase _tmp15_;
			SwayNotificationCenterMatchCase _tmp16_ = {0};
			SwayNotificationCenterMatchCase matcher = {0};
			_tmp15_ = matcher_collection[matcher_it];
			sway_notification_center_match_case_copy (&_tmp15_, &_tmp16_);
			matcher = _tmp16_;
			{
				gboolean _tmp17_;
				if (!sway_notification_center_match_case_is_valid (&matcher)) {
					sway_notification_center_match_case_destroy (&matcher);
					continue;
				}
				_tmp17_ = self->priv->_use_regex;
				if (_tmp17_) {
					gboolean _result_ = FALSE;
					SwayNotificationCenterMatchCase _tmp18_;
					const gchar* _tmp19_;
					SwayNotificationCenterMatchCase _tmp20_;
					const gchar* _tmp21_;
					_tmp18_ = matcher;
					_tmp19_ = _tmp18_.pattern;
					_tmp20_ = matcher;
					_tmp21_ = _tmp20_.str;
					_result_ = g_regex_match_simple (_tmp19_, _tmp21_, SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_COMPILE_OPTIONS, SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_REGEX_MATCH_FLAGS);
					if (!_result_) {
						result = FALSE;
						sway_notification_center_match_case_destroy (&matcher);
						matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
						return result;
					}
				} else {
					SwayNotificationCenterMatchCase _tmp22_;
					const gchar* _tmp23_;
					SwayNotificationCenterMatchCase _tmp24_;
					const gchar* _tmp25_;
					_tmp22_ = matcher;
					_tmp23_ = _tmp22_.pattern;
					_tmp24_ = matcher;
					_tmp25_ = _tmp24_.str;
					if (g_strcmp0 (_tmp23_, _tmp25_) != 0) {
						result = FALSE;
						sway_notification_center_match_case_destroy (&matcher);
						matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
						return result;
					}
				}
				sway_notification_center_match_case_destroy (&matcher);
			}
		}
	}
	result = TRUE;
	matchers = (_vala_SwayNotificationCenterMatchCase_array_free (matchers, matchers_length1), NULL);
	return result;
}

static void
_vala_array_add9 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add10 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add11 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add12 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

gchar*
sway_notification_center_action_matching_to_string (SwayNotificationCenterActionMatching* self)
{
	gchar** fields = NULL;
	gchar** _tmp0_;
	gint fields_length1;
	gint _fields_size_;
	const gchar* _tmp1_;
	const gchar* _tmp4_;
	const gchar* _tmp7_;
	const gchar* _tmp10_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	gchar* _tmp14_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), NULL);
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	fields = _tmp0_;
	fields_length1 = 0;
	_fields_size_ = fields_length1;
	_tmp1_ = self->priv->_app_name;
	if (_tmp1_ != NULL) {
		const gchar* _tmp2_;
		gchar* _tmp3_;
		_tmp2_ = self->priv->_app_name;
		_tmp3_ = g_strdup_printf ("app-name: %s", _tmp2_);
		_vala_array_add9 (&fields, &fields_length1, &_fields_size_, _tmp3_);
	}
	_tmp4_ = self->priv->_desktop_entry;
	if (_tmp4_ != NULL) {
		const gchar* _tmp5_;
		gchar* _tmp6_;
		_tmp5_ = self->priv->_desktop_entry;
		_tmp6_ = g_strdup_printf ("desktop-entry: %s", _tmp5_);
		_vala_array_add10 (&fields, &fields_length1, &_fields_size_, _tmp6_);
	}
	_tmp7_ = self->priv->_id_matcher;
	if (_tmp7_ != NULL) {
		const gchar* _tmp8_;
		gchar* _tmp9_;
		_tmp8_ = self->priv->_id_matcher;
		_tmp9_ = g_strdup_printf ("name_matcher: %s", _tmp8_);
		_vala_array_add11 (&fields, &fields_length1, &_fields_size_, _tmp9_);
	}
	_tmp10_ = self->priv->_text_matcher;
	if (_tmp10_ != NULL) {
		const gchar* _tmp11_;
		gchar* _tmp12_;
		_tmp11_ = self->priv->_text_matcher;
		_tmp12_ = g_strdup_printf ("text_matcher: %s", _tmp11_);
		_vala_array_add12 (&fields, &fields_length1, &_fields_size_, _tmp12_);
	}
	_tmp13_ = fields;
	_tmp13__length1 = fields_length1;
	_tmp14_ = _vala_g_strjoinv (", ", _tmp13_, (gint) _tmp13__length1);
	result = _tmp14_;
	fields = (_vala_array_free (fields, fields_length1, (GDestroyNotify) g_free), NULL);
	return result;
}

static JsonNode*
sway_notification_center_action_matching_real_serialize_property (JsonSerializable* base,
                                                                  const gchar* property_name,
                                                                  GValue* value,
                                                                  GParamSpec* pspec)
{
	SwayNotificationCenterActionMatching * self;
	GValue _tmp11_;
	JsonNode* _tmp12_;
	JsonNode* result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatching);
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (value != NULL, NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (pspec, G_TYPE_PARAM), NULL);
	if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_ENUM)) {
		JsonNode* node = NULL;
		JsonNode* _tmp0_;
		GEnumClass* enumc = NULL;
		GTypeClass* _tmp1_;
		GEnumValue* eval = NULL;
		GEnumClass* _tmp2_;
		GEnumValue* _tmp3_;
		JsonNode* _tmp6_;
		GEnumValue* _tmp7_;
		const gchar* _tmp8_;
		_tmp0_ = json_node_new (JSON_NODE_VALUE);
		node = _tmp0_;
		_tmp1_ = g_type_class_ref (G_VALUE_TYPE (value));
		enumc = (GEnumClass*) _tmp1_;
		_tmp2_ = enumc;
		eval = g_enum_get_value (_tmp2_, g_value_get_enum (value));
		_tmp3_ = eval;
		if (_tmp3_ == NULL) {
			JsonNode* _tmp4_;
			GValue _tmp5_;
			_tmp4_ = node;
			_tmp5_ = *value;
			json_node_set_value (_tmp4_, &_tmp5_);
			result = node;
			_g_type_class_unref0 (enumc);
			return result;
		}
		_tmp6_ = node;
		_tmp7_ = eval;
		_tmp8_ = (*_tmp7_).value_nick;
		json_node_set_string (_tmp6_, _tmp8_);
		result = node;
		_g_type_class_unref0 (enumc);
		return result;
	} else {
		if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_BOOLEAN)) {
			JsonNode* node = NULL;
			JsonNode* _tmp9_;
			JsonNode* _tmp10_;
			_tmp9_ = json_node_new (JSON_NODE_VALUE);
			node = _tmp9_;
			_tmp10_ = node;
			json_node_set_boolean (_tmp10_, g_value_get_boolean (value));
			result = node;
			return result;
		}
	}
	_tmp11_ = *value;
	_tmp12_ = json_serializable_default_serialize_property (G_TYPE_CHECK_INSTANCE_CAST (self, json_serializable_get_type (), JsonSerializable), property_name, &_tmp11_, pspec);
	result = _tmp12_;
	return result;
}

SwayNotificationCenterActionMatching*
sway_notification_center_action_matching_construct (GType object_type)
{
	SwayNotificationCenterActionMatching * self = NULL;
	self = (SwayNotificationCenterActionMatching*) g_object_new (object_type, NULL);
	return self;
}

SwayNotificationCenterActionMatching*
sway_notification_center_action_matching_new (void)
{
	return sway_notification_center_action_matching_construct (SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING);
}

const gchar*
sway_notification_center_action_matching_get_app_name (SwayNotificationCenterActionMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_app_name;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_action_matching_set_app_name (SwayNotificationCenterActionMatching* self,
                                                       const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self));
	old_value = sway_notification_center_action_matching_get_app_name (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_app_name);
		self->priv->_app_name = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY]);
	}
}

const gchar*
sway_notification_center_action_matching_get_desktop_entry (SwayNotificationCenterActionMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_desktop_entry;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_action_matching_set_desktop_entry (SwayNotificationCenterActionMatching* self,
                                                            const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self));
	old_value = sway_notification_center_action_matching_get_desktop_entry (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_desktop_entry);
		self->priv->_desktop_entry = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY]);
	}
}

const gchar*
sway_notification_center_action_matching_get_id_matcher (SwayNotificationCenterActionMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_id_matcher;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_action_matching_set_id_matcher (SwayNotificationCenterActionMatching* self,
                                                         const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self));
	old_value = sway_notification_center_action_matching_get_id_matcher (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id_matcher);
		self->priv->_id_matcher = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY]);
	}
}

const gchar*
sway_notification_center_action_matching_get_text_matcher (SwayNotificationCenterActionMatching* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), NULL);
	_tmp0_ = self->priv->_text_matcher;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_action_matching_set_text_matcher (SwayNotificationCenterActionMatching* self,
                                                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self));
	old_value = sway_notification_center_action_matching_get_text_matcher (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_text_matcher);
		self->priv->_text_matcher = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY]);
	}
}

gboolean
sway_notification_center_action_matching_get_use_regex (SwayNotificationCenterActionMatching* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self), FALSE);
	result = self->priv->_use_regex;
	return result;
}

void
sway_notification_center_action_matching_set_use_regex (SwayNotificationCenterActionMatching* self,
                                                        gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_ACTION_MATCHING (self));
	old_value = sway_notification_center_action_matching_get_use_regex (self);
	if (old_value != value) {
		self->priv->_use_regex = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY]);
	}
}

static void
sway_notification_center_action_matching_class_init (SwayNotificationCenterActionMatchingClass * klass,
                                                     gpointer klass_data)
{
	sway_notification_center_action_matching_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterActionMatching_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_action_matching_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_action_matching_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_action_matching_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY] = g_param_spec_string ("app-name", "app-name", "app-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY] = g_param_spec_string ("desktop-entry", "desktop-entry", "desktop-entry", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY] = g_param_spec_string ("id-matcher", "id-matcher", "id-matcher", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY] = g_param_spec_string ("text-matcher", "text-matcher", "text-matcher", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY, sway_notification_center_action_matching_properties[SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY] = g_param_spec_boolean ("use-regex", "use-regex", "use-regex", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
sway_notification_center_action_matching_json_serializable_interface_init (JsonSerializableIface * iface,
                                                                           gpointer iface_data)
{
	sway_notification_center_action_matching_json_serializable_parent_iface = g_type_interface_peek_parent (iface);
	iface->serialize_property = (JsonNode* (*) (JsonSerializable*, const gchar*, GValue*, GParamSpec*)) sway_notification_center_action_matching_real_serialize_property;
}

static void
sway_notification_center_action_matching_instance_init (SwayNotificationCenterActionMatching * self,
                                                        gpointer klass)
{
	self->priv = sway_notification_center_action_matching_get_instance_private (self);
	self->priv->_app_name = NULL;
	self->priv->_desktop_entry = NULL;
	self->priv->_use_regex = FALSE;
}

static void
sway_notification_center_action_matching_finalize (GObject * obj)
{
	SwayNotificationCenterActionMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatching);
	_g_free0 (self->priv->_app_name);
	_g_free0 (self->priv->_desktop_entry);
	_g_free0 (self->priv->_id_matcher);
	_g_free0 (self->priv->_text_matcher);
	G_OBJECT_CLASS (sway_notification_center_action_matching_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_action_matching_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterActionMatchingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_action_matching_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterActionMatching), 0, (GInstanceInitFunc) sway_notification_center_action_matching_instance_init, NULL };
	static const GInterfaceInfo json_serializable_info = { (GInterfaceInitFunc) sway_notification_center_action_matching_json_serializable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType sway_notification_center_action_matching_type_id;
	sway_notification_center_action_matching_type_id = g_type_register_static (G_TYPE_OBJECT, "SwayNotificationCenterActionMatching", &g_define_type_info, 0);
	g_type_add_interface_static (sway_notification_center_action_matching_type_id, json_serializable_get_type (), &json_serializable_info);
	SwayNotificationCenterActionMatching_private_offset = g_type_add_instance_private (sway_notification_center_action_matching_type_id, sizeof (SwayNotificationCenterActionMatchingPrivate));
	return sway_notification_center_action_matching_type_id;
}

GType
sway_notification_center_action_matching_get_type (void)
{
	static gsize sway_notification_center_action_matching_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_action_matching_type_id__once)) {
		GType sway_notification_center_action_matching_type_id;
		sway_notification_center_action_matching_type_id = sway_notification_center_action_matching_get_type_once ();
		g_once_init_leave (&sway_notification_center_action_matching_type_id__once, sway_notification_center_action_matching_type_id);
	}
	return sway_notification_center_action_matching_type_id__once;
}

static void
_vala_sway_notification_center_action_matching_get_property (GObject * object,
                                                             guint property_id,
                                                             GValue * value,
                                                             GParamSpec * pspec)
{
	SwayNotificationCenterActionMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatching);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY:
		g_value_set_string (value, sway_notification_center_action_matching_get_app_name (self));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY:
		g_value_set_string (value, sway_notification_center_action_matching_get_desktop_entry (self));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY:
		g_value_set_string (value, sway_notification_center_action_matching_get_id_matcher (self));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY:
		g_value_set_string (value, sway_notification_center_action_matching_get_text_matcher (self));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_action_matching_get_use_regex (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_action_matching_set_property (GObject * object,
                                                             guint property_id,
                                                             const GValue * value,
                                                             GParamSpec * pspec)
{
	SwayNotificationCenterActionMatching * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, SwayNotificationCenterActionMatching);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_APP_NAME_PROPERTY:
		sway_notification_center_action_matching_set_app_name (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_DESKTOP_ENTRY_PROPERTY:
		sway_notification_center_action_matching_set_desktop_entry (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_ID_MATCHER_PROPERTY:
		sway_notification_center_action_matching_set_id_matcher (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_TEXT_MATCHER_PROPERTY:
		sway_notification_center_action_matching_set_text_matcher (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_ACTION_MATCHING_USE_REGEX_PROPERTY:
		sway_notification_center_action_matching_set_use_regex (self, g_value_get_boolean (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

gchar*
sway_notification_center_notification_status_enum_to_string (SwayNotificationCenterNotificationStatusEnum self)
{
	gchar* result;
	switch (self) {
		default:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("enabled");
			result = _tmp0_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_MUTED:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("muted");
			result = _tmp1_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_IGNORED:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("ignored");
			result = _tmp2_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_TRANSIENT:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup ("transient");
			result = _tmp3_;
			return result;
		}
	}
}

SwayNotificationCenterNotificationStatusEnum
sway_notification_center_notification_status_enum_from_value (const gchar* value)
{
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	SwayNotificationCenterNotificationStatusEnum result;
	g_return_val_if_fail (value != NULL, 0);
	_tmp0_ = value;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("muted")))) {
		switch (0) {
			default:
			{
				result = SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_MUTED;
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("ignored")))) {
		switch (0) {
			default:
			{
				result = SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_IGNORED;
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string ("transient")))) {
		switch (0) {
			default:
			{
				result = SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_TRANSIENT;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_ENABLED;
				return result;
			}
		}
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_status_enum_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_ENABLED, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_ENABLED", "enabled"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_MUTED, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_MUTED", "muted"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_IGNORED, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_IGNORED", "ignored"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_TRANSIENT, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_STATUS_ENUM_TRANSIENT", "transient"}, {0, NULL, NULL}};
	GType sway_notification_center_notification_status_enum_type_id;
	sway_notification_center_notification_status_enum_type_id = g_enum_register_static ("SwayNotificationCenterNotificationStatusEnum", values);
	return sway_notification_center_notification_status_enum_type_id;
}

GType
sway_notification_center_notification_status_enum_get_type (void)
{
	static gsize sway_notification_center_notification_status_enum_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_status_enum_type_id__once)) {
		GType sway_notification_center_notification_status_enum_type_id;
		sway_notification_center_notification_status_enum_type_id = sway_notification_center_notification_status_enum_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_status_enum_type_id__once, sway_notification_center_notification_status_enum_type_id);
	}
	return sway_notification_center_notification_status_enum_type_id__once;
}

guint8
sway_notification_center_notification_urgency_enum_to_byte (SwayNotificationCenterNotificationUrgencyEnum self)
{
	guint8 result;
	result = (guint8) self;
	return result;
}

gchar*
sway_notification_center_notification_urgency_enum_to_string (SwayNotificationCenterNotificationUrgencyEnum self)
{
	gchar* result;
	switch (self) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_LOW:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("Low");
			result = _tmp0_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_NORMAL:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("Normal");
			result = _tmp1_;
			return result;
		}
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_CRITICAL:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("Critical");
			result = _tmp2_;
			return result;
		}
		default:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup ("Unset");
			result = _tmp3_;
			return result;
		}
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_urgency_enum_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_UNSET, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_UNSET", "unset"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_LOW, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_LOW", "low"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_NORMAL, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_NORMAL", "normal"}, {SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_CRITICAL, "SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_CRITICAL", "critical"}, {0, NULL, NULL}};
	GType sway_notification_center_notification_urgency_enum_type_id;
	sway_notification_center_notification_urgency_enum_type_id = g_enum_register_static ("SwayNotificationCenterNotificationUrgencyEnum", values);
	return sway_notification_center_notification_urgency_enum_type_id;
}

GType
sway_notification_center_notification_urgency_enum_get_type (void)
{
	static gsize sway_notification_center_notification_urgency_enum_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_urgency_enum_type_id__once)) {
		GType sway_notification_center_notification_urgency_enum_type_id;
		sway_notification_center_notification_urgency_enum_type_id = sway_notification_center_notification_urgency_enum_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_urgency_enum_type_id__once, sway_notification_center_notification_urgency_enum_type_id);
	}
	return sway_notification_center_notification_urgency_enum_type_id__once;
}

static inline gpointer
sway_notification_center_notification_visibility_get_instance_private (SwayNotificationCenterNotificationVisibility* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterNotificationVisibility_private_offset);
}

SwayNotificationCenterNotificationVisibility*
sway_notification_center_notification_visibility_construct (GType object_type)
{
	SwayNotificationCenterNotificationVisibility * self = NULL;
	self = (SwayNotificationCenterNotificationVisibility*) sway_notification_center_notification_matching_construct (object_type);
	return self;
}

SwayNotificationCenterNotificationVisibility*
sway_notification_center_notification_visibility_new (void)
{
	return sway_notification_center_notification_visibility_construct (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY);
}

SwayNotificationCenterNotificationStatusEnum
sway_notification_center_notification_visibility_get_state (SwayNotificationCenterNotificationVisibility* self)
{
	SwayNotificationCenterNotificationStatusEnum result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY (self), 0);
	result = self->priv->_state;
	return result;
}

void
sway_notification_center_notification_visibility_set_state (SwayNotificationCenterNotificationVisibility* self,
                                                            SwayNotificationCenterNotificationStatusEnum value)
{
	SwayNotificationCenterNotificationStatusEnum old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY (self));
	old_value = sway_notification_center_notification_visibility_get_state (self);
	if (old_value != value) {
		self->priv->_state = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_visibility_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY]);
	}
}

SwayNotificationCenterNotificationUrgencyEnum
sway_notification_center_notification_visibility_get_override_urgency (SwayNotificationCenterNotificationVisibility* self)
{
	SwayNotificationCenterNotificationUrgencyEnum result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY (self), 0);
	result = self->priv->_override_urgency;
	return result;
}

void
sway_notification_center_notification_visibility_set_override_urgency (SwayNotificationCenterNotificationVisibility* self,
                                                                       SwayNotificationCenterNotificationUrgencyEnum value)
{
	SwayNotificationCenterNotificationUrgencyEnum old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFICATION_VISIBILITY (self));
	old_value = sway_notification_center_notification_visibility_get_override_urgency (self);
	if (old_value != value) {
		self->priv->_override_urgency = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_notification_visibility_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY]);
	}
}

static void
sway_notification_center_notification_visibility_class_init (SwayNotificationCenterNotificationVisibilityClass * klass,
                                                             gpointer klass_data)
{
	sway_notification_center_notification_visibility_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterNotificationVisibility_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_notification_visibility_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_notification_visibility_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_notification_visibility_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY, sway_notification_center_notification_visibility_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY] = g_param_spec_enum ("state", "state", "state", SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_STATUS_ENUM, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY, sway_notification_center_notification_visibility_properties[SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY] = g_param_spec_enum ("override-urgency", "override-urgency", "override-urgency", SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_URGENCY_ENUM, SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_UNSET, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
sway_notification_center_notification_visibility_instance_init (SwayNotificationCenterNotificationVisibility * self,
                                                                gpointer klass)
{
	self->priv = sway_notification_center_notification_visibility_get_instance_private (self);
	self->priv->_override_urgency = SWAY_NOTIFICATION_CENTER_NOTIFICATION_URGENCY_ENUM_UNSET;
}

static void
sway_notification_center_notification_visibility_finalize (GObject * obj)
{
	SwayNotificationCenterNotificationVisibility * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibility);
	G_OBJECT_CLASS (sway_notification_center_notification_visibility_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_notification_visibility_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterNotificationVisibilityClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_notification_visibility_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterNotificationVisibility), 0, (GInstanceInitFunc) sway_notification_center_notification_visibility_instance_init, NULL };
	GType sway_notification_center_notification_visibility_type_id;
	sway_notification_center_notification_visibility_type_id = g_type_register_static (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, "SwayNotificationCenterNotificationVisibility", &g_define_type_info, 0);
	SwayNotificationCenterNotificationVisibility_private_offset = g_type_add_instance_private (sway_notification_center_notification_visibility_type_id, sizeof (SwayNotificationCenterNotificationVisibilityPrivate));
	return sway_notification_center_notification_visibility_type_id;
}

GType
sway_notification_center_notification_visibility_get_type (void)
{
	static gsize sway_notification_center_notification_visibility_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_notification_visibility_type_id__once)) {
		GType sway_notification_center_notification_visibility_type_id;
		sway_notification_center_notification_visibility_type_id = sway_notification_center_notification_visibility_get_type_once ();
		g_once_init_leave (&sway_notification_center_notification_visibility_type_id__once, sway_notification_center_notification_visibility_type_id);
	}
	return sway_notification_center_notification_visibility_type_id__once;
}

static void
_vala_sway_notification_center_notification_visibility_get_property (GObject * object,
                                                                     guint property_id,
                                                                     GValue * value,
                                                                     GParamSpec * pspec)
{
	SwayNotificationCenterNotificationVisibility * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibility);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY:
		g_value_set_enum (value, sway_notification_center_notification_visibility_get_state (self));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY:
		g_value_set_enum (value, sway_notification_center_notification_visibility_get_override_urgency (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_notification_visibility_set_property (GObject * object,
                                                                     guint property_id,
                                                                     const GValue * value,
                                                                     GParamSpec * pspec)
{
	SwayNotificationCenterNotificationVisibility * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, SwayNotificationCenterNotificationVisibility);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_STATE_PROPERTY:
		sway_notification_center_notification_visibility_set_state (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_NOTIFICATION_VISIBILITY_OVERRIDE_URGENCY_PROPERTY:
		sway_notification_center_notification_visibility_set_override_urgency (self, g_value_get_enum (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_script_run_on_type_get_type_once (void)
{
	static const GEnumValue values[] = {{SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_ACTION, "SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_ACTION", "action"}, {SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE, "SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE", "receive"}, {0, NULL, NULL}};
	GType sway_notification_center_script_run_on_type_type_id;
	sway_notification_center_script_run_on_type_type_id = g_enum_register_static ("SwayNotificationCenterScriptRunOnType", values);
	return sway_notification_center_script_run_on_type_type_id;
}

GType
sway_notification_center_script_run_on_type_get_type (void)
{
	static gsize sway_notification_center_script_run_on_type_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_script_run_on_type_type_id__once)) {
		GType sway_notification_center_script_run_on_type_type_id;
		sway_notification_center_script_run_on_type_type_id = sway_notification_center_script_run_on_type_get_type_once ();
		g_once_init_leave (&sway_notification_center_script_run_on_type_type_id__once, sway_notification_center_script_run_on_type_type_id);
	}
	return sway_notification_center_script_run_on_type_type_id__once;
}

static inline gpointer
sway_notification_center_script_get_instance_private (SwayNotificationCenterScript* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterScript_private_offset);
}

static void
sway_notification_center_script_run_script_data_free (gpointer _data)
{
	SwayNotificationCenterScriptRunScriptData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->param);
	_g_object_unref0 (_data_->self);
	g_slice_free (SwayNotificationCenterScriptRunScriptData, _data_);
}

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

void
sway_notification_center_script_run_script (SwayNotificationCenterScript* self,
                                            SwayNotificationCenterNotifyParams* param,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_)
{
	SwayNotificationCenterScriptRunScriptData* _data_;
	SwayNotificationCenterScript* _tmp0_;
	SwayNotificationCenterNotifyParams* _tmp1_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_SCRIPT (self));
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param));
	_data_ = g_slice_new0 (SwayNotificationCenterScriptRunScriptData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, sway_notification_center_script_run_script_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (param);
	_g_object_unref0 (_data_->param);
	_data_->param = _tmp1_;
	sway_notification_center_script_run_script_co (_data_);
}

gboolean
sway_notification_center_script_run_script_finish (SwayNotificationCenterScript* self,
                                                   GAsyncResult* _res_,
                                                   gchar** msg)
{
	gboolean result;
	SwayNotificationCenterScriptRunScriptData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	if (msg) {
		*msg = _data_->msg;
	} else {
		_g_free0 (_data_->msg);
	}
	_data_->msg = NULL;
	result = _data_->result;
	return result;
}

static void
_vala_array_add13 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add14 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add15 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add16 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add17 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add18 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add19 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add20 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add21 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add22 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
_vala_array_add23 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

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

static void
_vala_array_add24 (gchar** * array,
                   gint* length,
                   gint* size,
                   gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
sway_notification_center_script_run_script_ready (GObject* source_object,
                                                  GAsyncResult* _res_,
                                                  gpointer _user_data_)
{
	SwayNotificationCenterScriptRunScriptData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	sway_notification_center_script_run_script_co (_data_);
}

static gboolean
sway_notification_center_script_run_script_co (SwayNotificationCenterScriptRunScriptData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_new0 (gchar*, 0 + 1);
	_data_->spawn_env = _data_->_tmp0_;
	_data_->spawn_env_length1 = 0;
	_data_->_spawn_env_size_ = _data_->spawn_env_length1;
	_data_->_tmp1_ = sway_notification_center_notify_params_get_app_name (_data_->param);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = g_strdup_printf ("SWAYNC_APP_NAME=%s", _data_->_tmp2_);
	_vala_array_add13 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp3_);
	_data_->_tmp4_ = sway_notification_center_notify_params_get_summary (_data_->param);
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = g_strdup_printf ("SWAYNC_SUMMARY=%s", _data_->_tmp5_);
	_vala_array_add14 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp6_);
	_data_->_tmp7_ = sway_notification_center_notify_params_get_body (_data_->param);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp9_ = g_strdup_printf ("SWAYNC_BODY=%s", _data_->_tmp8_);
	_vala_array_add15 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp9_);
	_data_->_tmp10_ = sway_notification_center_notify_params_get_urgency (_data_->param);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp12_ = sway_notification_center_urgency_levels_to_string (_data_->_tmp11_);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp14_ = g_strdup_printf ("SWAYNC_URGENCY=%s", _data_->_tmp13_);
	_vala_array_add16 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp14_);
	_g_free0 (_data_->_tmp13_);
	_data_->_tmp15_ = sway_notification_center_notify_params_get_category (_data_->param);
	_data_->_tmp16_ = _data_->_tmp15_;
	_data_->_tmp17_ = g_strdup_printf ("SWAYNC_CATEGORY=%s", _data_->_tmp16_);
	_vala_array_add17 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp17_);
	_data_->_tmp18_ = sway_notification_center_notify_params_get_sound_name (_data_->param);
	_data_->_tmp19_ = _data_->_tmp18_;
	_data_->_tmp20_ = g_strdup_printf ("SWAYNC_SOUND_NAME=%s", _data_->_tmp19_);
	_vala_array_add18 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp20_);
	_data_->_tmp21_ = sway_notification_center_notify_params_get_sound_file (_data_->param);
	_data_->_tmp22_ = _data_->_tmp21_;
	_data_->_tmp23_ = g_strdup_printf ("SWAYNC_SOUND_FILE=%s", _data_->_tmp22_);
	_vala_array_add19 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp23_);
	_data_->_tmp24_ = sway_notification_center_notify_params_get_applied_id (_data_->param);
	_data_->_tmp25_ = _data_->_tmp24_;
	_data_->_tmp26_ = g_strdup_printf ("%u", _data_->_tmp25_);
	_data_->_tmp27_ = _data_->_tmp26_;
	_data_->_tmp28_ = g_strdup_printf ("SWAYNC_ID=%s", _data_->_tmp27_);
	_vala_array_add20 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp28_);
	_g_free0 (_data_->_tmp27_);
	_data_->_tmp29_ = sway_notification_center_notify_params_get_replaces_id (_data_->param);
	_data_->_tmp30_ = _data_->_tmp29_;
	_data_->_tmp31_ = g_strdup_printf ("%u", _data_->_tmp30_);
	_data_->_tmp32_ = _data_->_tmp31_;
	_data_->_tmp33_ = g_strdup_printf ("SWAYNC_REPLACES_ID=%s", _data_->_tmp32_);
	_vala_array_add21 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp33_);
	_g_free0 (_data_->_tmp32_);
	_data_->_tmp34_ = sway_notification_center_notify_params_get_time (_data_->param);
	_data_->_tmp35_ = _data_->_tmp34_;
	_data_->_tmp36_ = g_strdup_printf ("%" G_GINT64_FORMAT, _data_->_tmp35_);
	_data_->_tmp37_ = _data_->_tmp36_;
	_data_->_tmp38_ = g_strdup_printf ("SWAYNC_TIME=%s", _data_->_tmp37_);
	_vala_array_add22 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp38_);
	_g_free0 (_data_->_tmp37_);
	_data_->_tmp40_ = sway_notification_center_notify_params_get_desktop_entry (_data_->param);
	_data_->_tmp41_ = _data_->_tmp40_;
	_data_->_tmp39_ = _data_->_tmp41_;
	if (_data_->_tmp39_ == NULL) {
		_data_->_tmp39_ = "";
	}
	_data_->_tmp42_ = g_strdup_printf ("SWAYNC_DESKTOP_ENTRY=%s", _data_->_tmp39_);
	_vala_array_add23 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp42_);
	_data_->_tmp43_ = sway_notification_center_notify_params_get_hints (_data_->param);
	_data_->_tmp44_ = _data_->_tmp43_;
	_data_->_tmp45_ = g_hash_table_get_keys (_data_->_tmp44_);
	{
		_data_->hint_collection = _data_->_tmp45_;
		for (_data_->hint_it = _data_->hint_collection; _data_->hint_it != NULL; _data_->hint_it = _data_->hint_it->next) {
			_data_->_tmp46_ = g_strdup ((const gchar*) _data_->hint_it->data);
			_data_->hint = _data_->_tmp46_;
			{
				_data_->_tmp48_ = _data_->hint;
				if (string_contains (_data_->_tmp48_, "image")) {
					_data_->_tmp47_ = TRUE;
				} else {
					_data_->_tmp49_ = _data_->hint;
					_data_->_tmp47_ = string_contains (_data_->_tmp49_, "icon");
				}
				if (_data_->_tmp47_) {
					_g_free0 (_data_->hint);
					continue;
				}
				_data_->_tmp50_ = _data_->hint;
				_data_->_tmp51_ = g_utf8_strup (_data_->_tmp50_, (gssize) -1);
				_data_->_tmp52_ = _data_->_tmp51_;
				_data_->_tmp53_ = string_replace (_data_->_tmp52_, "-", "_");
				_data_->_tmp54_ = _data_->_tmp53_;
				_data_->_tmp55_ = sway_notification_center_notify_params_get_hints (_data_->param);
				_data_->_tmp56_ = _data_->_tmp55_;
				_data_->_tmp57_ = _data_->hint;
				_data_->_tmp58_ = g_hash_table_lookup (_data_->_tmp56_, _data_->_tmp57_);
				_data_->_tmp59_ = g_variant_print ((GVariant*) _data_->_tmp58_, FALSE);
				_data_->_tmp60_ = _data_->_tmp59_;
				_data_->_tmp61_ = g_strdup_printf ("SWAYNC_HINT_%s=%s", _data_->_tmp54_, _data_->_tmp60_);
				_vala_array_add24 (&_data_->spawn_env, &_data_->spawn_env_length1, &_data_->_spawn_env_size_, _data_->_tmp61_);
				_g_free0 (_data_->_tmp60_);
				_g_free0 (_data_->_tmp54_);
				_g_free0 (_data_->_tmp52_);
				_g_free0 (_data_->hint);
			}
		}
		(_data_->hint_collection == NULL) ? NULL : (_data_->hint_collection = (g_list_free (_data_->hint_collection), NULL));
	}
	_data_->_tmp62_ = _data_->self->priv->_exec;
	_data_->_tmp63_ = _data_->spawn_env;
	_data_->_tmp63__length1 = _data_->spawn_env_length1;
	_data_->_tmp64_ = NULL;
	_data_->_state_ = 1;
	sway_notification_center_functions_execute_command (_data_->_tmp62_, _data_->_tmp63_, (gint) _data_->_tmp63__length1, sway_notification_center_script_run_script_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp65_ = sway_notification_center_functions_execute_command_finish (_data_->_res_, &_data_->_tmp64_);
	_g_free0 (_data_->msg);
	_data_->msg = _data_->_tmp64_;
	_data_->result = _data_->_tmp65_;
	_data_->spawn_env = (_vala_array_free (_data_->spawn_env, _data_->spawn_env_length1, (GDestroyNotify) g_free), NULL);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static gboolean
sway_notification_center_script_real_matches_notification (SwayNotificationCenterNotificationMatching* base,
                                                           SwayNotificationCenterNotifyParams* param)
{
	SwayNotificationCenterScript * self;
	const gchar* _tmp0_;
	gboolean result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScript);
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_NOTIFY_PARAMS (param), FALSE);
	_tmp0_ = self->priv->_exec;
	if (_tmp0_ == NULL) {
		result = FALSE;
		return result;
	}
	result = SWAY_NOTIFICATION_CENTER_NOTIFICATION_MATCHING_CLASS (sway_notification_center_script_parent_class)->matches_notification (G_TYPE_CHECK_INSTANCE_CAST (self, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, SwayNotificationCenterNotificationMatching), param);
	return result;
}

SwayNotificationCenterScript*
sway_notification_center_script_construct (GType object_type)
{
	SwayNotificationCenterScript * self = NULL;
	self = (SwayNotificationCenterScript*) sway_notification_center_notification_matching_construct (object_type);
	return self;
}

SwayNotificationCenterScript*
sway_notification_center_script_new (void)
{
	return sway_notification_center_script_construct (SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT);
}

const gchar*
sway_notification_center_script_get_exec (SwayNotificationCenterScript* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_SCRIPT (self), NULL);
	_tmp0_ = self->priv->_exec;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_script_set_exec (SwayNotificationCenterScript* self,
                                          const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_SCRIPT (self));
	old_value = sway_notification_center_script_get_exec (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_exec);
		self->priv->_exec = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_script_properties[SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY]);
	}
}

SwayNotificationCenterScriptRunOnType
sway_notification_center_script_get_run_on (SwayNotificationCenterScript* self)
{
	SwayNotificationCenterScriptRunOnType result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_SCRIPT (self), 0);
	result = self->priv->_run_on;
	return result;
}

void
sway_notification_center_script_set_run_on (SwayNotificationCenterScript* self,
                                            SwayNotificationCenterScriptRunOnType value)
{
	SwayNotificationCenterScriptRunOnType old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_SCRIPT (self));
	old_value = sway_notification_center_script_get_run_on (self);
	if (old_value != value) {
		self->priv->_run_on = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_script_properties[SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY]);
	}
}

static void
sway_notification_center_script_class_init (SwayNotificationCenterScriptClass * klass,
                                            gpointer klass_data)
{
	sway_notification_center_script_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterScript_private_offset);
	((SwayNotificationCenterNotificationMatchingClass *) klass)->matches_notification = (gboolean (*) (SwayNotificationCenterNotificationMatching*, SwayNotificationCenterNotifyParams*)) sway_notification_center_script_real_matches_notification;
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_script_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_script_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_script_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY, sway_notification_center_script_properties[SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY] = g_param_spec_string ("exec", "exec", "exec", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY, sway_notification_center_script_properties[SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY] = g_param_spec_enum ("run-on", "run-on", "run-on", SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT_RUN_ON_TYPE, SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
sway_notification_center_script_instance_init (SwayNotificationCenterScript * self,
                                               gpointer klass)
{
	self->priv = sway_notification_center_script_get_instance_private (self);
	self->priv->_exec = NULL;
	self->priv->_run_on = SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_TYPE_RECEIVE;
}

static void
sway_notification_center_script_finalize (GObject * obj)
{
	SwayNotificationCenterScript * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScript);
	_g_free0 (self->priv->_exec);
	G_OBJECT_CLASS (sway_notification_center_script_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_script_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterScriptClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_script_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterScript), 0, (GInstanceInitFunc) sway_notification_center_script_instance_init, NULL };
	GType sway_notification_center_script_type_id;
	sway_notification_center_script_type_id = g_type_register_static (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_MATCHING, "SwayNotificationCenterScript", &g_define_type_info, 0);
	SwayNotificationCenterScript_private_offset = g_type_add_instance_private (sway_notification_center_script_type_id, sizeof (SwayNotificationCenterScriptPrivate));
	return sway_notification_center_script_type_id;
}

GType
sway_notification_center_script_get_type (void)
{
	static gsize sway_notification_center_script_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_script_type_id__once)) {
		GType sway_notification_center_script_type_id;
		sway_notification_center_script_type_id = sway_notification_center_script_get_type_once ();
		g_once_init_leave (&sway_notification_center_script_type_id__once, sway_notification_center_script_type_id);
	}
	return sway_notification_center_script_type_id__once;
}

static void
_vala_sway_notification_center_script_get_property (GObject * object,
                                                    guint property_id,
                                                    GValue * value,
                                                    GParamSpec * pspec)
{
	SwayNotificationCenterScript * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScript);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY:
		g_value_set_string (value, sway_notification_center_script_get_exec (self));
		break;
		case SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY:
		g_value_set_enum (value, sway_notification_center_script_get_run_on (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_script_set_property (GObject * object,
                                                    guint property_id,
                                                    const GValue * value,
                                                    GParamSpec * pspec)
{
	SwayNotificationCenterScript * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, SwayNotificationCenterScript);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_SCRIPT_EXEC_PROPERTY:
		sway_notification_center_script_set_exec (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_SCRIPT_RUN_ON_PROPERTY:
		sway_notification_center_script_set_run_on (self, g_value_get_enum (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static inline gpointer
sway_notification_center_config_model_get_instance_private (SwayNotificationCenterConfigModel* self)
{
	return G_STRUCT_MEMBER_P (self, SwayNotificationCenterConfigModel_private_offset);
}

static void
_g_free0_ (gpointer var)
{
	var = (g_free (var), NULL);
}

/** Get the static singleton and reload the config */
static void
_lambda15_ (void)
{
}

static void
__lambda15__sway_notification_center_config_model_modify_node (JsonNode* node,
                                                               gpointer self)
{
	_lambda15_ ();
}

SwayNotificationCenterConfigModel*
sway_notification_center_config_model_init (const gchar* path)
{
	gchar* _tmp0_;
	SwayNotificationCenterConfigModel* _tmp1_;
	SwayNotificationCenterConfigModel* result;
	_tmp0_ = g_strdup (path);
	_g_free0 (sway_notification_center_config_model__path);
	sway_notification_center_config_model__path = _tmp0_;
	sway_notification_center_config_model_reload_config (__lambda15__sway_notification_center_config_model_modify_node, NULL);
	_tmp1_ = sway_notification_center_config_model__instance;
	result = _tmp1_;
	return result;
}

/** Reloads the config and calls `ModifyNode` before deserializing */
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 JsonNode*
_vala_JsonNode_copy (JsonNode* self)
{
	return g_boxed_copy (json_node_get_type (), self);
}

static gpointer
__vala_JsonNode_copy0 (gpointer self)
{
	return self ? _vala_JsonNode_copy (self) : NULL;
}

void
sway_notification_center_config_model_reload_config (SwayNotificationCenterConfigModelModifyNode modify_cb,
                                                     gpointer modify_cb_target)
{
	gchar* path = NULL;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_;
	GFile* _tmp5_;
	GFile* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp11_;
	const gchar* _tmp12_;
	SwayNotificationCenterConfigModel* m = NULL;
	SwayNotificationCenterConfigModel* previous_config = NULL;
	SwayNotificationCenterConfigModel* _tmp38_;
	SwayNotificationCenterConfigModel* _tmp39_;
	SwayNotificationCenterConfigModel* _tmp40_;
	SwayNotificationCenterConfigModel* _tmp41_;
	const gchar* _tmp42_;
	gchar* _tmp43_;
	SwayNotificationCenterConfigModel* _tmp44_;
	gchar* _tmp45_;
	gchar* _tmp46_;
	SwayNotificationCenterSwaync* _tmp47_;
	GError* _inner_error0_ = NULL;
	_tmp0_ = sway_notification_center_config_model__path;
	_tmp1_ = g_strdup (_tmp0_);
	_tmp2_ = sway_notification_center_functions_get_config_path (_tmp1_);
	path = _tmp2_;
	_tmp4_ = path;
	_tmp5_ = g_file_new_for_path (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_file_get_path (_tmp6_);
	_tmp8_ = _tmp7_;
	_g_object_unref0 (_tmp6_);
	_tmp3_ = _tmp8_;
	if (_tmp3_ == NULL) {
		const gchar* _tmp9_;
		gchar* _tmp10_;
		_tmp9_ = path;
		_tmp10_ = g_strdup (_tmp9_);
		_g_free0 (_tmp3_);
		_tmp3_ = _tmp10_;
	}
	_tmp11_ = _tmp3_;
	_tmp3_ = NULL;
	_g_free0 (path);
	path = _tmp11_;
	_tmp12_ = path;
	g_message ("configModel.vala:513: Loading Config: \"%s\"", _tmp12_);
	m = NULL;
	{
		const gchar* _tmp13_;
		gchar* _tmp14_;
		gchar* _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		gboolean _tmp18_;
		JsonParser* parser = NULL;
		JsonParser* _tmp19_;
		JsonParser* _tmp20_;
		const gchar* _tmp21_;
		JsonNode* node = NULL;
		JsonParser* _tmp22_;
		JsonNode* _tmp23_;
		JsonNode* _tmp24_;
		JsonNode* _tmp25_;
		JsonNode* _tmp27_;
		SwayNotificationCenterConfigModel* model = NULL;
		JsonNode* _tmp28_;
		GObject* _tmp29_;
		SwayNotificationCenterConfigModel* _tmp30_;
		SwayNotificationCenterConfigModel* _tmp31_;
		SwayNotificationCenterConfigModel* _tmp33_;
		SwayNotificationCenterConfigModel* _tmp34_;
		_tmp13_ = path;
		_tmp14_ = string_strip (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp16_ = strlen (_tmp15_);
		_tmp17_ = _tmp16_;
		_tmp18_ = _tmp17_ == 0;
		_g_free0 (_tmp15_);
		if (_tmp18_) {
			_g_object_unref0 (m);
			_g_free0 (_tmp3_);
			_g_free0 (path);
			return;
		}
		_tmp19_ = json_parser_new ();
		if (_tmp19_) {
			g_object_set_data ((GObject *) _tmp19_, "vala-creation-function", "SwayNotificationCenter.ConfigModel.reload_config");
		}
		parser = _tmp19_;
		_tmp20_ = parser;
		_tmp21_ = path;
		json_parser_load_from_file (_tmp20_, _tmp21_, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_object_unref0 (parser);
			goto __catch0_g_error;
		}
		_tmp22_ = parser;
		_tmp23_ = json_parser_get_root (_tmp22_);
		_tmp24_ = __vala_JsonNode_copy0 (_tmp23_);
		node = _tmp24_;
		_tmp25_ = node;
		if (_tmp25_ == NULL) {
			GError* _tmp26_;
			_tmp26_ = g_error_new_literal (JSON_PARSER_ERROR, JSON_PARSER_ERROR_PARSE, "Node is null!");
			_inner_error0_ = _tmp26_;
			__vala_JsonNode_free0 (node);
			_g_object_unref0 (parser);
			goto __catch0_g_error;
		}
		_tmp27_ = node;
		modify_cb (_tmp27_, modify_cb_target);
		_tmp28_ = node;
		_tmp29_ = json_gobject_deserialize (SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, _tmp28_);
		_tmp30_ = SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (_tmp29_) ? ((SwayNotificationCenterConfigModel*) _tmp29_) : NULL;
		if (_tmp30_ == NULL) {
			_g_object_unref0 (_tmp29_);
		}
		model = _tmp30_;
		_tmp31_ = model;
		if (_tmp31_ == NULL) {
			GError* _tmp32_;
			_tmp32_ = g_error_new_literal (JSON_PARSER_ERROR, JSON_PARSER_ERROR_UNKNOWN, "Json model is null!");
			_inner_error0_ = _tmp32_;
			_g_object_unref0 (model);
			__vala_JsonNode_free0 (node);
			_g_object_unref0 (parser);
			goto __catch0_g_error;
		}
		_tmp33_ = model;
		_tmp34_ = _g_object_ref0 (_tmp33_);
		_g_object_unref0 (m);
		m = _tmp34_;
		_g_object_unref0 (model);
		__vala_JsonNode_free0 (node);
		_g_object_unref0 (parser);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp35_;
		const gchar* _tmp36_;
		SwayNotificationCenterConfigModel* _tmp37_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp35_ = e;
		_tmp36_ = _tmp35_->message;
		g_critical ("configModel.vala:536: %s", _tmp36_);
		_tmp37_ = sway_notification_center_config_model_new ();
		if (_tmp37_) {
			g_object_set_data ((GObject *) _tmp37_, "vala-creation-function", "SwayNotificationCenter.ConfigModel.reload_config");
		}
		_g_object_unref0 (m);
		m = _tmp37_;
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		_g_object_unref0 (m);
		_g_free0 (_tmp3_);
		_g_free0 (path);
		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;
	}
	_tmp38_ = sway_notification_center_config_model__instance;
	_tmp39_ = _g_object_ref0 (_tmp38_);
	previous_config = _tmp39_;
	_tmp40_ = m;
	_tmp41_ = _g_object_ref0 (_tmp40_);
	_g_object_unref0 (sway_notification_center_config_model__instance);
	sway_notification_center_config_model__instance = _tmp41_;
	_tmp42_ = path;
	_tmp43_ = g_strdup (_tmp42_);
	_g_free0 (sway_notification_center_config_model__path);
	sway_notification_center_config_model__path = _tmp43_;
	_tmp44_ = sway_notification_center_config_model__instance;
	_tmp45_ = sway_notification_center_config_model_to_string (_tmp44_);
	_tmp46_ = _tmp45_;
	g_debug ("configModel.vala:544: %s", _tmp46_);
	_g_free0 (_tmp46_);
	_tmp47_ = sway_notification_center_app;
	if (_tmp47_ != NULL) {
		SwayNotificationCenterSwaync* _tmp48_;
		SwayNotificationCenterConfigModel* _tmp49_;
		SwayNotificationCenterConfigModel* _tmp50_;
		_tmp48_ = sway_notification_center_app;
		_tmp49_ = previous_config;
		_tmp50_ = m;
		g_signal_emit_by_name (_tmp48_, "config-reload", _tmp49_, _tmp50_);
	}
	_g_object_unref0 (previous_config);
	_g_object_unref0 (m);
	_g_free0 (_tmp3_);
	_g_free0 (path);
}

/**
         * Selects the deserialization method based on the property name.
         * Needed to parse those parameters of complex types like hashtables,
         * which are not natively supported by the default deserialization function.
         */
static gpointer
_json_object_ref0 (gpointer self)
{
	return self ? json_object_ref (self) : NULL;
}

static gboolean
sway_notification_center_config_model_real_deserialize_property (JsonSerializable* base,
                                                                 const gchar* property_name,
                                                                 GValue* value,
                                                                 GParamSpec* pspec,
                                                                 JsonNode* property_node)
{
	SwayNotificationCenterConfigModel * self;
	GValue _vala_value = {0};
	const gchar* _tmp0_;
	GQuark _tmp2_ = 0U;
	static GQuark _tmp1_label0 = 0;
	static GQuark _tmp1_label1 = 0;
	static GQuark _tmp1_label2 = 0;
	static GQuark _tmp1_label3 = 0;
	static GQuark _tmp1_label4 = 0;
	static GQuark _tmp1_label5 = 0;
	gboolean result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel);
	g_return_val_if_fail (property_name != NULL, FALSE);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (pspec, G_TYPE_PARAM), FALSE);
	g_return_val_if_fail (property_node != NULL, FALSE);
	_tmp0_ = property_name;
	_tmp2_ = (NULL == _tmp0_) ? 0 : g_quark_from_string (_tmp0_);
	if (_tmp2_ == ((0 != _tmp1_label0) ? _tmp1_label0 : (_tmp1_label0 = g_quark_from_static_string ("categories-settings")))) {
		switch (0) {
			default:
			{
				gboolean status = FALSE;
				SwayNotificationCenterOrderedHashTable* _result_ = NULL;
				gboolean _tmp3_ = FALSE;
				SwayNotificationCenterOrderedHashTable* _tmp4_;
				SwayNotificationCenterOrderedHashTable* _tmp5_;
				GValue _tmp6_ = {0};
				_tmp4_ = sway_notification_center_config_model_extract_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, property_name, property_node, &_tmp3_);
				status = _tmp3_;
				_result_ = _tmp4_;
				_tmp5_ = _result_;
				g_value_init (&_tmp6_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
				sway_notification_center_value_set_ordered_hash_table (&_tmp6_, _tmp5_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp6_;
				result = status;
				_sway_notification_center_ordered_hash_table_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label1) ? _tmp1_label1 : (_tmp1_label1 = g_quark_from_static_string ("notification-action-filter")))) {
		switch (0) {
			default:
			{
				gboolean status = FALSE;
				SwayNotificationCenterOrderedHashTable* _result_ = NULL;
				gboolean _tmp7_ = FALSE;
				SwayNotificationCenterOrderedHashTable* _tmp8_;
				SwayNotificationCenterOrderedHashTable* _tmp9_;
				GValue _tmp10_ = {0};
				_tmp8_ = sway_notification_center_config_model_extract_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, property_name, property_node, &_tmp7_);
				status = _tmp7_;
				_result_ = _tmp8_;
				_tmp9_ = _result_;
				g_value_init (&_tmp10_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
				sway_notification_center_value_set_ordered_hash_table (&_tmp10_, _tmp9_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp10_;
				result = status;
				_sway_notification_center_ordered_hash_table_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label2) ? _tmp1_label2 : (_tmp1_label2 = g_quark_from_static_string ("notification-visibility")))) {
		switch (0) {
			default:
			{
				gboolean status = FALSE;
				SwayNotificationCenterOrderedHashTable* _result_ = NULL;
				gboolean _tmp11_ = FALSE;
				SwayNotificationCenterOrderedHashTable* _tmp12_;
				SwayNotificationCenterOrderedHashTable* _tmp13_;
				GValue _tmp14_ = {0};
				_tmp12_ = sway_notification_center_config_model_extract_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, property_name, property_node, &_tmp11_);
				status = _tmp11_;
				_result_ = _tmp12_;
				_tmp13_ = _result_;
				g_value_init (&_tmp14_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
				sway_notification_center_value_set_ordered_hash_table (&_tmp14_, _tmp13_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp14_;
				result = status;
				_sway_notification_center_ordered_hash_table_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label3) ? _tmp1_label3 : (_tmp1_label3 = g_quark_from_static_string ("scripts")))) {
		switch (0) {
			default:
			{
				gboolean status = FALSE;
				SwayNotificationCenterOrderedHashTable* _result_ = NULL;
				gboolean _tmp15_ = FALSE;
				SwayNotificationCenterOrderedHashTable* _tmp16_;
				SwayNotificationCenterOrderedHashTable* _tmp17_;
				GValue _tmp18_ = {0};
				_tmp16_ = sway_notification_center_config_model_extract_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, property_name, property_node, &_tmp15_);
				status = _tmp15_;
				_result_ = _tmp16_;
				_tmp17_ = _result_;
				g_value_init (&_tmp18_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
				sway_notification_center_value_set_ordered_hash_table (&_tmp18_, _tmp17_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp18_;
				result = status;
				_sway_notification_center_ordered_hash_table_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label4) ? _tmp1_label4 : (_tmp1_label4 = g_quark_from_static_string ("widgets")))) {
		switch (0) {
			default:
			{
				gboolean status = FALSE;
				GPtrArray* _result_ = NULL;
				gboolean _tmp19_ = FALSE;
				GPtrArray* _tmp20_;
				GPtrArray* _tmp21_;
				GValue _tmp22_ = {0};
				_tmp20_ = sway_notification_center_config_model_extract_array (self, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, property_name, property_node, &_tmp19_);
				status = _tmp19_;
				_result_ = _tmp20_;
				_tmp21_ = _result_;
				g_value_init (&_tmp22_, G_TYPE_PTR_ARRAY);
				g_value_set_boxed (&_tmp22_, _tmp21_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp22_;
				result = status;
				_g_ptr_array_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else if (_tmp2_ == ((0 != _tmp1_label5) ? _tmp1_label5 : (_tmp1_label5 = g_quark_from_static_string ("widget-config")))) {
		switch (0) {
			default:
			{
				SwayNotificationCenterOrderedHashTable* _result_ = NULL;
				SwayNotificationCenterOrderedHashTable* _tmp23_;
				const gchar* _tmp24_;
				JsonObject* obj = NULL;
				JsonObject* _tmp27_;
				JsonObject* _tmp28_;
				JsonObject* _tmp29_;
				JsonObject* _tmp32_;
				GList* _tmp33_;
				SwayNotificationCenterOrderedHashTable* _tmp48_;
				GValue _tmp49_ = {0};
				_tmp23_ = sway_notification_center_ordered_hash_table_new (json_object_get_type (), (GBoxedCopyFunc) json_object_ref, (GDestroyNotify) json_object_unref);
				_result_ = _tmp23_;
				_tmp24_ = g_type_name (json_node_get_value_type (property_node));
				if (g_strcmp0 (_tmp24_, "JsonObject") != 0) {
					SwayNotificationCenterOrderedHashTable* _tmp25_;
					GValue _tmp26_ = {0};
					_tmp25_ = _result_;
					g_value_init (&_tmp26_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
					sway_notification_center_value_set_ordered_hash_table (&_tmp26_, _tmp25_);
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
					_vala_value = _tmp26_;
					result = TRUE;
					_sway_notification_center_ordered_hash_table_unref0 (_result_);
					if (value) {
						*value = _vala_value;
					} else {
						G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
					}
					return result;
				}
				_tmp27_ = json_node_get_object (property_node);
				_tmp28_ = _json_object_ref0 (_tmp27_);
				obj = _tmp28_;
				_tmp29_ = obj;
				if (json_object_get_size (_tmp29_) == ((guint) 0)) {
					SwayNotificationCenterOrderedHashTable* _tmp30_;
					GValue _tmp31_ = {0};
					_tmp30_ = _result_;
					g_value_init (&_tmp31_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
					sway_notification_center_value_set_ordered_hash_table (&_tmp31_, _tmp30_);
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
					_vala_value = _tmp31_;
					result = TRUE;
					_json_object_unref0 (obj);
					_sway_notification_center_ordered_hash_table_unref0 (_result_);
					if (value) {
						*value = _vala_value;
					} else {
						G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
					}
					return result;
				}
				_tmp32_ = obj;
				_tmp33_ = json_object_get_members (_tmp32_);
				{
					GList* key_collection = NULL;
					GList* key_it = NULL;
					key_collection = _tmp33_;
					for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
						const gchar* key = NULL;
						key = (const gchar*) key_it->data;
						{
							JsonNode* node = NULL;
							JsonObject* _tmp34_;
							const gchar* _tmp35_;
							JsonNode* _tmp36_;
							JsonNode* _tmp37_;
							JsonNode* _tmp38_;
							JsonObject* o = NULL;
							JsonNode* _tmp39_;
							JsonObject* _tmp40_;
							JsonObject* _tmp41_;
							JsonObject* _tmp42_;
							_tmp34_ = obj;
							_tmp35_ = key;
							_tmp36_ = json_object_get_member (_tmp34_, _tmp35_);
							_tmp37_ = __vala_JsonNode_copy0 (_tmp36_);
							node = _tmp37_;
							_tmp38_ = node;
							if (json_node_get_node_type (_tmp38_) != JSON_NODE_OBJECT) {
								__vala_JsonNode_free0 (node);
								continue;
							}
							_tmp39_ = node;
							_tmp40_ = json_node_get_object (_tmp39_);
							_tmp41_ = _json_object_ref0 (_tmp40_);
							o = _tmp41_;
							_tmp42_ = o;
							if (_tmp42_ != NULL) {
								SwayNotificationCenterOrderedHashTable* _tmp43_;
								const gchar* _tmp44_;
								gchar* _tmp45_;
								JsonObject* _tmp46_;
								JsonObject* _tmp47_;
								_tmp43_ = _result_;
								_tmp44_ = key;
								_tmp45_ = g_strdup (_tmp44_);
								_tmp46_ = o;
								_tmp47_ = _json_object_ref0 (_tmp46_);
								sway_notification_center_ordered_hash_table_insert (_tmp43_, _tmp45_, _tmp47_);
							}
							_json_object_unref0 (o);
							__vala_JsonNode_free0 (node);
						}
					}
					(key_collection == NULL) ? NULL : (key_collection = (g_list_free (key_collection), NULL));
				}
				_tmp48_ = _result_;
				g_value_init (&_tmp49_, SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE);
				sway_notification_center_value_set_ordered_hash_table (&_tmp49_, _tmp48_);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp49_;
				result = TRUE;
				_json_object_unref0 (obj);
				_sway_notification_center_ordered_hash_table_unref0 (_result_);
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				GValue _tmp50_ = {0};
				gboolean _tmp51_;
				_tmp51_ = json_serializable_default_deserialize_property (G_TYPE_CHECK_INSTANCE_CAST (self, json_serializable_get_type (), JsonSerializable), property_name, &_tmp50_, pspec, property_node);
				G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				_vala_value = _tmp50_;
				result = _tmp51_;
				if (value) {
					*value = _vala_value;
				} else {
					G_IS_VALUE (&_vala_value) ? (g_value_unset (&_vala_value), NULL) : NULL;
				}
				return result;
			}
		}
	}
}

/**
         * Called when `Json.gobject_serialize (ConfigModel.instance)` is called
         */
static GEnumValue*
_g_enum_value_dup (GEnumValue* self)
{
	GEnumValue* dup;
	dup = g_new0 (GEnumValue, 1);
	memcpy (dup, self, sizeof (GEnumValue));
	return dup;
}

static gpointer
__g_enum_value_dup0 (gpointer self)
{
	return self ? _g_enum_value_dup (self) : NULL;
}

static gpointer
_sway_notification_center_ordered_hash_table_ref0 (gpointer self)
{
	return self ? sway_notification_center_ordered_hash_table_ref (self) : NULL;
}

static gpointer
_g_ptr_array_ref0 (gpointer self)
{
	return self ? g_ptr_array_ref (self) : NULL;
}

static JsonNode*
sway_notification_center_config_model_real_serialize_property (JsonSerializable* base,
                                                               const gchar* property_name,
                                                               GValue* value,
                                                               GParamSpec* pspec)
{
	SwayNotificationCenterConfigModel * self;
	JsonNode* node = NULL;
	JsonNode* _tmp0_;
	const gchar* _tmp10_;
	GQuark _tmp12_ = 0U;
	static GQuark _tmp11_label0 = 0;
	static GQuark _tmp11_label1 = 0;
	static GQuark _tmp11_label2 = 0;
	static GQuark _tmp11_label3 = 0;
	static GQuark _tmp11_label4 = 0;
	static GQuark _tmp11_label5 = 0;
	JsonNode* result;
	self = G_TYPE_CHECK_INSTANCE_CAST (base, SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel);
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (value != NULL, NULL);
	g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (pspec, G_TYPE_PARAM), NULL);
	_tmp0_ = json_node_new (JSON_NODE_VALUE);
	node = _tmp0_;
	if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_ENUM)) {
		GEnumClass* enumc = NULL;
		GTypeClass* _tmp1_;
		GEnumValue* eval = NULL;
		GEnumClass* _tmp2_;
		GEnumValue* _tmp3_;
		GEnumValue* _tmp4_;
		JsonNode* _tmp7_;
		GEnumValue* _tmp8_;
		const gchar* _tmp9_;
		_tmp1_ = g_type_class_ref (pspec->value_type);
		enumc = (GEnumClass*) _tmp1_;
		_tmp2_ = enumc;
		_tmp3_ = __g_enum_value_dup0 (g_enum_get_value (_tmp2_, g_value_get_enum (value)));
		eval = _tmp3_;
		_tmp4_ = eval;
		if (_tmp4_ == NULL) {
			JsonNode* _tmp5_;
			GValue _tmp6_;
			_tmp5_ = node;
			_tmp6_ = *value;
			json_node_set_value (_tmp5_, &_tmp6_);
			result = node;
			_g_free0 (eval);
			_g_type_class_unref0 (enumc);
			return result;
		}
		_tmp7_ = node;
		_tmp8_ = eval;
		_tmp9_ = (*_tmp8_).value_nick;
		json_node_set_string (_tmp7_, _tmp9_);
		result = node;
		_g_free0 (eval);
		_g_type_class_unref0 (enumc);
		return result;
	}
	_tmp10_ = property_name;
	_tmp12_ = (NULL == _tmp10_) ? 0 : g_quark_from_string (_tmp10_);
	if (_tmp12_ == ((0 != _tmp11_label0) ? _tmp11_label0 : (_tmp11_label0 = g_quark_from_static_string ("categories-settings")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp13_;
				SwayNotificationCenterOrderedHashTable* table = NULL;
				GValue _tmp14_;
				SwayNotificationCenterOrderedHashTable* _tmp15_;
				JsonNode* _tmp16_;
				SwayNotificationCenterOrderedHashTable* _tmp17_;
				JsonObject* _tmp18_;
				JsonObject* _tmp19_;
				_tmp13_ = json_node_new (JSON_NODE_OBJECT);
				__vala_JsonNode_free0 (node);
				node = _tmp13_;
				_tmp14_ = *value;
				_tmp15_ = _sway_notification_center_ordered_hash_table_ref0 (sway_notification_center_value_get_ordered_hash_table (&_tmp14_));
				table = _tmp15_;
				_tmp16_ = node;
				_tmp17_ = table;
				_tmp18_ = sway_notification_center_config_model_serialize_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp17_);
				_tmp19_ = _tmp18_;
				json_node_set_object (_tmp16_, _tmp19_);
				_json_object_unref0 (_tmp19_);
				_sway_notification_center_ordered_hash_table_unref0 (table);
				break;
			}
		}
	} else if (_tmp12_ == ((0 != _tmp11_label1) ? _tmp11_label1 : (_tmp11_label1 = g_quark_from_static_string ("notification-action-filter")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp20_;
				SwayNotificationCenterOrderedHashTable* table = NULL;
				GValue _tmp21_;
				SwayNotificationCenterOrderedHashTable* _tmp22_;
				JsonNode* _tmp23_;
				SwayNotificationCenterOrderedHashTable* _tmp24_;
				JsonObject* _tmp25_;
				JsonObject* _tmp26_;
				_tmp20_ = json_node_new (JSON_NODE_OBJECT);
				__vala_JsonNode_free0 (node);
				node = _tmp20_;
				_tmp21_ = *value;
				_tmp22_ = _sway_notification_center_ordered_hash_table_ref0 (sway_notification_center_value_get_ordered_hash_table (&_tmp21_));
				table = _tmp22_;
				_tmp23_ = node;
				_tmp24_ = table;
				_tmp25_ = sway_notification_center_config_model_serialize_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp24_);
				_tmp26_ = _tmp25_;
				json_node_set_object (_tmp23_, _tmp26_);
				_json_object_unref0 (_tmp26_);
				_sway_notification_center_ordered_hash_table_unref0 (table);
				break;
			}
		}
	} else if (_tmp12_ == ((0 != _tmp11_label2) ? _tmp11_label2 : (_tmp11_label2 = g_quark_from_static_string ("notification-visibility")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp27_;
				SwayNotificationCenterOrderedHashTable* table = NULL;
				GValue _tmp28_;
				SwayNotificationCenterOrderedHashTable* _tmp29_;
				JsonNode* _tmp30_;
				SwayNotificationCenterOrderedHashTable* _tmp31_;
				JsonObject* _tmp32_;
				JsonObject* _tmp33_;
				_tmp27_ = json_node_new (JSON_NODE_OBJECT);
				__vala_JsonNode_free0 (node);
				node = _tmp27_;
				_tmp28_ = *value;
				_tmp29_ = _sway_notification_center_ordered_hash_table_ref0 (sway_notification_center_value_get_ordered_hash_table (&_tmp28_));
				table = _tmp29_;
				_tmp30_ = node;
				_tmp31_ = table;
				_tmp32_ = sway_notification_center_config_model_serialize_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp31_);
				_tmp33_ = _tmp32_;
				json_node_set_object (_tmp30_, _tmp33_);
				_json_object_unref0 (_tmp33_);
				_sway_notification_center_ordered_hash_table_unref0 (table);
				break;
			}
		}
	} else if (_tmp12_ == ((0 != _tmp11_label3) ? _tmp11_label3 : (_tmp11_label3 = g_quark_from_static_string ("scripts")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp34_;
				SwayNotificationCenterOrderedHashTable* table = NULL;
				GValue _tmp35_;
				SwayNotificationCenterOrderedHashTable* _tmp36_;
				JsonNode* _tmp37_;
				SwayNotificationCenterOrderedHashTable* _tmp38_;
				JsonObject* _tmp39_;
				JsonObject* _tmp40_;
				_tmp34_ = json_node_new (JSON_NODE_OBJECT);
				__vala_JsonNode_free0 (node);
				node = _tmp34_;
				_tmp35_ = *value;
				_tmp36_ = _sway_notification_center_ordered_hash_table_ref0 (sway_notification_center_value_get_ordered_hash_table (&_tmp35_));
				table = _tmp36_;
				_tmp37_ = node;
				_tmp38_ = table;
				_tmp39_ = sway_notification_center_config_model_serialize_hashtable (self, SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp38_);
				_tmp40_ = _tmp39_;
				json_node_set_object (_tmp37_, _tmp40_);
				_json_object_unref0 (_tmp40_);
				_sway_notification_center_ordered_hash_table_unref0 (table);
				break;
			}
		}
	} else if (_tmp12_ == ((0 != _tmp11_label4) ? _tmp11_label4 : (_tmp11_label4 = g_quark_from_static_string ("widgets")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp41_;
				GPtrArray* table = NULL;
				GValue _tmp42_;
				GPtrArray* _tmp43_;
				JsonNode* _tmp44_;
				GPtrArray* _tmp45_;
				JsonArray* _tmp46_;
				JsonArray* _tmp47_;
				_tmp41_ = json_node_new (JSON_NODE_ARRAY);
				__vala_JsonNode_free0 (node);
				node = _tmp41_;
				_tmp42_ = *value;
				_tmp43_ = _g_ptr_array_ref0 (g_value_get_boxed (&_tmp42_));
				table = _tmp43_;
				_tmp44_ = node;
				_tmp45_ = table;
				_tmp46_ = sway_notification_center_config_model_serialize_array (self, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _tmp45_);
				_tmp47_ = _tmp46_;
				json_node_set_array (_tmp44_, _tmp47_);
				_json_array_unref0 (_tmp47_);
				_g_ptr_array_unref0 (table);
				break;
			}
		}
	} else if (_tmp12_ == ((0 != _tmp11_label5) ? _tmp11_label5 : (_tmp11_label5 = g_quark_from_static_string ("widget-config")))) {
		switch (0) {
			default:
			{
				JsonNode* _tmp48_;
				SwayNotificationCenterOrderedHashTable* table = NULL;
				GValue _tmp49_;
				SwayNotificationCenterOrderedHashTable* _tmp50_;
				JsonNode* _tmp51_;
				SwayNotificationCenterOrderedHashTable* _tmp52_;
				JsonObject* _tmp53_;
				JsonObject* _tmp54_;
				_tmp48_ = json_node_new (JSON_NODE_OBJECT);
				__vala_JsonNode_free0 (node);
				node = _tmp48_;
				_tmp49_ = *value;
				_tmp50_ = _sway_notification_center_ordered_hash_table_ref0 (sway_notification_center_value_get_ordered_hash_table (&_tmp49_));
				table = _tmp50_;
				_tmp51_ = node;
				_tmp52_ = table;
				_tmp53_ = sway_notification_center_config_model_serialize_hashtable (self, json_object_get_type (), (GBoxedCopyFunc) json_object_ref, (GDestroyNotify) json_object_unref, _tmp52_);
				_tmp54_ = _tmp53_;
				json_node_set_object (_tmp51_, _tmp54_);
				_json_object_unref0 (_tmp54_);
				_sway_notification_center_ordered_hash_table_unref0 (table);
				break;
			}
		}
	} else {
		switch (0) {
			default:
			{
				JsonNode* _tmp55_;
				GValue _tmp56_;
				_tmp55_ = node;
				_tmp56_ = *value;
				json_node_set_value (_tmp55_, &_tmp56_);
				break;
			}
		}
	}
	result = node;
	return result;
}

gchar*
sway_notification_center_config_model_to_string (SwayNotificationCenterConfigModel* self)
{
	JsonNode* json = NULL;
	SwayNotificationCenterConfigModel* _tmp0_;
	SwayNotificationCenterConfigModel* _tmp1_;
	JsonNode* _tmp2_;
	gchar* _tmp3_;
	gchar* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = sway_notification_center_config_model_get_instance ();
	_tmp1_ = _tmp0_;
	_tmp2_ = json_gobject_serialize (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, G_TYPE_OBJECT, GObject));
	json = _tmp2_;
	_tmp3_ = json_to_string (json, TRUE);
	result = _tmp3_;
	__vala_JsonNode_free0 (json);
	return result;
}

/**
         * Extracts and returns a OrderedHashTable<GLib.Object>
         * from a nested JSON Object.
         *
         * Can only accept these types:
         * - string
         * - bool
         * - int64
         * - GLib.Object
         */
static gint64*
_int64_dup (gint64* self)
{
	gint64* dup;
	dup = g_new0 (gint64, 1);
	memcpy (dup, self, sizeof (gint64));
	return dup;
}

static gpointer
__int64_dup0 (gpointer self)
{
	return self ? _int64_dup (self) : NULL;
}

static SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_extract_hashtable (SwayNotificationCenterConfigModel* self,
                                                         GType t_type,
                                                         GBoxedCopyFunc t_dup_func,
                                                         GDestroyNotify t_destroy_func,
                                                         const gchar* property_name,
                                                         JsonNode* node,
                                                         gboolean* status)
{
	gboolean _vala_status = FALSE;
	SwayNotificationCenterOrderedHashTable* tmp_table = NULL;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	JsonObject* root_object = NULL;
	JsonObject* _tmp2_;
	JsonObject* _tmp3_;
	JsonObject* _tmp4_;
	GType generic_type = 0UL;
	JsonObject* _tmp5_;
	GList* _tmp6_;
	SwayNotificationCenterOrderedHashTable* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (node != NULL, NULL);
	_vala_status = FALSE;
	_tmp0_ = sway_notification_center_ordered_hash_table_new (t_type, (GBoxedCopyFunc) t_dup_func, (GDestroyNotify) t_destroy_func);
	tmp_table = _tmp0_;
	if (json_node_get_node_type (node) != JSON_NODE_OBJECT) {
		FILE* _tmp1_;
		_tmp1_ = stderr;
		fprintf (_tmp1_, "Node %s is not a json object!...\n", property_name);
		result = tmp_table;
		if (status) {
			*status = _vala_status;
		}
		return result;
	}
	_tmp2_ = json_node_get_object (node);
	_tmp3_ = _json_object_ref0 (_tmp2_);
	root_object = _tmp3_;
	_tmp4_ = root_object;
	if (_tmp4_ == NULL) {
		result = tmp_table;
		_json_object_unref0 (root_object);
		if (status) {
			*status = _vala_status;
		}
		return result;
	}
	generic_type = sway_notification_center_functions_get_base_type (t_type);
	_tmp5_ = root_object;
	_tmp6_ = json_object_get_members (_tmp5_);
	{
		GList* key_collection = NULL;
		GList* key_it = NULL;
		key_collection = _tmp6_;
		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
			const gchar* key = NULL;
			key = (const gchar*) key_it->data;
			{
				JsonNode* member = NULL;
				JsonObject* _tmp7_;
				const gchar* _tmp8_;
				JsonNode* _tmp9_;
				JsonNode* _tmp10_;
				gboolean _tmp11_ = FALSE;
				JsonNode* _tmp12_;
				_tmp7_ = root_object;
				_tmp8_ = key;
				_tmp9_ = json_object_get_member (_tmp7_, _tmp8_);
				member = _tmp9_;
				_tmp10_ = member;
				if (_tmp10_ == NULL) {
					continue;
				}
				_tmp12_ = member;
				if (!g_type_is_a (json_node_get_value_type (_tmp12_), generic_type)) {
					JsonNode* _tmp13_;
					_tmp13_ = member;
					_tmp11_ = !g_type_is_a (json_node_get_value_type (_tmp13_), json_object_get_type ());
				} else {
					_tmp11_ = FALSE;
				}
				if (_tmp11_) {
					continue;
				}
				switch (generic_type) {
					case G_TYPE_STRING:
					{
						const gchar* str = NULL;
						JsonNode* _tmp14_;
						const gchar* _tmp15_;
						const gchar* _tmp16_;
						_tmp14_ = member;
						_tmp15_ = json_node_get_string (_tmp14_);
						str = _tmp15_;
						_tmp16_ = str;
						if (_tmp16_ != NULL) {
							SwayNotificationCenterOrderedHashTable* _tmp17_;
							const gchar* _tmp18_;
							gchar* _tmp19_;
							const gchar* _tmp20_;
							gpointer _tmp21_;
							_tmp17_ = tmp_table;
							_tmp18_ = key;
							_tmp19_ = g_strdup ((gchar*) _tmp18_);
							_tmp20_ = str;
							_tmp21_ = ((_tmp20_ != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) _tmp20_) : ((gpointer) _tmp20_);
							sway_notification_center_ordered_hash_table_insert (_tmp17_, _tmp19_, _tmp21_);
						}
						break;
					}
					case G_TYPE_BOOLEAN:
					{
						SwayNotificationCenterOrderedHashTable* _tmp22_;
						const gchar* _tmp23_;
						gchar* _tmp24_;
						JsonNode* _tmp25_;
						_tmp22_ = tmp_table;
						_tmp23_ = key;
						_tmp24_ = g_strdup ((gchar*) _tmp23_);
						_tmp25_ = member;
						sway_notification_center_ordered_hash_table_insert (_tmp22_, _tmp24_, (gpointer) ((gintptr) json_node_get_boolean (_tmp25_)));
						break;
					}
					case G_TYPE_INT64:
					{
						gint64* _tmp26_ = NULL;
						JsonNode* _tmp27_;
						gint64 _tmp28_;
						gint64* _tmp29_;
						SwayNotificationCenterOrderedHashTable* _tmp30_;
						const gchar* _tmp31_;
						gchar* _tmp32_;
						gint64* _tmp33_;
						_tmp27_ = member;
						_tmp28_ = json_node_get_int (_tmp27_);
						_tmp29_ = __int64_dup0 (&_tmp28_);
						_tmp26_ = _tmp29_;
						_tmp30_ = tmp_table;
						_tmp31_ = key;
						_tmp32_ = g_strdup ((gchar*) _tmp31_);
						_tmp33_ = _tmp26_;
						_tmp26_ = NULL;
						sway_notification_center_ordered_hash_table_insert (_tmp30_, _tmp32_, _tmp33_);
						_g_free0 (_tmp26_);
						break;
					}
					case G_TYPE_OBJECT:
					{
						JsonObject* object = NULL;
						JsonObject* _tmp34_;
						const gchar* _tmp35_;
						JsonObject* _tmp36_;
						JsonObject* _tmp37_;
						GType type = 0UL;
						GObjectClass* ocl = NULL;
						GTypeClass* _tmp38_;
						GObject* obj = NULL;
						GObject* _tmp39_;
						GObject* _tmp40_;
						JsonObject* _tmp41_;
						GList* _tmp42_;
						SwayNotificationCenterOrderedHashTable* _tmp69_;
						const gchar* _tmp70_;
						gchar* _tmp71_;
						GObject* _tmp72_;
						gpointer _tmp73_;
						if (!g_type_is_a (t_type, G_TYPE_OBJECT)) {
							break;
						}
						_tmp34_ = root_object;
						_tmp35_ = key;
						_tmp36_ = json_object_get_object_member (_tmp34_, _tmp35_);
						object = _tmp36_;
						_tmp37_ = object;
						if (_tmp37_ == NULL) {
							break;
						}
						type = t_type;
						_tmp38_ = g_type_class_ref (type);
						ocl = (GObjectClass*) _tmp38_;
						_tmp39_ = g_object_new (type, NULL);
						_tmp40_ = G_IS_INITIALLY_UNOWNED (_tmp39_) ? g_object_ref_sink (_tmp39_) : _tmp39_;
						obj = _tmp40_;
						_tmp41_ = object;
						_tmp42_ = json_object_get_members (_tmp41_);
						{
							GList* name_collection = NULL;
							GList* name_it = NULL;
							name_collection = _tmp42_;
							for (name_it = name_collection; name_it != NULL; name_it = name_it->next) {
								const gchar* name = NULL;
								name = (const gchar*) name_it->data;
								{
									GValue value = {0};
									JsonObject* _tmp43_;
									const gchar* _tmp44_;
									JsonNode* _tmp45_;
									GValue _tmp46_ = {0};
									GParamSpec* value_spec = NULL;
									GObjectClass* _tmp47_;
									guint _tmp48_ = 0;
									GParamSpec** _tmp49_;
									GParamSpec* _tmp54_;
									GType spec_type = 0UL;
									GParamSpec* _tmp55_;
									GType val_type = 0UL;
									_tmp43_ = object;
									_tmp44_ = name;
									_tmp45_ = json_object_get_member (_tmp43_, _tmp44_);
									json_node_get_value (_tmp45_, &_tmp46_);
									value = _tmp46_;
									value_spec = NULL;
									_tmp47_ = ocl;
									_tmp49_ = g_object_class_list_properties (_tmp47_, &_tmp48_);
									{
										GParamSpec** spec_collection = NULL;
										gint spec_collection_length1 = 0;
										gint _spec_collection_size_ = 0;
										gint spec_it = 0;
										spec_collection = _tmp49_;
										spec_collection_length1 = _tmp48_;
										for (spec_it = 0; spec_it < spec_collection_length1; spec_it = spec_it + 1) {
											GParamSpec* spec = NULL;
											spec = spec_collection[spec_it];
											{
												GParamSpec* _tmp50_;
												const gchar* _tmp51_;
												const gchar* _tmp52_;
												_tmp50_ = spec;
												_tmp51_ = _tmp50_->name;
												_tmp52_ = name;
												if (g_strcmp0 (_tmp51_, _tmp52_) == 0) {
													GParamSpec* _tmp53_;
													_tmp53_ = spec;
													value_spec = _tmp53_;
													break;
												}
											}
										}
										spec_collection = (g_free (spec_collection), NULL);
									}
									_tmp54_ = value_spec;
									if (_tmp54_ == NULL) {
										G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
										continue;
									}
									_tmp55_ = value_spec;
									spec_type = _tmp55_->value_type;
									val_type = G_VALUE_TYPE (&value);
									if (g_type_is_a (spec_type, val_type)) {
										GObject* _tmp56_;
										const gchar* _tmp57_;
										GValue _tmp58_;
										_tmp56_ = obj;
										_tmp57_ = name;
										_tmp58_ = value;
										g_object_set_property (_tmp56_, _tmp57_, &_tmp58_);
									} else {
										gboolean _tmp59_ = FALSE;
										if (g_type_is_a (spec_type, G_TYPE_ENUM)) {
											_tmp59_ = g_type_is_a (val_type, G_TYPE_STRING);
										} else {
											_tmp59_ = FALSE;
										}
										if (_tmp59_) {
											GEnumClass* enumc = NULL;
											GTypeClass* _tmp60_;
											GEnumValue* eval = NULL;
											GEnumClass* _tmp61_;
											const gchar* _tmp62_;
											GEnumValue* _tmp63_;
											GEnumValue* _tmp64_;
											_tmp60_ = g_type_class_ref (spec_type);
											enumc = (GEnumClass*) _tmp60_;
											_tmp61_ = enumc;
											_tmp62_ = g_value_get_string (&value);
											_tmp63_ = __g_enum_value_dup0 (g_enum_get_value_by_nick (_tmp61_, _tmp62_));
											eval = _tmp63_;
											_tmp64_ = eval;
											if (_tmp64_ != NULL) {
												GObject* _tmp65_;
												const gchar* _tmp66_;
												GEnumValue* _tmp67_;
												GValue _tmp68_ = {0};
												_tmp65_ = obj;
												_tmp66_ = name;
												_tmp67_ = eval;
												g_value_init (&_tmp68_, G_TYPE_INT);
												g_value_set_int (&_tmp68_, (*_tmp67_).value);
												g_object_set_property (_tmp65_, _tmp66_, &_tmp68_);
												G_IS_VALUE (&_tmp68_) ? (g_value_unset (&_tmp68_), NULL) : NULL;
											}
											_g_free0 (eval);
											_g_type_class_unref0 (enumc);
										}
									}
									G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
								}
							}
							(name_collection == NULL) ? NULL : (name_collection = (g_list_free (name_collection), NULL));
						}
						_tmp69_ = tmp_table;
						_tmp70_ = key;
						_tmp71_ = g_strdup ((gchar*) _tmp70_);
						_tmp72_ = obj;
						_tmp73_ = ((((gconstpointer) _tmp72_) != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) ((gconstpointer) _tmp72_)) : ((gpointer) ((gconstpointer) _tmp72_));
						sway_notification_center_ordered_hash_table_insert (_tmp69_, _tmp71_, _tmp73_);
						_g_object_unref0 (obj);
						_g_type_class_unref0 (ocl);
						break;
					}
					default:
					break;
				}
			}
		}
		(key_collection == NULL) ? NULL : (key_collection = (g_list_free (key_collection), NULL));
	}
	_vala_status = TRUE;
	result = tmp_table;
	_json_object_unref0 (root_object);
	if (status) {
		*status = _vala_status;
	}
	return result;
}

static gboolean*
_bool_dup (gboolean* self)
{
	gboolean* dup;
	dup = g_new0 (gboolean, 1);
	memcpy (dup, self, sizeof (gboolean));
	return dup;
}

static gpointer
__bool_dup0 (gpointer self)
{
	return self ? _bool_dup (self) : NULL;
}

static gpointer
_json_array_ref0 (gpointer self)
{
	return self ? json_array_ref (self) : NULL;
}

static JsonObject*
sway_notification_center_config_model_serialize_hashtable (SwayNotificationCenterConfigModel* self,
                                                           GType t_type,
                                                           GBoxedCopyFunc t_dup_func,
                                                           GDestroyNotify t_destroy_func,
                                                           SwayNotificationCenterOrderedHashTable* table)
{
	JsonObject* json_object = NULL;
	JsonObject* _tmp0_;
	GList* _tmp1_;
	JsonObject* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_ORDERED_HASH_TABLE (table), NULL);
	_tmp0_ = json_object_new ();
	json_object = _tmp0_;
	if (table == NULL) {
		result = json_object;
		return result;
	}
	_tmp1_ = sway_notification_center_ordered_hash_table_get_keys (table);
	{
		GList* key_collection = NULL;
		GList* key_it = NULL;
		key_collection = _tmp1_;
		for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
			gchar* _tmp2_;
			gchar* key = NULL;
			_tmp2_ = g_strdup ((const gchar*) key_it->data);
			key = _tmp2_;
			{
				gconstpointer item = NULL;
				const gchar* _tmp3_;
				gconstpointer _tmp4_;
				gconstpointer _tmp5_;
				GType generic_type = 0UL;
				_tmp3_ = key;
				_tmp4_ = sway_notification_center_ordered_hash_table_get (table, _tmp3_);
				item = _tmp4_;
				_tmp5_ = item;
				if (_tmp5_ == NULL) {
					_g_free0 (key);
					continue;
				}
				generic_type = sway_notification_center_functions_get_base_type (t_type);
				switch (generic_type) {
					case G_TYPE_STRING:
					{
						gchar* casted = NULL;
						gconstpointer _tmp6_;
						gchar* _tmp7_;
						const gchar* _tmp8_;
						_tmp6_ = item;
						_tmp7_ = g_strdup ((const gchar*) _tmp6_);
						casted = _tmp7_;
						_tmp8_ = casted;
						if (_tmp8_ != NULL) {
							JsonObject* _tmp9_;
							const gchar* _tmp10_;
							const gchar* _tmp11_;
							_tmp9_ = json_object;
							_tmp10_ = key;
							_tmp11_ = casted;
							json_object_set_string_member (_tmp9_, _tmp10_, _tmp11_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_BOOLEAN:
					{
						gboolean* casted = NULL;
						gconstpointer _tmp12_;
						gboolean _tmp13_;
						gboolean* _tmp14_;
						gboolean* _tmp15_;
						_tmp12_ = item;
						_tmp13_ = (gboolean) _tmp12_;
						_tmp14_ = __bool_dup0 (&_tmp13_);
						casted = _tmp14_;
						_tmp15_ = casted;
						if (_tmp15_ != NULL) {
							JsonObject* _tmp16_;
							const gchar* _tmp17_;
							gboolean* _tmp18_;
							_tmp16_ = json_object;
							_tmp17_ = key;
							_tmp18_ = casted;
							json_object_set_boolean_member (_tmp16_, _tmp17_, *_tmp18_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_INT64:
					{
						gint64* casted = NULL;
						gconstpointer _tmp19_;
						gint64* _tmp20_;
						gint64* _tmp21_;
						_tmp19_ = item;
						_tmp20_ = __int64_dup0 ((gint64*) _tmp19_);
						casted = _tmp20_;
						_tmp21_ = casted;
						if (_tmp21_ != NULL) {
							JsonObject* _tmp22_;
							const gchar* _tmp23_;
							gint64* _tmp24_;
							_tmp22_ = json_object;
							_tmp23_ = key;
							_tmp24_ = casted;
							json_object_set_int_member (_tmp22_, _tmp23_, *_tmp24_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_OBJECT:
					{
						JsonNode* node = NULL;
						gconstpointer _tmp25_;
						JsonNode* _tmp26_;
						JsonObject* _tmp27_;
						const gchar* _tmp28_;
						JsonNode* _tmp29_;
						JsonNode* _tmp30_;
						_tmp25_ = item;
						_tmp26_ = json_gobject_serialize (G_TYPE_CHECK_INSTANCE_TYPE (_tmp25_, G_TYPE_OBJECT) ? ((GObject*) _tmp25_) : NULL);
						node = _tmp26_;
						_tmp27_ = json_object;
						_tmp28_ = key;
						_tmp29_ = node;
						_tmp30_ = __vala_JsonNode_copy0 (_tmp29_);
						json_object_set_member (_tmp27_, _tmp28_, _tmp30_);
						__vala_JsonNode_free0 (node);
						break;
					}
					case G_TYPE_BOXED:
					{
						const gchar* _tmp31_;
						const gchar* _tmp32_;
						GQuark _tmp34_ = 0U;
						static GQuark _tmp33_label0 = 0;
						static GQuark _tmp33_label1 = 0;
						_tmp31_ = g_type_name (t_type);
						_tmp32_ = _tmp31_;
						_tmp34_ = (NULL == _tmp32_) ? 0 : g_quark_from_string (_tmp32_);
						if (_tmp34_ == ((0 != _tmp33_label0) ? _tmp33_label0 : (_tmp33_label0 = g_quark_from_static_string ("JsonObject")))) {
							switch (0) {
								default:
								{
									JsonObject* _tmp35_;
									const gchar* _tmp36_;
									gconstpointer _tmp37_;
									JsonObject* _tmp38_;
									_tmp35_ = json_object;
									_tmp36_ = key;
									_tmp37_ = item;
									_tmp38_ = _json_object_ref0 ((JsonObject*) _tmp37_);
									json_object_set_object_member (_tmp35_, _tmp36_, _tmp38_);
									break;
								}
							}
						} else if (_tmp34_ == ((0 != _tmp33_label1) ? _tmp33_label1 : (_tmp33_label1 = g_quark_from_static_string ("JsonArray")))) {
							switch (0) {
								default:
								{
									JsonObject* _tmp39_;
									const gchar* _tmp40_;
									gconstpointer _tmp41_;
									JsonArray* _tmp42_;
									_tmp39_ = json_object;
									_tmp40_ = key;
									_tmp41_ = item;
									_tmp42_ = _json_array_ref0 ((JsonArray*) _tmp41_);
									json_object_set_array_member (_tmp39_, _tmp40_, _tmp42_);
									break;
								}
							}
						}
						break;
					}
					default:
					break;
				}
				_g_free0 (key);
			}
		}
		(key_collection == NULL) ? NULL : (key_collection = (g_list_free (key_collection), NULL));
	}
	result = json_object;
	return result;
}

/**
         * Extracts a JSON array and returns a GLib.GenericArray<T>
         *
         * Can only accept these types:
         * - string
         * - bool
         * - int64
         * - GLib.Object
         */
static GPtrArray*
sway_notification_center_config_model_extract_array (SwayNotificationCenterConfigModel* self,
                                                     GType t_type,
                                                     GBoxedCopyFunc t_dup_func,
                                                     GDestroyNotify t_destroy_func,
                                                     const gchar* property_name,
                                                     JsonNode* node,
                                                     gboolean* status)
{
	gboolean _vala_status = FALSE;
	GPtrArray* tmp_array = NULL;
	GPtrArray* _tmp0_;
	JsonArray* root_array = NULL;
	JsonArray* _tmp2_;
	JsonArray* _tmp3_;
	JsonArray* _tmp4_;
	JsonArray* _tmp5_;
	GList* _tmp6_;
	GPtrArray* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	g_return_val_if_fail (property_name != NULL, NULL);
	g_return_val_if_fail (node != NULL, NULL);
	_vala_status = FALSE;
	_tmp0_ = g_ptr_array_new_full ((guint) 0, t_destroy_func);
	tmp_array = _tmp0_;
	if (json_node_get_node_type (node) != JSON_NODE_ARRAY) {
		FILE* _tmp1_;
		_tmp1_ = stderr;
		fprintf (_tmp1_, "Node %s is not a json array!...\n", property_name);
		result = tmp_array;
		if (status) {
			*status = _vala_status;
		}
		return result;
	}
	_tmp2_ = json_node_get_array (node);
	_tmp3_ = _json_array_ref0 (_tmp2_);
	root_array = _tmp3_;
	_tmp4_ = root_array;
	if (_tmp4_ == NULL) {
		result = tmp_array;
		_json_array_unref0 (root_array);
		if (status) {
			*status = _vala_status;
		}
		return result;
	}
	_tmp5_ = root_array;
	_tmp6_ = json_array_get_elements (_tmp5_);
	{
		GList* member_collection = NULL;
		GList* member_it = NULL;
		member_collection = _tmp6_;
		for (member_it = member_collection; member_it != NULL; member_it = member_it->next) {
			JsonNode* member = NULL;
			member = (JsonNode*) member_it->data;
			{
				GType generic_type = 0UL;
				gboolean _tmp7_ = FALSE;
				JsonNode* _tmp8_;
				generic_type = sway_notification_center_functions_get_base_type (t_type);
				_tmp8_ = member;
				if (!g_type_is_a (json_node_get_value_type (_tmp8_), generic_type)) {
					JsonNode* _tmp9_;
					_tmp9_ = member;
					_tmp7_ = !g_type_is_a (json_node_get_value_type (_tmp9_), json_object_get_type ());
				} else {
					_tmp7_ = FALSE;
				}
				if (_tmp7_) {
					continue;
				}
				switch (generic_type) {
					case G_TYPE_STRING:
					{
						const gchar* str = NULL;
						JsonNode* _tmp10_;
						const gchar* _tmp11_;
						const gchar* _tmp12_;
						_tmp10_ = member;
						_tmp11_ = json_node_get_string (_tmp10_);
						str = _tmp11_;
						_tmp12_ = str;
						if (_tmp12_ != NULL) {
							GPtrArray* _tmp13_;
							const gchar* _tmp14_;
							gpointer _tmp15_;
							_tmp13_ = tmp_array;
							_tmp14_ = str;
							_tmp15_ = ((_tmp14_ != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) _tmp14_) : ((gpointer) _tmp14_);
							g_ptr_array_add (_tmp13_, _tmp15_);
						}
						break;
					}
					case G_TYPE_BOOLEAN:
					{
						GPtrArray* _tmp16_;
						JsonNode* _tmp17_;
						_tmp16_ = tmp_array;
						_tmp17_ = member;
						g_ptr_array_add (_tmp16_, (gpointer) ((gintptr) json_node_get_boolean (_tmp17_)));
						break;
					}
					case G_TYPE_INT64:
					{
						GPtrArray* _tmp18_;
						JsonNode* _tmp19_;
						_tmp18_ = tmp_array;
						_tmp19_ = member;
						g_ptr_array_add (_tmp18_, json_node_get_int (_tmp19_));
						break;
					}
					case G_TYPE_OBJECT:
					{
						JsonObject* object = NULL;
						JsonNode* _tmp20_;
						JsonObject* _tmp21_;
						JsonObject* _tmp22_;
						GObject* obj = NULL;
						GObject* _tmp23_;
						GObject* _tmp24_;
						JsonObject* _tmp25_;
						GList* _tmp26_;
						GPtrArray* _tmp34_;
						GObject* _tmp35_;
						gpointer _tmp36_;
						if (!g_type_is_a (t_type, G_TYPE_OBJECT)) {
							break;
						}
						_tmp20_ = member;
						_tmp21_ = json_node_get_object (_tmp20_);
						object = _tmp21_;
						_tmp22_ = object;
						if (_tmp22_ == NULL) {
							break;
						}
						_tmp23_ = g_object_new (t_type, NULL);
						_tmp24_ = G_IS_INITIALLY_UNOWNED (_tmp23_) ? g_object_ref_sink (_tmp23_) : _tmp23_;
						obj = _tmp24_;
						_tmp25_ = object;
						_tmp26_ = json_object_get_members (_tmp25_);
						{
							GList* name_collection = NULL;
							GList* name_it = NULL;
							name_collection = _tmp26_;
							for (name_it = name_collection; name_it != NULL; name_it = name_it->next) {
								const gchar* name = NULL;
								name = (const gchar*) name_it->data;
								{
									GValue value = {0};
									JsonObject* _tmp27_;
									const gchar* _tmp28_;
									JsonNode* _tmp29_;
									GValue _tmp30_ = {0};
									GObject* _tmp31_;
									const gchar* _tmp32_;
									GValue _tmp33_;
									_tmp27_ = object;
									_tmp28_ = name;
									_tmp29_ = json_object_get_member (_tmp27_, _tmp28_);
									json_node_get_value (_tmp29_, &_tmp30_);
									value = _tmp30_;
									_tmp31_ = obj;
									_tmp32_ = name;
									_tmp33_ = value;
									g_object_set_property (_tmp31_, _tmp32_, &_tmp33_);
									G_IS_VALUE (&value) ? (g_value_unset (&value), NULL) : NULL;
								}
							}
							(name_collection == NULL) ? NULL : (name_collection = (g_list_free (name_collection), NULL));
						}
						_tmp34_ = tmp_array;
						_tmp35_ = obj;
						_tmp36_ = ((((gconstpointer) _tmp35_) != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) ((gconstpointer) _tmp35_)) : ((gpointer) ((gconstpointer) _tmp35_));
						g_ptr_array_add (_tmp34_, _tmp36_);
						_g_object_unref0 (obj);
						break;
					}
					default:
					break;
				}
			}
		}
		(member_collection == NULL) ? NULL : (member_collection = (g_list_free (member_collection), NULL));
	}
	_vala_status = TRUE;
	result = tmp_array;
	_json_array_unref0 (root_array);
	if (status) {
		*status = _vala_status;
	}
	return result;
}

static JsonArray*
sway_notification_center_config_model_serialize_array (SwayNotificationCenterConfigModel* self,
                                                       GType t_type,
                                                       GBoxedCopyFunc t_dup_func,
                                                       GDestroyNotify t_destroy_func,
                                                       GPtrArray* array)
{
	JsonArray* json_array = NULL;
	JsonArray* _tmp0_;
	gpointer* _tmp1_;
	gint _tmp1__length1;
	JsonArray* result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	g_return_val_if_fail (array != NULL, NULL);
	_tmp0_ = json_array_new ();
	json_array = _tmp0_;
	if (array == NULL) {
		result = json_array;
		return result;
	}
	_tmp1_ = array->pdata;
	_tmp1__length1 = array->len;
	{
		gpointer* item_collection = NULL;
		gint item_collection_length1 = 0;
		gint _item_collection_size_ = 0;
		gint item_it = 0;
		item_collection = _tmp1_;
		item_collection_length1 = _tmp1__length1;
		for (item_it = 0; item_it < item_collection_length1; item_it = item_it + 1) {
			gpointer _tmp2_;
			gpointer item = NULL;
			_tmp2_ = ((item_collection[item_it] != NULL) && (t_dup_func != NULL)) ? t_dup_func ((gpointer) item_collection[item_it]) : ((gpointer) item_collection[item_it]);
			item = _tmp2_;
			{
				gconstpointer _tmp3_;
				GType generic_type = 0UL;
				_tmp3_ = item;
				if (_tmp3_ == NULL) {
					((item == NULL) || (t_destroy_func == NULL)) ? NULL : (item = (t_destroy_func (item), NULL));
					continue;
				}
				generic_type = sway_notification_center_functions_get_base_type (t_type);
				switch (generic_type) {
					case G_TYPE_STRING:
					{
						gchar* casted = NULL;
						gconstpointer _tmp4_;
						gchar* _tmp5_;
						const gchar* _tmp6_;
						_tmp4_ = item;
						_tmp5_ = g_strdup ((const gchar*) _tmp4_);
						casted = _tmp5_;
						_tmp6_ = casted;
						if (_tmp6_ != NULL) {
							JsonArray* _tmp7_;
							const gchar* _tmp8_;
							_tmp7_ = json_array;
							_tmp8_ = casted;
							json_array_add_string_element (_tmp7_, _tmp8_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_BOOLEAN:
					{
						gboolean* casted = NULL;
						gconstpointer _tmp9_;
						gboolean _tmp10_;
						gboolean* _tmp11_;
						gboolean* _tmp12_;
						_tmp9_ = item;
						_tmp10_ = (gboolean) _tmp9_;
						_tmp11_ = __bool_dup0 (&_tmp10_);
						casted = _tmp11_;
						_tmp12_ = casted;
						if (_tmp12_ != NULL) {
							JsonArray* _tmp13_;
							gboolean* _tmp14_;
							_tmp13_ = json_array;
							_tmp14_ = casted;
							json_array_add_boolean_element (_tmp13_, *_tmp14_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_INT64:
					{
						gint64* casted = NULL;
						gconstpointer _tmp15_;
						gint64 _tmp16_;
						gint64* _tmp17_;
						gint64* _tmp18_;
						_tmp15_ = item;
						_tmp16_ = (gint64) _tmp15_;
						_tmp17_ = __int64_dup0 (&_tmp16_);
						casted = _tmp17_;
						_tmp18_ = casted;
						if (_tmp18_ != NULL) {
							JsonArray* _tmp19_;
							gint64* _tmp20_;
							_tmp19_ = json_array;
							_tmp20_ = casted;
							json_array_add_int_element (_tmp19_, *_tmp20_);
						}
						_g_free0 (casted);
						break;
					}
					case G_TYPE_OBJECT:
					{
						JsonNode* node = NULL;
						gconstpointer _tmp21_;
						JsonNode* _tmp22_;
						JsonArray* _tmp23_;
						JsonNode* _tmp24_;
						JsonNode* _tmp25_;
						_tmp21_ = item;
						_tmp22_ = json_gobject_serialize (G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, G_TYPE_OBJECT) ? ((GObject*) _tmp21_) : NULL);
						node = _tmp22_;
						_tmp23_ = json_array;
						_tmp24_ = node;
						_tmp25_ = __vala_JsonNode_copy0 (_tmp24_);
						json_array_add_element (_tmp23_, _tmp25_);
						__vala_JsonNode_free0 (node);
						break;
					}
					default:
					break;
				}
				((item == NULL) || (t_destroy_func == NULL)) ? NULL : (item = (t_destroy_func (item), NULL));
			}
		}
	}
	result = json_array;
	return result;
}

/**
         * Changes the `member_name` to the specified value if their types match
         */
static gpointer
_g_variant_ref0 (gpointer self)
{
	return self ? g_variant_ref (self) : NULL;
}

static Block4Data*
block4_data_ref (Block4Data* _data4_)
{
	g_atomic_int_inc (&_data4_->_ref_count_);
	return _data4_;
}

static void
block4_data_unref (void * _userdata_)
{
	Block4Data* _data4_;
	_data4_ = (Block4Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
		SwayNotificationCenterConfigModel* self;
		self = _data4_->self;
		_g_free0 (_data4_->member_name);
		_g_variant_unref0 (_data4_->value);
		_g_object_unref0 (self);
		g_slice_free (Block4Data, _data4_);
	}
}

static void
__lambda98_ (Block4Data* _data4_,
             JsonNode* node)
{
	SwayNotificationCenterConfigModel* self;
	JsonObject* obj = NULL;
	JsonObject* _tmp0_;
	JsonObject* _tmp1_;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	GQuark _tmp6_ = 0U;
	static GQuark _tmp5_label0 = 0;
	static GQuark _tmp5_label1 = 0;
	static GQuark _tmp5_label2 = 0;
	self = _data4_->self;
	g_return_if_fail (node != NULL);
	_tmp0_ = json_node_get_object (node);
	obj = _tmp0_;
	_tmp1_ = obj;
	if (_tmp1_ == NULL) {
		return;
	}
	_tmp2_ = g_variant_get_type_string (_data4_->value);
	g_debug ("configModel.vala:1333: Config change: %s %s", _data4_->member_name, _tmp2_);
	_tmp3_ = g_variant_get_type_string (_data4_->value);
	_tmp4_ = _tmp3_;
	_tmp6_ = (NULL == _tmp4_) ? 0 : g_quark_from_string (_tmp4_);
	if (_tmp6_ == ((0 != _tmp5_label0) ? _tmp5_label0 : (_tmp5_label0 = g_quark_from_static_string ("i")))) {
		switch (0) {
			default:
			{
				gint val = 0;
				JsonObject* _tmp7_;
				val = (gint) g_variant_get_int32 (_data4_->value);
				_tmp7_ = obj;
				json_object_set_int_member (_tmp7_, _data4_->member_name, (gint64) val);
				g_debug ("configModel.vala:1339: Config changed %s", _data4_->member_name);
				break;
			}
		}
	} else if (_tmp6_ == ((0 != _tmp5_label1) ? _tmp5_label1 : (_tmp5_label1 = g_quark_from_static_string ("s")))) {
		switch (0) {
			default:
			{
				gchar* val = NULL;
				const gchar* _tmp8_;
				gchar* _tmp9_;
				JsonObject* _tmp10_;
				const gchar* _tmp11_;
				_tmp8_ = g_variant_get_string (_data4_->value, NULL);
				_tmp9_ = g_strdup (_tmp8_);
				val = _tmp9_;
				_tmp10_ = obj;
				_tmp11_ = val;
				json_object_set_string_member (_tmp10_, _data4_->member_name, _tmp11_);
				g_debug ("configModel.vala:1344: Config changed %s", _data4_->member_name);
				_g_free0 (val);
				break;
			}
		}
	} else if (_tmp6_ == ((0 != _tmp5_label2) ? _tmp5_label2 : (_tmp5_label2 = g_quark_from_static_string ("b")))) {
		switch (0) {
			default:
			{
				gboolean val = FALSE;
				JsonObject* _tmp12_;
				val = g_variant_get_boolean (_data4_->value);
				_tmp12_ = obj;
				json_object_set_boolean_member (_tmp12_, _data4_->member_name, val);
				g_debug ("configModel.vala:1349: Config changed %s", _data4_->member_name);
				break;
			}
		}
	}
}

static void
___lambda98__sway_notification_center_config_model_modify_node (JsonNode* node,
                                                                gpointer self)
{
	__lambda98_ (self, node);
}

void
sway_notification_center_config_model_change_value (SwayNotificationCenterConfigModel* self,
                                                    const gchar* member_name,
                                                    GVariant* value,
                                                    gboolean write,
                                                    const gchar* path)
{
	Block4Data* _data4_;
	gchar* _tmp0_;
	GVariant* _tmp1_;
	gchar* _tmp2_;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	g_return_if_fail (member_name != NULL);
	g_return_if_fail (value != NULL);
	_data4_ = g_slice_new0 (Block4Data);
	_data4_->_ref_count_ = 1;
	_data4_->self = g_object_ref (self);
	_tmp0_ = g_strdup (member_name);
	_g_free0 (_data4_->member_name);
	_data4_->member_name = _tmp0_;
	_tmp1_ = _g_variant_ref0 (value);
	_g_variant_unref0 (_data4_->value);
	_data4_->value = _tmp1_;
	sway_notification_center_config_model_reload_config (___lambda98__sway_notification_center_config_model_modify_node, _data4_);
	if (!write) {
		g_debug ("configModel.vala:1355: Skipped writing new config to %s", path);
		block4_data_unref (_data4_);
		_data4_ = NULL;
		return;
	}
	_tmp2_ = g_strdup (path);
	if (sway_notification_center_config_model_write_to_file (self, _tmp2_)) {
		g_debug ("configModel.vala:1359: Successfully wrote to %s", path);
	} else {
		g_critical ("configModel.vala:1361: ERROR WRITING TO %s", path);
	}
	block4_data_unref (_data4_);
	_data4_ = NULL;
}

/**
         * Writes and replaces settings with the new settings in `path`. If
         * `path` is "null", the default user accessible config will be used
         * ("~/.config/swaync/config.json")
         */
static guint8*
string_get_data (const gchar* self,
                 gint* result_length1)
{
	guint8* result;
	guint8* res = NULL;
	gint res_length1;
	gint _res_size_;
	gint _tmp0_;
	gint _tmp1_;
	guint8* _tmp2_;
	gint _tmp2__length1;
	g_return_val_if_fail (self != NULL, NULL);
	res = (guint8*) self;
	res_length1 = -1;
	_res_size_ = res_length1;
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	res_length1 = (gint) _tmp1_;
	_tmp2_ = res;
	_tmp2__length1 = res_length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static gboolean
sway_notification_center_config_model_write_to_file (SwayNotificationCenterConfigModel* self,
                                                     gchar* path)
{
	gboolean _tmp33_ = FALSE;
	GError* _inner_error0_ = NULL;
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	{
		GFile* file = NULL;
		GFile* _tmp18_;
		gchar* data = NULL;
		SwayNotificationCenterConfigModel* _tmp19_;
		SwayNotificationCenterConfigModel* _tmp20_;
		gchar* _tmp21_;
		gboolean _tmp22_ = FALSE;
		GFile* _tmp23_;
		const gchar* _tmp24_;
		guint8* _tmp25_;
		gint _tmp25__length1;
		gint _tmp26_ = 0;
		guint8* _tmp27_;
		gint _tmp27__length1;
		if (path == NULL) {
			gchar* dir_path = NULL;
			gchar* _tmp0_;
			gchar* _tmp1_;
			const gchar* _tmp2_;
			gchar* _tmp3_;
			gchar* _tmp4_;
			gchar* _tmp5_;
			gchar* _tmp6_;
			const gchar* _tmp7_;
			gchar* _tmp8_;
			GFile* dir = NULL;
			const gchar* _tmp9_;
			GFile* _tmp10_;
			GFile* _tmp11_;
			GFile* file = NULL;
			GFile* _tmp13_;
			GFile* _tmp14_;
			_tmp0_ = g_strdup_printf ("%c", G_DIR_SEPARATOR);
			_tmp1_ = _tmp0_;
			_tmp2_ = g_get_user_config_dir ();
			_tmp3_ = g_build_path (_tmp1_, _tmp2_, "swaync", NULL);
			_tmp4_ = _tmp3_;
			_g_free0 (_tmp1_);
			dir_path = _tmp4_;
			_tmp5_ = g_strdup_printf ("%c", G_DIR_SEPARATOR);
			_tmp6_ = _tmp5_;
			_tmp7_ = dir_path;
			_tmp8_ = g_build_path (_tmp6_, _tmp7_, "config.json", NULL);
			_g_free0 (path);
			path = _tmp8_;
			_g_free0 (_tmp6_);
			_tmp9_ = dir_path;
			_tmp10_ = g_file_new_for_path (_tmp9_);
			dir = _tmp10_;
			_tmp11_ = dir;
			if (!g_file_query_exists (_tmp11_, NULL)) {
				GFile* _tmp12_;
				_tmp12_ = dir;
				g_file_make_directory (_tmp12_, NULL, &_inner_error0_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					_g_object_unref0 (dir);
					_g_free0 (dir_path);
					goto __catch0_g_error;
				}
			}
			_tmp13_ = g_file_new_for_path (path);
			file = _tmp13_;
			_tmp14_ = file;
			if (!g_file_query_exists (_tmp14_, NULL)) {
				GFile* _tmp15_;
				GFileOutputStream* _tmp16_;
				GFileOutputStream* _tmp17_;
				_tmp15_ = file;
				_tmp16_ = g_file_create (_tmp15_, G_FILE_CREATE_NONE, NULL, &_inner_error0_);
				_tmp17_ = _tmp16_;
				_g_object_unref0 (_tmp17_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					_g_object_unref0 (file);
					_g_object_unref0 (dir);
					_g_free0 (dir_path);
					goto __catch0_g_error;
				}
			}
			_g_object_unref0 (file);
			_g_object_unref0 (dir);
			_g_free0 (dir_path);
		}
		_tmp18_ = g_file_new_for_path (path);
		file = _tmp18_;
		_tmp19_ = sway_notification_center_config_model_get_instance ();
		_tmp20_ = _tmp19_;
		_tmp21_ = sway_notification_center_config_model_to_string (_tmp20_);
		data = _tmp21_;
		_tmp23_ = file;
		_tmp24_ = data;
		_tmp25_ = string_get_data (_tmp24_, &_tmp26_);
		_tmp25__length1 = _tmp26_;
		_tmp27_ = _tmp25_;
		_tmp27__length1 = _tmp25__length1;
		_tmp22_ = g_file_replace_contents (_tmp23_, (const char*) _tmp27_, (gsize) _tmp27__length1, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL, NULL, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (data);
			_g_object_unref0 (file);
			goto __catch0_g_error;
		}
		result = _tmp22_;
		_g_free0 (data);
		_g_object_unref0 (file);
		_g_free0 (path);
		return result;
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		FILE* _tmp28_;
		GError* _tmp29_;
		const gchar* _tmp30_;
		gchar* _tmp31_;
		gchar* _tmp32_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp28_ = stderr;
		_tmp29_ = e;
		_tmp30_ = _tmp29_->message;
		_tmp31_ = g_strconcat (_tmp30_, "\n", NULL);
		_tmp32_ = _tmp31_;
		fprintf (_tmp28_, "%s", _tmp32_);
		_g_free0 (_tmp32_);
		result = FALSE;
		_g_error_free0 (e);
		_g_free0 (path);
		return result;
	}
	__finally0:
	_g_free0 (path);
	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 _tmp33_;
}

SwayNotificationCenterConfigModel*
sway_notification_center_config_model_construct (GType object_type)
{
	SwayNotificationCenterConfigModel * self = NULL;
	self = (SwayNotificationCenterConfigModel*) g_object_new (object_type, NULL);
	return self;
}

SwayNotificationCenterConfigModel*
sway_notification_center_config_model_new (void)
{
	return sway_notification_center_config_model_construct (SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL);
}

SwayNotificationCenterConfigModel*
sway_notification_center_config_model_get_instance (void)
{
	SwayNotificationCenterConfigModel* result;
	SwayNotificationCenterConfigModel* _tmp0_;
	const gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	SwayNotificationCenterConfigModel* _tmp6_;
	_tmp0_ = sway_notification_center_config_model__instance;
	if (_tmp0_ == NULL) {
		SwayNotificationCenterConfigModel* _tmp1_;
		_tmp1_ = sway_notification_center_config_model_new ();
		if (_tmp1_) {
			g_object_set_data ((GObject *) _tmp1_, "vala-creation-function", "SwayNotificationCenter.ConfigModel.instance");
		}
		_g_object_unref0 (sway_notification_center_config_model__instance);
		sway_notification_center_config_model__instance = _tmp1_;
	}
	_tmp2_ = sway_notification_center_config_model__path;
	_tmp3_ = strlen (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_ <= 0) {
		gchar* _tmp5_;
		_tmp5_ = sway_notification_center_functions_get_config_path (NULL);
		_g_free0 (sway_notification_center_config_model__path);
		sway_notification_center_config_model__path = _tmp5_;
	}
	_tmp6_ = sway_notification_center_config_model__instance;
	result = _tmp6_;
	return result;
}

gboolean
sway_notification_center_config_model_get_ignore_gtk_theme (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_ignore_gtk_theme;
	return result;
}

void
sway_notification_center_config_model_set_ignore_gtk_theme (SwayNotificationCenterConfigModel* self,
                                                            gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_ignore_gtk_theme (self);
	if (old_value != value) {
		self->priv->_ignore_gtk_theme = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY]);
	}
}

SwayNotificationCenterPositionX
sway_notification_center_config_model_get_positionX (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterPositionX result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_positionX;
	return result;
}

void
sway_notification_center_config_model_set_positionX (SwayNotificationCenterConfigModel* self,
                                                     SwayNotificationCenterPositionX value)
{
	SwayNotificationCenterPositionX old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_positionX (self);
	if (old_value != value) {
		self->priv->_positionX = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY]);
	}
}

SwayNotificationCenterPositionY
sway_notification_center_config_model_get_positionY (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterPositionY result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_positionY;
	return result;
}

void
sway_notification_center_config_model_set_positionY (SwayNotificationCenterConfigModel* self,
                                                     SwayNotificationCenterPositionY value)
{
	SwayNotificationCenterPositionY old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_positionY (self);
	if (old_value != value) {
		self->priv->_positionY = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY]);
	}
}

SwayNotificationCenterLayer
sway_notification_center_config_model_get_layer (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterLayer result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_layer;
	return result;
}

void
sway_notification_center_config_model_set_layer (SwayNotificationCenterConfigModel* self,
                                                 SwayNotificationCenterLayer value)
{
	SwayNotificationCenterLayer old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_layer (self);
	if (old_value != value) {
		self->priv->_layer = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_layer_shell (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_layer_shell;
	return result;
}

void
sway_notification_center_config_model_set_layer_shell (SwayNotificationCenterConfigModel* self,
                                                       gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_layer_shell (self);
	if (old_value != value) {
		self->priv->_layer_shell = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_layer_shell_cover_screen (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_layer_shell_cover_screen;
	return result;
}

void
sway_notification_center_config_model_set_layer_shell_cover_screen (SwayNotificationCenterConfigModel* self,
                                                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_layer_shell_cover_screen (self);
	if (old_value != value) {
		self->priv->_layer_shell_cover_screen = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY]);
	}
}

SwayNotificationCenterCssPriority
sway_notification_center_config_model_get_cssPriority (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterCssPriority result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_cssPriority;
	return result;
}

void
sway_notification_center_config_model_set_cssPriority (SwayNotificationCenterConfigModel* self,
                                                       SwayNotificationCenterCssPriority value)
{
	SwayNotificationCenterCssPriority old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_cssPriority (self);
	if (old_value != value) {
		self->priv->_cssPriority = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_timeout (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_timeout;
	return result;
}

void
sway_notification_center_config_model_set_timeout (SwayNotificationCenterConfigModel* self,
                                                   gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_DEFAULT;
	} else {
		_tmp0_ = value;
	}
	self->priv->_timeout = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY]);
}

gint
sway_notification_center_config_model_get_timeout_low (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_timeout_low;
	return result;
}

void
sway_notification_center_config_model_set_timeout_low (SwayNotificationCenterConfigModel* self,
                                                       gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_DEFAULT;
	} else {
		_tmp0_ = value;
	}
	self->priv->_timeout_low = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY]);
}

gint
sway_notification_center_config_model_get_timeout_critical (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_timeout_critical;
	return result;
}

void
sway_notification_center_config_model_set_timeout_critical (SwayNotificationCenterConfigModel* self,
                                                            gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_DEFAULT;
	} else {
		_tmp0_ = value;
	}
	self->priv->_timeout_critical = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY]);
}

gint
sway_notification_center_config_model_get_transition_time (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_transition_time;
	return result;
}

void
sway_notification_center_config_model_set_transition_time (SwayNotificationCenterConfigModel* self,
                                                           gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_DEFAULT;
	} else {
		_tmp0_ = value;
	}
	self->priv->_transition_time = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY]);
}

gboolean
sway_notification_center_config_model_get_keyboard_shortcuts (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_keyboard_shortcuts;
	return result;
}

void
sway_notification_center_config_model_set_keyboard_shortcuts (SwayNotificationCenterConfigModel* self,
                                                              gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_keyboard_shortcuts (self);
	if (old_value != value) {
		self->priv->_keyboard_shortcuts = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_notification_grouping (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_notification_grouping;
	return result;
}

void
sway_notification_center_config_model_set_notification_grouping (SwayNotificationCenterConfigModel* self,
                                                                 gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_grouping (self);
	if (old_value != value) {
		self->priv->_notification_grouping = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY]);
	}
}

SwayNotificationCenterImageVisibility
sway_notification_center_config_model_get_image_visibility (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterImageVisibility result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_image_visibility;
	return result;
}

void
sway_notification_center_config_model_set_image_visibility (SwayNotificationCenterConfigModel* self,
                                                            SwayNotificationCenterImageVisibility value)
{
	SwayNotificationCenterImageVisibility old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_image_visibility (self);
	if (old_value != value) {
		self->priv->_image_visibility = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_notification_window_width (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_notification_window_width;
	return result;
}

void
sway_notification_center_config_model_set_notification_window_width (SwayNotificationCenterConfigModel* self,
                                                                     gint value)
{
	gint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_window_width (self);
	if (old_value != value) {
		self->priv->_notification_window_width = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_notification_window_height (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_notification_window_height;
	return result;
}

void
sway_notification_center_config_model_set_notification_window_height (SwayNotificationCenterConfigModel* self,
                                                                      gint value)
{
	gint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_window_height (self);
	if (old_value != value) {
		self->priv->_notification_window_height = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY]);
	}
}

const gchar*
sway_notification_center_config_model_get_notification_window_preferred_output (SwayNotificationCenterConfigModel* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_notification_window_preferred_output;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_notification_window_preferred_output (SwayNotificationCenterConfigModel* self,
                                                                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_window_preferred_output (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_notification_window_preferred_output);
		self->priv->_notification_window_preferred_output = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_hide_on_clear (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_hide_on_clear;
	return result;
}

void
sway_notification_center_config_model_set_hide_on_clear (SwayNotificationCenterConfigModel* self,
                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_hide_on_clear (self);
	if (old_value != value) {
		self->priv->_hide_on_clear = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_hide_on_action (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_hide_on_action;
	return result;
}

void
sway_notification_center_config_model_set_hide_on_action (SwayNotificationCenterConfigModel* self,
                                                          gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_hide_on_action (self);
	if (old_value != value) {
		self->priv->_hide_on_action = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY]);
	}
}

const gchar*
sway_notification_center_config_model_get_text_empty (SwayNotificationCenterConfigModel* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_text_empty;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_text_empty (SwayNotificationCenterConfigModel* self,
                                                      const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_text_empty (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_text_empty);
		self->priv->_text_empty = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY]);
	}
}

SwayNotificationCenterPositionX
sway_notification_center_config_model_get_control_center_positionX (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterPositionX result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_control_center_positionX;
	return result;
}

void
sway_notification_center_config_model_set_control_center_positionX (SwayNotificationCenterConfigModel* self,
                                                                    SwayNotificationCenterPositionX value)
{
	SwayNotificationCenterPositionX old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_control_center_positionX (self);
	if (old_value != value) {
		self->priv->_control_center_positionX = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY]);
	}
}

SwayNotificationCenterPositionY
sway_notification_center_config_model_get_control_center_positionY (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterPositionY result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_control_center_positionY;
	return result;
}

void
sway_notification_center_config_model_set_control_center_positionY (SwayNotificationCenterConfigModel* self,
                                                                    SwayNotificationCenterPositionY value)
{
	SwayNotificationCenterPositionY old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_control_center_positionY (self);
	if (old_value != value) {
		self->priv->_control_center_positionY = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_control_center_margin_top (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->control_center_margin_top_;
	return result;
}

void
sway_notification_center_config_model_set_control_center_margin_top (SwayNotificationCenterConfigModel* self,
                                                                     gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = 0;
	} else {
		_tmp0_ = value;
	}
	self->priv->control_center_margin_top_ = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY]);
}

gint
sway_notification_center_config_model_get_control_center_margin_bottom (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->control_center_margin_bottom_;
	return result;
}

void
sway_notification_center_config_model_set_control_center_margin_bottom (SwayNotificationCenterConfigModel* self,
                                                                        gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = 0;
	} else {
		_tmp0_ = value;
	}
	self->priv->control_center_margin_bottom_ = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY]);
}

gint
sway_notification_center_config_model_get_control_center_margin_left (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->control_center_margin_left_;
	return result;
}

void
sway_notification_center_config_model_set_control_center_margin_left (SwayNotificationCenterConfigModel* self,
                                                                      gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = 0;
	} else {
		_tmp0_ = value;
	}
	self->priv->control_center_margin_left_ = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY]);
}

gint
sway_notification_center_config_model_get_control_center_margin_right (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->control_center_margin_right_;
	return result;
}

void
sway_notification_center_config_model_set_control_center_margin_right (SwayNotificationCenterConfigModel* self,
                                                                       gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 0) {
		_tmp0_ = 0;
	} else {
		_tmp0_ = value;
	}
	self->priv->control_center_margin_right_ = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY]);
}

SwayNotificationCenterLayer
sway_notification_center_config_model_get_control_center_layer (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterLayer result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_control_center_layer;
	return result;
}

void
sway_notification_center_config_model_set_control_center_layer (SwayNotificationCenterConfigModel* self,
                                                                SwayNotificationCenterLayer value)
{
	SwayNotificationCenterLayer old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_control_center_layer (self);
	if (old_value != value) {
		self->priv->_control_center_layer = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_control_center_exclusive_zone (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_control_center_exclusive_zone;
	return result;
}

void
sway_notification_center_config_model_set_control_center_exclusive_zone (SwayNotificationCenterConfigModel* self,
                                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_control_center_exclusive_zone (self);
	if (old_value != value) {
		self->priv->_control_center_exclusive_zone = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY]);
	}
}

SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_get_categories_settings (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterOrderedHashTable* result;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_categories_settings;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_categories_settings (SwayNotificationCenterConfigModel* self,
                                                               SwayNotificationCenterOrderedHashTable* value)
{
	SwayNotificationCenterOrderedHashTable* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_categories_settings (self);
	if (old_value != value) {
		SwayNotificationCenterOrderedHashTable* _tmp0_;
		_tmp0_ = _sway_notification_center_ordered_hash_table_ref0 (value);
		_sway_notification_center_ordered_hash_table_unref0 (self->priv->_categories_settings);
		self->priv->_categories_settings = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY]);
	}
}

SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_get_notification_action_filter (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterOrderedHashTable* result;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_notification_action_filter;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_notification_action_filter (SwayNotificationCenterConfigModel* self,
                                                                      SwayNotificationCenterOrderedHashTable* value)
{
	SwayNotificationCenterOrderedHashTable* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_action_filter (self);
	if (old_value != value) {
		SwayNotificationCenterOrderedHashTable* _tmp0_;
		_tmp0_ = _sway_notification_center_ordered_hash_table_ref0 (value);
		_sway_notification_center_ordered_hash_table_unref0 (self->priv->_notification_action_filter);
		self->priv->_notification_action_filter = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY]);
	}
}

SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_get_notification_visibility (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterOrderedHashTable* result;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_notification_visibility;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_notification_visibility (SwayNotificationCenterConfigModel* self,
                                                                   SwayNotificationCenterOrderedHashTable* value)
{
	SwayNotificationCenterOrderedHashTable* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_visibility (self);
	if (old_value != value) {
		SwayNotificationCenterOrderedHashTable* _tmp0_;
		_tmp0_ = _sway_notification_center_ordered_hash_table_ref0 (value);
		_sway_notification_center_ordered_hash_table_unref0 (self->priv->_notification_visibility);
		self->priv->_notification_visibility = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY]);
	}
}

SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_get_scripts (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterOrderedHashTable* result;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_scripts;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_scripts (SwayNotificationCenterConfigModel* self,
                                                   SwayNotificationCenterOrderedHashTable* value)
{
	SwayNotificationCenterOrderedHashTable* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_scripts (self);
	if (old_value != value) {
		SwayNotificationCenterOrderedHashTable* _tmp0_;
		_tmp0_ = _sway_notification_center_ordered_hash_table_ref0 (value);
		_sway_notification_center_ordered_hash_table_unref0 (self->priv->_scripts);
		self->priv->_scripts = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_script_fail_notify (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_script_fail_notify;
	return result;
}

void
sway_notification_center_config_model_set_script_fail_notify (SwayNotificationCenterConfigModel* self,
                                                              gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_script_fail_notify (self);
	if (old_value != value) {
		self->priv->_script_fail_notify = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_fit_to_screen (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_fit_to_screen;
	return result;
}

void
sway_notification_center_config_model_set_fit_to_screen (SwayNotificationCenterConfigModel* self,
                                                         gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_fit_to_screen (self);
	if (old_value != value) {
		self->priv->_fit_to_screen = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_relative_timestamps (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_relative_timestamps;
	return result;
}

void
sway_notification_center_config_model_set_relative_timestamps (SwayNotificationCenterConfigModel* self,
                                                               gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_relative_timestamps (self);
	if (old_value != value) {
		self->priv->_relative_timestamps = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_control_center_height (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_control_center_height;
	return result;
}

void
sway_notification_center_config_model_set_control_center_height (SwayNotificationCenterConfigModel* self,
                                                                 gint value)
{
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value < 1) {
		self->priv->_control_center_height = -1;
		return;
	}
	self->priv->_control_center_height = value;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY]);
}

gint
sway_notification_center_config_model_get_control_center_width (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_control_center_width;
	return result;
}

void
sway_notification_center_config_model_set_control_center_width (SwayNotificationCenterConfigModel* self,
                                                                gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value > SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MINIMUM_WIDTH) {
		_tmp0_ = value;
	} else {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MINIMUM_WIDTH;
	}
	self->priv->_control_center_width = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY]);
}

const gchar*
sway_notification_center_config_model_get_control_center_preferred_output (SwayNotificationCenterConfigModel* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_control_center_preferred_output;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_control_center_preferred_output (SwayNotificationCenterConfigModel* self,
                                                                           const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_control_center_preferred_output (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_control_center_preferred_output);
		self->priv->_control_center_preferred_output = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_notification_2fa_action (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_notification_2fa_action;
	return result;
}

void
sway_notification_center_config_model_set_notification_2fa_action (SwayNotificationCenterConfigModel* self,
                                                                   gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_2fa_action (self);
	if (old_value != value) {
		self->priv->_notification_2fa_action = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY]);
	}
}

gboolean
sway_notification_center_config_model_get_notification_inline_replies (SwayNotificationCenterConfigModel* self)
{
	gboolean result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), FALSE);
	result = self->priv->_notification_inline_replies;
	return result;
}

void
sway_notification_center_config_model_set_notification_inline_replies (SwayNotificationCenterConfigModel* self,
                                                                       gboolean value)
{
	gboolean old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_inline_replies (self);
	if (old_value != value) {
		self->priv->_notification_inline_replies = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_notification_icon_size (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_notification_icon_size;
	return result;
}

void
sway_notification_center_config_model_set_notification_icon_size (SwayNotificationCenterConfigModel* self,
                                                                  gint value)
{
	gint old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_notification_icon_size (self);
	if (old_value != value) {
		self->priv->_notification_icon_size = value;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY]);
	}
}

gint
sway_notification_center_config_model_get_notification_body_image_height (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_notification_body_image_height;
	return result;
}

void
sway_notification_center_config_model_set_notification_body_image_height (SwayNotificationCenterConfigModel* self,
                                                                          gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value > SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_HEIGHT) {
		_tmp0_ = value;
	} else {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_HEIGHT;
	}
	self->priv->_notification_body_image_height = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY]);
}

gint
sway_notification_center_config_model_get_notification_body_image_width (SwayNotificationCenterConfigModel* self)
{
	gint result;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), 0);
	result = self->priv->_notification_body_image_width;
	return result;
}

void
sway_notification_center_config_model_set_notification_body_image_width (SwayNotificationCenterConfigModel* self,
                                                                         gint value)
{
	gint _tmp0_ = 0;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	if (value > SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_WIDTH) {
		_tmp0_ = value;
	} else {
		_tmp0_ = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_MINIMUM_WIDTH;
	}
	self->priv->_notification_body_image_width = _tmp0_;
	g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY]);
}

GPtrArray*
sway_notification_center_config_model_get_widgets (SwayNotificationCenterConfigModel* self)
{
	GPtrArray* result;
	GPtrArray* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_widgets;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_widgets (SwayNotificationCenterConfigModel* self,
                                                   GPtrArray* value)
{
	GPtrArray* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_widgets (self);
	if (old_value != value) {
		GPtrArray* _tmp0_;
		_tmp0_ = _g_ptr_array_ref0 (value);
		_g_ptr_array_unref0 (self->priv->_widgets);
		self->priv->_widgets = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY]);
	}
}

SwayNotificationCenterOrderedHashTable*
sway_notification_center_config_model_get_widget_config (SwayNotificationCenterConfigModel* self)
{
	SwayNotificationCenterOrderedHashTable* result;
	SwayNotificationCenterOrderedHashTable* _tmp0_;
	g_return_val_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self), NULL);
	_tmp0_ = self->priv->_widget_config;
	result = _tmp0_;
	return result;
}

void
sway_notification_center_config_model_set_widget_config (SwayNotificationCenterConfigModel* self,
                                                         SwayNotificationCenterOrderedHashTable* value)
{
	SwayNotificationCenterOrderedHashTable* old_value;
	g_return_if_fail (SWAY_NOTIFICATION_CENTER_IS_CONFIG_MODEL (self));
	old_value = sway_notification_center_config_model_get_widget_config (self);
	if (old_value != value) {
		SwayNotificationCenterOrderedHashTable* _tmp0_;
		_tmp0_ = _sway_notification_center_ordered_hash_table_ref0 (value);
		_sway_notification_center_ordered_hash_table_unref0 (self->priv->_widget_config);
		self->priv->_widget_config = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY]);
	}
}

static void
sway_notification_center_config_model_class_init (SwayNotificationCenterConfigModelClass * klass,
                                                  gpointer klass_data)
{
	gchar* _tmp0_;
	sway_notification_center_config_model_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &SwayNotificationCenterConfigModel_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_sway_notification_center_config_model_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_sway_notification_center_config_model_set_property;
	G_OBJECT_CLASS (klass)->finalize = sway_notification_center_config_model_finalize;
	/** Unsets the GTK_THEME env variable when true */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY] = g_param_spec_boolean ("ignore-gtk-theme", "ignore-gtk-theme", "ignore-gtk-theme", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** The notifications and controlcenters horizontal alignment */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY] = g_param_spec_enum ("positionX", "positionX", "positionX", SWAY_NOTIFICATION_CENTER_TYPE_POSITION_X, SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** The notifications and controlcenters vertical alignment */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY] = g_param_spec_enum ("positionY", "positionY", "positionY", SWAY_NOTIFICATION_CENTER_TYPE_POSITION_Y, SWAY_NOTIFICATION_CENTER_POSITION_Y_TOP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Layer of notification window */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY] = g_param_spec_enum ("layer", "layer", "layer", SWAY_NOTIFICATION_CENTER_TYPE_LAYER, SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * Wether or not the windows should be opened as layer-shell surfaces
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY] = g_param_spec_boolean ("layer-shell", "layer-shell", "layer-shell", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * Wether or not the windows should cover the whole screen when
	         * layer-shell is used.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY] = g_param_spec_boolean ("layer-shell-cover-screen", "layer-shell-cover-screen", "layer-shell-cover-screen", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** The CSS loading priority */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY] = g_param_spec_enum ("cssPriority", "cssPriority", "cssPriority", SWAY_NOTIFICATION_CENTER_TYPE_CSS_PRIORITY, SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY] = g_param_spec_int ("timeout", "timeout", "timeout", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY] = g_param_spec_int ("timeout-low", "timeout-low", "timeout-low", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY] = g_param_spec_int ("timeout-critical", "timeout-critical", "timeout-critical", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY] = g_param_spec_int ("transition-time", "transition-time", "transition-time", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY] = g_param_spec_boolean ("keyboard-shortcuts", "keyboard-shortcuts", "keyboard-shortcuts", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * If notifications should be grouped by app name
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY] = g_param_spec_boolean ("notification-grouping", "notification-grouping", "notification-grouping", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Specifies if the notification image should be shown or not */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY] = g_param_spec_enum ("image-visibility", "image-visibility", "image-visibility", SWAY_NOTIFICATION_CENTER_TYPE_IMAGE_VISIBILITY, SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * Notification window's width, in pixels.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY] = g_param_spec_int ("notification-window-width", "notification-window-width", "notification-window-width", G_MININT, G_MAXINT, 500, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Max height of the notification in pixels */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY] = g_param_spec_int ("notification-window-height", "notification-window-height", "notification-window-height", G_MININT, G_MAXINT, -1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * The preferred output to open the notification window (popup notifications).
	         *
	         * Can either be the monitor connector name (ex: "DP-1"),
	         * or the full name, manufacturer model serial
	         * (ex: "Acer Technologies XV272U V 503023B314202").
	         *
	         * If the output is not found, the currently focused one is picked.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY] = g_param_spec_string ("notification-window-preferred-output", "notification-window-preferred-output", "notification-window-preferred-output", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Hides the control center after clearing all notifications */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY] = g_param_spec_boolean ("hide-on-clear", "hide-on-clear", "hide-on-clear", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Hides the control center when clicking on notification action */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY] = g_param_spec_boolean ("hide-on-action", "hide-on-action", "hide-on-action", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Text that appears when there are no notifications to show */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY] = g_param_spec_string ("text-empty", "text-empty", "text-empty", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** The controlcenters horizontal alignment. Supersedes `positionX` if not `NONE` */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY] = g_param_spec_enum ("control-center-positionX", "control-center-positionX", "control-center-positionX", SWAY_NOTIFICATION_CENTER_TYPE_POSITION_X, SWAY_NOTIFICATION_CENTER_POSITION_X_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** The controlcenters vertical alignment. Supersedes `positionY` if not `NONE` */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY] = g_param_spec_enum ("control-center-positionY", "control-center-positionY", "control-center-positionY", SWAY_NOTIFICATION_CENTER_TYPE_POSITION_Y, SWAY_NOTIFICATION_CENTER_POSITION_Y_NONE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY] = g_param_spec_int ("control-center-margin-top", "control-center-margin-top", "control-center-margin-top", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY] = g_param_spec_int ("control-center-margin-bottom", "control-center-margin-bottom", "control-center-margin-bottom", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY] = g_param_spec_int ("control-center-margin-left", "control-center-margin-left", "control-center-margin-left", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY] = g_param_spec_int ("control-center-margin-right", "control-center-margin-right", "control-center-margin-right", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Layer of Control Center window */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY] = g_param_spec_enum ("control-center-layer", "control-center-layer", "control-center-layer", SWAY_NOTIFICATION_CENTER_TYPE_LAYER, SWAY_NOTIFICATION_CENTER_LAYER_TOP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY] = g_param_spec_boolean ("control-center-exclusive-zone", "control-center-exclusive-zone", "control-center-exclusive-zone", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Categories settings */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY] = sway_notification_center_param_spec_ordered_hash_table ("categories-settings", "categories-settings", "categories-settings", SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Filter Notification Actions */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY] = sway_notification_center_param_spec_ordered_hash_table ("notification-action-filter", "notification-action-filter", "notification-action-filter", SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Notification Status */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY] = sway_notification_center_param_spec_ordered_hash_table ("notification-visibility", "notification-visibility", "notification-visibility", SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Scripts */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY] = sway_notification_center_param_spec_ordered_hash_table ("scripts", "scripts", "scripts", SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Show notification if script fails */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY] = g_param_spec_boolean ("script-fail-notify", "script-fail-notify", "script-fail-notify", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Whether to expand the notification center across both edges of the screen */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY] = g_param_spec_boolean ("fit-to-screen", "fit-to-screen", "fit-to-screen", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * Display notification timestamp relative to now e.g. "26 minutes ago".
	         * If false, a local iso8601-formatted absolute timestamp is displayed.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY] = g_param_spec_boolean ("relative-timestamps", "relative-timestamps", "relative-timestamps", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY] = g_param_spec_int ("control-center-height", "control-center-height", "control-center-height", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY] = g_param_spec_int ("control-center-width", "control-center-width", "control-center-width", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * The preferred output to open the control center.
	         *
	         * Can either be the monitor connector name (ex: "DP-1"),
	         * or the full name, manufacturer model serial
	         * (ex: "Acer Technologies XV272U V 503023B314202").
	         *
	         * If the output is not found, the currently focused one is picked.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY] = g_param_spec_string ("control-center-preferred-output", "control-center-preferred-output", "control-center-preferred-output", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * If each notification should display a 'COPY \"1234\"' action
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY] = g_param_spec_boolean ("notification-2fa-action", "notification-2fa-action", "notification-2fa-action", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * If notifications should display a text field to reply if the
	         * sender requests it.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY] = g_param_spec_boolean ("notification-inline-replies", "notification-inline-replies", "notification-inline-replies", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * Notification icon size, in pixels.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY] = g_param_spec_int ("notification-icon-size", "notification-icon-size", "notification-icon-size", G_MININT, G_MAXINT, -1, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_DEPRECATED));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY] = g_param_spec_int ("notification-body-image-height", "notification-body-image-height", "notification-body-image-height", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY] = g_param_spec_int ("notification-body-image-width", "notification-body-image-width", "notification-body-image-width", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Widgets to show in ControlCenter */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY] = g_param_spec_boxed ("widgets", "widgets", "widgets", G_TYPE_PTR_ARRAY, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/** Widgets to show in ControlCenter */
	g_object_class_install_property (G_OBJECT_CLASS (klass), SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY, sway_notification_center_config_model_properties[SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY] = sway_notification_center_param_spec_ordered_hash_table ("widget-config", "widget-config", "widget-config", SWAY_NOTIFICATION_CENTER_TYPE_ORDERED_HASH_TABLE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	_tmp0_ = g_strdup ("");
	sway_notification_center_config_model__path = _tmp0_;
}

static void
sway_notification_center_config_model_json_serializable_interface_init (JsonSerializableIface * iface,
                                                                        gpointer iface_data)
{
	sway_notification_center_config_model_json_serializable_parent_iface = g_type_interface_peek_parent (iface);
	iface->deserialize_property = (gboolean (*) (JsonSerializable*, const gchar*, GValue*, GParamSpec*, JsonNode*)) sway_notification_center_config_model_real_deserialize_property;
	iface->serialize_property = (JsonNode* (*) (JsonSerializable*, const gchar*, GValue*, GParamSpec*)) sway_notification_center_config_model_real_serialize_property;
}

static void
sway_notification_center_config_model_instance_init (SwayNotificationCenterConfigModel * self,
                                                     gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	SwayNotificationCenterOrderedHashTable* _tmp2_;
	SwayNotificationCenterOrderedHashTable* _tmp3_;
	SwayNotificationCenterOrderedHashTable* _tmp4_;
	SwayNotificationCenterOrderedHashTable* _tmp5_;
	gchar* _tmp6_;
	GPtrArray* _tmp7_;
	SwayNotificationCenterOrderedHashTable* _tmp8_;
	self->priv = sway_notification_center_config_model_get_instance_private (self);
	self->priv->_ignore_gtk_theme = TRUE;
	self->priv->_positionX = SWAY_NOTIFICATION_CENTER_POSITION_X_RIGHT;
	self->priv->_positionY = SWAY_NOTIFICATION_CENTER_POSITION_Y_TOP;
	self->priv->_layer = SWAY_NOTIFICATION_CENTER_LAYER_OVERLAY;
	self->priv->_layer_shell = TRUE;
	self->priv->_layer_shell_cover_screen = TRUE;
	self->priv->_cssPriority = SWAY_NOTIFICATION_CENTER_CSS_PRIORITY_USER;
	self->priv->_timeout = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_DEFAULT;
	self->priv->_timeout_low = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_DEFAULT;
	self->priv->_timeout_critical = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_DEFAULT;
	self->priv->_transition_time = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_DEFAULT;
	self->priv->_keyboard_shortcuts = TRUE;
	self->priv->_notification_grouping = TRUE;
	self->priv->_image_visibility = SWAY_NOTIFICATION_CENTER_IMAGE_VISIBILITY_WHEN_AVAILABLE;
	self->priv->_notification_window_width = 500;
	self->priv->_notification_window_height = -1;
	_tmp0_ = g_strdup ("");
	self->priv->_notification_window_preferred_output = _tmp0_;
	self->priv->_hide_on_clear = FALSE;
	self->priv->_hide_on_action = TRUE;
	_tmp1_ = g_strdup ("No Notifications");
	self->priv->_text_empty = _tmp1_;
	self->priv->_control_center_positionX = SWAY_NOTIFICATION_CENTER_POSITION_X_NONE;
	self->priv->_control_center_positionY = SWAY_NOTIFICATION_CENTER_POSITION_Y_NONE;
	self->priv->control_center_margin_top_ = 0;
	self->priv->control_center_margin_bottom_ = 0;
	self->priv->control_center_margin_left_ = 0;
	self->priv->control_center_margin_right_ = 0;
	self->priv->_control_center_layer = SWAY_NOTIFICATION_CENTER_LAYER_TOP;
	self->priv->_control_center_exclusive_zone = TRUE;
	_tmp2_ = sway_notification_center_ordered_hash_table_new (SWAY_NOTIFICATION_CENTER_TYPE_CATEGORY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	self->priv->_categories_settings = _tmp2_;
	_tmp3_ = sway_notification_center_ordered_hash_table_new (SWAY_NOTIFICATION_CENTER_TYPE_ACTION_MATCHING, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	self->priv->_notification_action_filter = _tmp3_;
	_tmp4_ = sway_notification_center_ordered_hash_table_new (SWAY_NOTIFICATION_CENTER_TYPE_NOTIFICATION_VISIBILITY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	self->priv->_notification_visibility = _tmp4_;
	_tmp5_ = sway_notification_center_ordered_hash_table_new (SWAY_NOTIFICATION_CENTER_TYPE_SCRIPT, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref);
	self->priv->_scripts = _tmp5_;
	self->priv->_script_fail_notify = TRUE;
	self->priv->_fit_to_screen = TRUE;
	self->priv->_relative_timestamps = TRUE;
	self->priv->_control_center_height = 500;
	self->priv->_control_center_width = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_DEFAULT_WIDTH;
	_tmp6_ = g_strdup ("");
	self->priv->_control_center_preferred_output = _tmp6_;
	self->priv->_notification_2fa_action = TRUE;
	self->priv->_notification_inline_replies = FALSE;
	self->priv->_notification_icon_size = -1;
	self->priv->_notification_body_image_height = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_DEFAULT_HEIGHT;
	self->priv->_notification_body_image_width = SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_DEFAULT_WIDTH;
	_tmp7_ = g_ptr_array_new_full ((guint) 0, _g_free0_);
	self->priv->_widgets = _tmp7_;
	_tmp8_ = sway_notification_center_ordered_hash_table_new (json_object_get_type (), (GBoxedCopyFunc) json_object_ref, (GDestroyNotify) json_object_unref);
	self->priv->_widget_config = _tmp8_;
}

static void
sway_notification_center_config_model_finalize (GObject * obj)
{
	SwayNotificationCenterConfigModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel);
	_g_free0 (self->priv->_notification_window_preferred_output);
	_g_free0 (self->priv->_text_empty);
	_sway_notification_center_ordered_hash_table_unref0 (self->priv->_categories_settings);
	_sway_notification_center_ordered_hash_table_unref0 (self->priv->_notification_action_filter);
	_sway_notification_center_ordered_hash_table_unref0 (self->priv->_notification_visibility);
	_sway_notification_center_ordered_hash_table_unref0 (self->priv->_scripts);
	_g_free0 (self->priv->_control_center_preferred_output);
	_g_ptr_array_unref0 (self->priv->_widgets);
	_sway_notification_center_ordered_hash_table_unref0 (self->priv->_widget_config);
	G_OBJECT_CLASS (sway_notification_center_config_model_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
sway_notification_center_config_model_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (SwayNotificationCenterConfigModelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sway_notification_center_config_model_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwayNotificationCenterConfigModel), 0, (GInstanceInitFunc) sway_notification_center_config_model_instance_init, NULL };
	static const GInterfaceInfo json_serializable_info = { (GInterfaceInitFunc) sway_notification_center_config_model_json_serializable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType sway_notification_center_config_model_type_id;
	sway_notification_center_config_model_type_id = g_type_register_static (G_TYPE_OBJECT, "SwayNotificationCenterConfigModel", &g_define_type_info, 0);
	g_type_add_interface_static (sway_notification_center_config_model_type_id, json_serializable_get_type (), &json_serializable_info);
	SwayNotificationCenterConfigModel_private_offset = g_type_add_instance_private (sway_notification_center_config_model_type_id, sizeof (SwayNotificationCenterConfigModelPrivate));
	return sway_notification_center_config_model_type_id;
}

GType
sway_notification_center_config_model_get_type (void)
{
	static gsize sway_notification_center_config_model_type_id__once = 0;
	if (g_once_init_enter (&sway_notification_center_config_model_type_id__once)) {
		GType sway_notification_center_config_model_type_id;
		sway_notification_center_config_model_type_id = sway_notification_center_config_model_get_type_once ();
		g_once_init_leave (&sway_notification_center_config_model_type_id__once, sway_notification_center_config_model_type_id);
	}
	return sway_notification_center_config_model_type_id__once;
}

static void
_vala_sway_notification_center_config_model_get_property (GObject * object,
                                                          guint property_id,
                                                          GValue * value,
                                                          GParamSpec * pspec)
{
	SwayNotificationCenterConfigModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_ignore_gtk_theme (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_positionX (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_positionY (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_layer (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_layer_shell (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_layer_shell_cover_screen (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_cssPriority (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_timeout (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_timeout_low (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_timeout_critical (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_transition_time (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_keyboard_shortcuts (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_notification_grouping (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_image_visibility (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_notification_window_width (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_notification_window_height (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY:
		g_value_set_string (value, sway_notification_center_config_model_get_notification_window_preferred_output (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_hide_on_clear (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_hide_on_action (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY:
		g_value_set_string (value, sway_notification_center_config_model_get_text_empty (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_control_center_positionX (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_control_center_positionY (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_margin_top (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_margin_bottom (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_margin_left (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_margin_right (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY:
		g_value_set_enum (value, sway_notification_center_config_model_get_control_center_layer (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_control_center_exclusive_zone (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY:
		sway_notification_center_value_set_ordered_hash_table (value, sway_notification_center_config_model_get_categories_settings (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY:
		sway_notification_center_value_set_ordered_hash_table (value, sway_notification_center_config_model_get_notification_action_filter (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY:
		sway_notification_center_value_set_ordered_hash_table (value, sway_notification_center_config_model_get_notification_visibility (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY:
		sway_notification_center_value_set_ordered_hash_table (value, sway_notification_center_config_model_get_scripts (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_script_fail_notify (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_fit_to_screen (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_relative_timestamps (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_height (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_control_center_width (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY:
		g_value_set_string (value, sway_notification_center_config_model_get_control_center_preferred_output (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_notification_2fa_action (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY:
		g_value_set_boolean (value, sway_notification_center_config_model_get_notification_inline_replies (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY:
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
		g_value_set_int (value, sway_notification_center_config_model_get_notification_icon_size (self));
G_GNUC_END_IGNORE_DEPRECATIONS
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_notification_body_image_height (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY:
		g_value_set_int (value, sway_notification_center_config_model_get_notification_body_image_width (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY:
		g_value_set_boxed (value, sway_notification_center_config_model_get_widgets (self));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY:
		sway_notification_center_value_set_ordered_hash_table (value, sway_notification_center_config_model_get_widget_config (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_sway_notification_center_config_model_set_property (GObject * object,
                                                          guint property_id,
                                                          const GValue * value,
                                                          GParamSpec * pspec)
{
	SwayNotificationCenterConfigModel * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, SWAY_NOTIFICATION_CENTER_TYPE_CONFIG_MODEL, SwayNotificationCenterConfigModel);
	switch (property_id) {
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IGNORE_GTK_THEME_PROPERTY:
		sway_notification_center_config_model_set_ignore_gtk_theme (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_X_PROPERTY:
		sway_notification_center_config_model_set_positionX (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_POSITION_Y_PROPERTY:
		sway_notification_center_config_model_set_positionY (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_PROPERTY:
		sway_notification_center_config_model_set_layer (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_PROPERTY:
		sway_notification_center_config_model_set_layer_shell (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_LAYER_SHELL_COVER_SCREEN_PROPERTY:
		sway_notification_center_config_model_set_layer_shell_cover_screen (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CSS_PRIORITY_PROPERTY:
		sway_notification_center_config_model_set_cssPriority (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_PROPERTY:
		sway_notification_center_config_model_set_timeout (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_LOW_PROPERTY:
		sway_notification_center_config_model_set_timeout_low (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TIMEOUT_CRITICAL_PROPERTY:
		sway_notification_center_config_model_set_timeout_critical (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TRANSITION_TIME_PROPERTY:
		sway_notification_center_config_model_set_transition_time (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_KEYBOARD_SHORTCUTS_PROPERTY:
		sway_notification_center_config_model_set_keyboard_shortcuts (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_GROUPING_PROPERTY:
		sway_notification_center_config_model_set_notification_grouping (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_IMAGE_VISIBILITY_PROPERTY:
		sway_notification_center_config_model_set_image_visibility (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_WIDTH_PROPERTY:
		sway_notification_center_config_model_set_notification_window_width (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_HEIGHT_PROPERTY:
		sway_notification_center_config_model_set_notification_window_height (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_WINDOW_PREFERRED_OUTPUT_PROPERTY:
		sway_notification_center_config_model_set_notification_window_preferred_output (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_CLEAR_PROPERTY:
		sway_notification_center_config_model_set_hide_on_clear (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_HIDE_ON_ACTION_PROPERTY:
		sway_notification_center_config_model_set_hide_on_action (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_TEXT_EMPTY_PROPERTY:
		sway_notification_center_config_model_set_text_empty (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONX_PROPERTY:
		sway_notification_center_config_model_set_control_center_positionX (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_POSITIONY_PROPERTY:
		sway_notification_center_config_model_set_control_center_positionY (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_TOP_PROPERTY:
		sway_notification_center_config_model_set_control_center_margin_top (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_BOTTOM_PROPERTY:
		sway_notification_center_config_model_set_control_center_margin_bottom (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_LEFT_PROPERTY:
		sway_notification_center_config_model_set_control_center_margin_left (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_MARGIN_RIGHT_PROPERTY:
		sway_notification_center_config_model_set_control_center_margin_right (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_LAYER_PROPERTY:
		sway_notification_center_config_model_set_control_center_layer (self, g_value_get_enum (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_EXCLUSIVE_ZONE_PROPERTY:
		sway_notification_center_config_model_set_control_center_exclusive_zone (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CATEGORIES_SETTINGS_PROPERTY:
		sway_notification_center_config_model_set_categories_settings (self, sway_notification_center_value_get_ordered_hash_table (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ACTION_FILTER_PROPERTY:
		sway_notification_center_config_model_set_notification_action_filter (self, sway_notification_center_value_get_ordered_hash_table (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_VISIBILITY_PROPERTY:
		sway_notification_center_config_model_set_notification_visibility (self, sway_notification_center_value_get_ordered_hash_table (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPTS_PROPERTY:
		sway_notification_center_config_model_set_scripts (self, sway_notification_center_value_get_ordered_hash_table (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_SCRIPT_FAIL_NOTIFY_PROPERTY:
		sway_notification_center_config_model_set_script_fail_notify (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_FIT_TO_SCREEN_PROPERTY:
		sway_notification_center_config_model_set_fit_to_screen (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_RELATIVE_TIMESTAMPS_PROPERTY:
		sway_notification_center_config_model_set_relative_timestamps (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_HEIGHT_PROPERTY:
		sway_notification_center_config_model_set_control_center_height (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_WIDTH_PROPERTY:
		sway_notification_center_config_model_set_control_center_width (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_CONTROL_CENTER_PREFERRED_OUTPUT_PROPERTY:
		sway_notification_center_config_model_set_control_center_preferred_output (self, g_value_get_string (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_2FA_ACTION_PROPERTY:
		sway_notification_center_config_model_set_notification_2fa_action (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_INLINE_REPLIES_PROPERTY:
		sway_notification_center_config_model_set_notification_inline_replies (self, g_value_get_boolean (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_ICON_SIZE_PROPERTY:
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
		sway_notification_center_config_model_set_notification_icon_size (self, g_value_get_int (value));
G_GNUC_END_IGNORE_DEPRECATIONS
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_HEIGHT_PROPERTY:
		sway_notification_center_config_model_set_notification_body_image_height (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_NOTIFICATION_BODY_IMAGE_WIDTH_PROPERTY:
		sway_notification_center_config_model_set_notification_body_image_width (self, g_value_get_int (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGETS_PROPERTY:
		sway_notification_center_config_model_set_widgets (self, g_value_get_boxed (value));
		break;
		case SWAY_NOTIFICATION_CENTER_CONFIG_MODEL_WIDGET_CONFIG_PROPERTY:
		sway_notification_center_config_model_set_widget_config (self, sway_notification_center_value_get_ordered_hash_table (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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

