diff --git a/__init__.py b/__init__.py index 03dc31c..c561f4a 100644 --- a/__init__.py +++ b/__init__.py @@ -7,8 +7,8 @@ Technology: Backend Feature: Initialisation Description: -Initializes the Flask application. -Initializes any extensions used in the project. +Initialises the Flask application. +Initialises any extensions used in the project. """ from flask import Flask diff --git a/app.py b/app.py index a146795..39031bb 100644 --- a/app.py +++ b/app.py @@ -7,7 +7,7 @@ Technology: App General Feature: App Description: -Initializes the Flask application, sets the configuration based on the environment, and defines two routes (/ and /about) that render templates with the specified titles. +Initialises the Flask application, sets the configuration based on the environment, and defines two routes (/ and /about) that render templates with the specified titles. """ # IMPORTS diff --git a/business_objects/base.py b/business_objects/base.py index b1465b5..9fc73c4 100644 --- a/business_objects/base.py +++ b/business_objects/base.py @@ -48,6 +48,7 @@ class Base(): FLAG_EDIT: ClassVar[str] = 'edit' FLAG_EMAIL: ClassVar[str] = 'email' FLAG_FAX: ClassVar[str] = 'fax' + FLAG_FIRSTNAME: ClassVar[str] = 'firstname' FLAG_GUID: ClassVar[str] = 'guid' FLAG_IS_NOT_EMPTY: ClassVar[str] = 'is_not_empty' # FLAG_KEY_PRIMARY: ClassVar[str] = 'key_primary' @@ -67,6 +68,7 @@ class Base(): FLAG_REGION: ClassVar[str] = 'region' FLAG_ROWS: ClassVar[str] = 'rows' FLAG_SEARCH: ClassVar[str] = 'search' + FLAG_SURNAME: ClassVar[str] = 'surname' FLAG_SYMBOL: ClassVar[str] = 'symbol' FLAG_URL: ClassVar[str] = 'url' FLAG_USER: ClassVar[str] = 'authorisedUser' # 'user' already used diff --git a/business_objects/dog/company.py b/business_objects/dog/company.py index d09a752..5e14a15 100644 --- a/business_objects/dog/company.py +++ b/business_objects/dog/company.py @@ -52,9 +52,9 @@ class Company(SQLAlchemy_ABC, Base): def from_db_user(cls, query_row): _m = f'{cls.__qualname__}.from_db_user' company = cls() - company.id_company = query_row[6] - company.name = query_row[7] - company.website = query_row[8] + company.id_company = query_row[8] + company.name = query_row[9] + company.website = query_row[10] company.active = True return company diff --git a/business_objects/dog/role.py b/business_objects/dog/role.py new file mode 100644 index 0000000..c398a5d --- /dev/null +++ b/business_objects/dog/role.py @@ -0,0 +1,187 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: Business Objects +Feature: Role Business Object +""" + +# internal +from business_objects.base import Base +from business_objects.db_base import SQLAlchemy_ABC, Get_Many_Parameters_Base +import lib.argument_validation as av +from extensions import db +from helpers.helper_app import Helper_App +# external +from dataclasses import dataclass +from typing import ClassVar + + +class Role(SQLAlchemy_ABC, Base): + ATTR_ID_ROLE: ClassVar[str] = 'id_role' + FLAG_ROLE: ClassVar[str] = 'role' + NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_ROLE + NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME + + __tablename__ = 'DOG_Role' + __table_args__ = { 'extend_existing': True } + + id_role = db.Column(db.Integer, primary_key=True) + code = db.Column(db.String(250)) + name = db.Column(db.String(250)) + active = db.Column(db.Boolean) + display_order = db.Column(db.Integer) + + def __init__(self): + self.id_role = 0 + self.is_new = False + super().__init__() + + @classmethod + def from_db_role(cls, query_row): + _m = f'{cls.__qualname__}.from_db_role' + Helper_App.console_log(f'{_m}\n{query_row}') + role = cls() + role.id_role = query_row[0] + role.code = query_row[1] + role.name = query_row[2] + role.active = av.input_bool(query_row[3], 'active', _m) + role.display_order = query_row[4] + # role.created_on = query_row[7] + Helper_App.console_log(f'role: {role}') + return role + + @classmethod + def from_db_user(cls, query_row): + _m = f'{cls.__qualname__}.from_db_user' + role = cls() + role.id_role = query_row[6] + role.name = query_row[7] + role.active = True + return role + + @classmethod + def from_json(cls, json): + _m = f'{cls.__qualname__}.from_json' + role = cls() + if json is None: return Role + role.id_role = json.get(cls.ATTR_ID_ROLE, -1) + role.name = json[cls.FLAG_NAME] + role.code = json.get(cls.FLAG_CODE, role.name.upper().replace(" ", "_")) + role.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) + role.display_order = json.get(cls.FLAG_DISPLAY_ORDER, None) + return role + + + def to_json(self): + as_json = { + **self.get_shared_json_attributes(self) + , self.ATTR_ID_ROLE: self.id_role + , self.FLAG_CODE: self.code + , self.FLAG_NAME: self.name + , self.FLAG_ACTIVE: self.active + , self.FLAG_DISPLAY_ORDER: self.display_order + } + return as_json + + def __repr__(self): + return f''' +{self.__class__.__name__}( + {self.FLAG_ROLE}: {self.id_role} + {self.FLAG_CODE}: {self.code} + {self.FLAG_NAME}: {self.name} + {self.FLAG_ACTIVE}: {self.active} + {self.FLAG_DISPLAY_ORDER}: {self.display_order} +) + ''' + + +class Role_Temp(db.Model, Base): + __tablename__ = 'DOG_Role_Temp' + __table_args__ = { 'extend_existing': True } + id_temp = db.Column(db.Integer, primary_key=True) + id_role = db.Column(db.Integer) + code = db.Column(db.String(250)) + name = db.Column(db.String(250)) + active = db.Column(db.Boolean) + display_order = db.Column(db.Integer) + guid: str = db.Column(db.String(36)) + + def __init__(self): + super().__init__() + + @classmethod + def from_role(cls, role): + _m = f'{cls.__qualname__}.from_Role' + temp = cls() + temp.id_role = role.id_role + temp.code = role.code + temp.name = role.name + temp.active = role.active + temp.display_order = role.display_order + return temp + + +class Parameters_Role(Get_Many_Parameters_Base): + get_all_role: bool + get_inactive_role: bool + ids_role: str + names_role: str + require_all_id_search_filters_met: bool + require_any_id_search_filters_met: bool + require_all_non_id_search_filters_met: bool + require_any_non_id_search_filters_met: bool + + @classmethod + def get_default(cls): + return cls( + get_all_role = True + , get_inactive_role = False + , ids_role = '' + , names_role = '' + , require_all_id_search_filters_met = True + , require_any_id_search_filters_met = True + , require_all_non_id_search_filters_met = False + , require_any_non_id_search_filters_met = True + ) + + @classmethod + def from_json(cls, json): + return cls( + get_all_role = json.get('a_get_all_role', False) + , get_inactive_role = json.get('a_get_inactive_role', False) + , ids_role = json.get('a_ids_role', '') + , names_role = json.get('a_names_role', '') + , require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True) + , require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True) + , require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False) + , require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True) + ) + + """ + @classmethod + def from_form_filters_role(cls, form): + av.val_instance(form, 'form', 'Parameters_Role.from_form_filters_role', Filters_Role) + has_filter_search_text = not (form.search.data == '' or form.search.data is None) + active_only = av.input_bool(form.active_only.data, "active", "Parameters_Role.from_form_filters_role") + filters = cls.get_default() + filters.get_all_role = True + filters.get_inactive_role = not active_only + filters.ids_role = '' + filters.names_role = form.search.data if has_filter_search_text else '' + filters.notes_role = form.search.data if has_filter_search_text else '' + return filters + """ + + def to_json(self): + return { + 'a_get_all_role': self.get_all_role + , 'a_get_inactive_role': self.get_inactive_role + , 'a_ids_role': self.ids_role + , 'a_names_role': self.names_role + , 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met + , 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met + , 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met + , 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met + } diff --git a/business_objects/dog/user.py b/business_objects/dog/user.py index a78744e..1ca06c4 100644 --- a/business_objects/dog/user.py +++ b/business_objects/dog/user.py @@ -11,9 +11,10 @@ Feature: User Business Object from business_objects.base import Base from business_objects.db_base import SQLAlchemy_ABC, Get_Many_Parameters_Base from business_objects.dog.company import Company +from business_objects.dog.role import Role import lib.argument_validation as av from extensions import db -from forms.base import Form_Filters_User +from forms.dog.user import Filters_User from helpers.helper_app import Helper_App # external from dataclasses import dataclass @@ -24,11 +25,9 @@ class User(SQLAlchemy_ABC, Base): ATTR_ID_USER_AUTH0: ClassVar[str] = 'id_user_auth0' FLAG_CAN_ADMIN_DOG: ClassVar[str] = 'can_admin_dog' FLAG_CAN_ADMIN_USER: ClassVar[str] = 'can_admin_user' - FLAG_FIRSTNAME: ClassVar[str] = 'firstname' FLAG_IS_EMAIL_VERIFIED: ClassVar[str] = 'is_email_verified' FLAG_IS_SUPER_USER: ClassVar[str] = 'is_super_user' FLAG_PRIORITY_ACCESS_LEVEL: ClassVar[str] = 'priority_access_level' - FLAG_SURNAME: ClassVar[str] = 'surname' NAME_ATTR_OPTION_VALUE: ClassVar[str] = Base.ATTR_ID_USER NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME @@ -46,6 +45,7 @@ class User(SQLAlchemy_ABC, Base): can_admin_dog = db.Column(db.Boolean) can_admin_user = db.Column(db.Boolean) is_new = db.Column(db.Boolean) + active = db.Column(db.Boolean) def __init__(self): self.id_user = 0 @@ -54,11 +54,14 @@ class User(SQLAlchemy_ABC, Base): self.can_admin_user = False self.id_company = None self.company = None + self.id_role = None + self.role = None super().__init__() @classmethod def from_db_user(cls, query_row): _m = f'{cls.__qualname__}.from_db_user' + Helper_App.console_log(f'user record: {query_row}') user = cls() user.id_user = query_row[0] user.id_user_auth0 = query_row[1] @@ -66,12 +69,14 @@ class User(SQLAlchemy_ABC, Base): user.surname = query_row[3] user.email = query_row[4] user.is_email_verified = av.input_bool(query_row[5], cls.FLAG_IS_EMAIL_VERIFIED, _m) - user.id_company = query_row[6] - user.is_super_user = av.input_bool(query_row[9], cls.FLAG_IS_SUPER_USER, _m) - user.priority_access_level = query_row[10] - user.can_admin_dog = av.input_bool(query_row[11], cls.FLAG_CAN_ADMIN_DOG, _m) - user.can_admin_user = av.input_bool(query_row[12], cls.FLAG_CAN_ADMIN_USER, _m) + user.id_role = query_row[6] + user.id_company = query_row[8] + user.is_super_user = av.input_bool(query_row[11], cls.FLAG_IS_SUPER_USER, _m) + user.priority_access_level = query_row[12] + user.can_admin_dog = av.input_bool(query_row[13], cls.FLAG_CAN_ADMIN_DOG, _m) + user.can_admin_user = av.input_bool(query_row[14], cls.FLAG_CAN_ADMIN_USER, _m) # user.is_new = av.input_bool(query_row[9], 'is_new', _m) + user.role = Role.from_db_user(query_row) user.company = Company.from_db_user(query_row) return user @@ -96,10 +101,12 @@ class User(SQLAlchemy_ABC, Base): user.surname = json[cls.FLAG_SURNAME] user.email = json[cls.FLAG_EMAIL] user.is_email_verified = av.input_bool(json[cls.FLAG_IS_EMAIL_VERIFIED], cls.FLAG_IS_EMAIL_VERIFIED, _m) + user.id_role = json[Role.ATTR_ID_ROLE] user.id_company = json[Company.ATTR_ID_COMPANY] user.is_super_user = av.input_bool(json[cls.FLAG_IS_SUPER_USER], cls.FLAG_IS_SUPER_USER, _m) user.can_admin_dog = user.is_super_user or json[cls.FLAG_CAN_ADMIN_DOG] user.can_admin_user = user.is_super_user or json[cls.FLAG_CAN_ADMIN_USER] + user.role = Role.from_json(json[Role.FLAG_ROLE]) user.company = Company.from_json(json[Company.FLAG_COMPANY]) return user @@ -138,6 +145,8 @@ class User(SQLAlchemy_ABC, Base): , self.FLAG_CAN_ADMIN_USER: self.can_admin_user , Company.ATTR_ID_COMPANY: self.id_company , Company.FLAG_COMPANY: self.company.to_json() + , Role.ATTR_ID_ROLE: self.id_role + , Role.FLAG_ROLE: self.role.to_json() } return as_json @@ -155,6 +164,10 @@ User ( , {self.FLAG_PRIORITY_ACCESS_LEVEL}: {self.priority_access_level} , {self.FLAG_CAN_ADMIN_DOG}: {self.can_admin_dog} , {self.FLAG_CAN_ADMIN_USER}: {self.can_admin_user} + , {Role.ATTR_ID_ROLE}: {self.id_role} + , {Role.FLAG_ROLE}: {self.role} + , {Company.ATTR_ID_COMPANY}: {self.id_company} + , {Company.FLAG_COMPANY}: {self.company} ) ''' def get_is_logged_in(self): @@ -168,18 +181,36 @@ class User_Temp(db.Model, Base): __table_args__ = { 'extend_existing': True } id_temp = db.Column(db.Integer, primary_key=True) id_user = db.Column(db.Integer) + id_role = db.Column(db.Integer) id_user_auth0 = db.Column(db.String(250)) firstname = db.Column(db.String(250)) surname = db.Column(db.String(250)) email = db.Column(db.String(250)) is_email_verified = db.Column(db.Boolean) is_super_user = db.Column(db.Boolean) + active = db.Column(db.Boolean) + guid: str = db.Column(db.String(36)) # is_logged_in: bool def __init__(self): self.id_user = 0 super().__init__() + @classmethod + def from_user(cls, role): + _m = f'{cls.__qualname__}.from_user' + temp = cls() + temp.id_user = user.id_user + temp.id_role = user.role.id_role + temp.id_user_auth0 = user.id_user_auth0 + temp.firstname = user.firstname + temp.surname = user.surname + temp.email = user.email + temp.is_email_verified = user.is_email_verified + temp.is_super_user = user.is_super_user + temp.active = role.active + return temp + @@ -202,14 +233,15 @@ class Parameters_User(Get_Many_Parameters_Base): @classmethod - def from_form(cls, form): - av.val_instance(form, 'form', 'Parameters_User.from_form', Form_Filters_User) - get_inactive = av.input_bool(form.active.data, "active", "Parameters_User.from_form") - id_user = '' if form.id_user.data is None else form.id_user.data + def from_form_filters_user(cls, form): + _m = f'{cls.__qualname__}.from_form_filters_user' + av.val_instance(form, 'form', _m, Filters_User) + get_inactive = not av.input_bool(form.active_only.data, "active", _m) + # id_user = '' if form.id_user.data is None else form.id_user.data filters = cls.get_default() - filters.get_all_user = (id_user == '') + filters.get_all_user = True # (id_user == '') filters.get_inactive_user = get_inactive - filters.ids_user = id_user + filters.ids_user = '' # id_user filters.ids_user_auth0 = '' filters.require_all_id_search_filters_met = True filters.require_any_id_search_filters_met = True diff --git a/controllers/user/user.py b/controllers/user/user.py index 4a3b3d3..61f46da 100644 --- a/controllers/user/user.py +++ b/controllers/user/user.py @@ -7,7 +7,7 @@ Technology: App Routing Feature: User Routes Description: -Initializes the Flask application, sets the configuration based on the environment, and defines two routes (/ and /about) that render templates with the specified titles. +Initialises the Flask application, sets the configuration based on the environment, and defines two routes (/ and /about) that render templates with the specified titles. """ # IMPORTS @@ -16,6 +16,7 @@ from models.model_view_base import Model_View_Base from models.model_view_user import Model_View_User from business_objects.dog.user import User, Parameters_User from datastores.datastore_user import DataStore_User +from forms.dog.user import Filters_User from helpers.helper_app import Helper_App import lib.argument_validation as av # external @@ -175,11 +176,74 @@ def logout_callback(): @routes_user.route(Model_View_User.HASH_PAGE_USER_ACCOUNT) def user(): try: - model = Model_View_User() - model.users = [model.user] - if not model.is_user_logged_in: + user_session = Model_View_User.get_user_session() + if not user_session.get_is_logged_in(): return redirect(url_for('routes_dog_home.home')) + form_filters = Filters_User.from_id_company(user_session.id_company) + model = Model_View_User(form_filters_old = form_filters) + model._title = model.user.firstname + # model.users = [model.user] html_body = render_template('pages/user/_user.html', model = model) except Exception as e: return str(e) return html_body + +@routes_user.route(Model_View_User.HASH_PAGE_USER_ACCOUNTS) +def users(): + try: + Helper_App.console_log(f'request_args: {request.args}') + user_session = Model_View_User.get_user_session() + if not user_session.get_is_logged_in(): + return redirect(url_for('routes_dog_home.home')) + try: + form_filters = Filters_User.from_json(request.args) + except Exception as e: + Helper_App.console_log(f'Error: {e}') + form_filters = Filters_User.from_id_company(user_session.id_company) + model = Model_View_User(form_filters, hash_page_current = Model_View_User.HASH_PAGE_USER_ACCOUNTS) + html_body = render_template('pages/user/_users.html', model = model) + except Exception as e: + return str(e) + return html_body + + +@routes_user.route(Model_View_User.HASH_SAVE_DOG_USER, methods=['POST']) +def save_user(): + data = Helper_App.get_request_data(request) + try: + form_filters = Filters_User.from_json(data[Model_View_User.FLAG_FORM_FILTERS]) + if not form_filters.validate_on_submit(): + return jsonify({ + Model_View_User.FLAG_STATUS: Model_View_User.FLAG_FAILURE, + Model_View_User.FLAG_MESSAGE: f'Filters form invalid.\n{form_filters.errors}' + }) + model_return = Model_View_User(form_filters_old=form_filters) + if not model_return.is_user_logged_in: + raise Exception('User not logged in') + + users = data[Model_View_User.FLAG_USER] + if len(users) == 0: + return jsonify({ + Model_View_User.FLAG_STATUS: Model_View_User.FLAG_FAILURE, + Model_View_User.FLAG_MESSAGE: f'No users.' + }) + objs_user = [] + for user in users: + objs_user.append(User.from_json(user)) + Helper_App.console_log(f'objs_user={objs_user}') + errors = DataStore_User.save_users(data.get('comment', 'No comment'), objs_user) + + if (len(errors) > 0): + return jsonify({ + Model_View_User.FLAG_STATUS: Model_View_User.FLAG_FAILURE, + Model_View_User.FLAG_MESSAGE: f'Error saving users.\n{model_return.convert_list_objects_to_json(errors)}' + }) + return jsonify({ + Model_View_User.FLAG_STATUS: Model_View_User.FLAG_SUCCESS, + Model_View_User.FLAG_DATA: Model_View_User.convert_list_objects_to_json(model_return.users) + }) + except Exception as e: + return jsonify({ + Model_View_User.FLAG_STATUS: Model_View_User.FLAG_FAILURE, + Model_View_User.FLAG_MESSAGE: f'Bad data received by controller.\n{e}' + }) \ No newline at end of file diff --git a/datastores/datastore_user.py b/datastores/datastore_user.py index 6b85234..6b602c7 100644 --- a/datastores/datastore_user.py +++ b/datastores/datastore_user.py @@ -14,7 +14,8 @@ Datastore for Users # from routes import bp_home import lib.argument_validation as av from business_objects.sql_error import SQL_Error -from business_objects.dog.user import User, Parameters_User +from business_objects.dog.role import Role, Parameters_Role +from business_objects.dog.user import User, User_Temp, Parameters_User from datastores.datastore_base import DataStore_Base from helpers.helper_app import Helper_App from helpers.helper_db_mysql import Helper_DB_MySQL @@ -37,39 +38,10 @@ db = SQLAlchemy() class DataStore_User(DataStore_Base): def __init__(self): super().__init__() - - def edit_user(self): - _m = 'DataStore_User.edit_user' - - # guid = Helper_DB_MySQL.create_guid() - argument_dict_list = { - 'a_id_user': self.info_user.get('sub'), - 'a_name': self.info_user.get('name'), - 'a_email': self.info_user.get('email'), - 'a_email_verified': 1 if self.info_user.get('email_verified') == 'True' else 0 - } - - result = self.db_procedure_execute('p_dog_save_user', argument_dict_list) - cursor = result.cursor - - result_set_1 = cursor.fetchall() - Helper_App.console_log(f'raw user data: {result_set_1}') - - # Errors - cursor.nextset() - result_set_e = cursor.fetchall() - Helper_App.console_log(f'raw errors: {result_set_e}') - if len(result_set_e) > 0: - errors = [SQL_Error.from_DB_record(row) for row in result_set_e] - for error in errors: - Helper_App.console_log(f"Error [{error.code}]: {error.msg}") - - DataStore_User.db_cursor_clear(cursor) - - return (result_set_1[0][1] == b'\x01') - def get_many_user(self, user_filters, user=None): - _m = 'DataStore_User.get_many_user' + @classmethod + def get_many_user(cls, user_filters, user=None): + _m = f'{cls.__qualname__}.get_many_user' Helper_App.console_log(_m) Helper_App.console_log(f'user_filters: {user_filters}') # Helper_App.console_log(f"valid user_filters: {av.val_instance(user_filters, 'user_filters', _m, Parameters_User)}") @@ -78,7 +50,7 @@ class DataStore_User(DataStore_Base): # Helper_App.console_log(f'user: {user}') if user is None: - user = self.get_user_session() + user = cls.get_user_session() Helper_App.console_log(f'user: {user}') user_filters.id_user = user.id_user user_filters.auth0_id_user = user.id_user_auth0 @@ -88,7 +60,7 @@ class DataStore_User(DataStore_Base): } Helper_App.console_log(f'argument_dict_list: {argument_dict_list}') - result = self.db_procedure_execute('p_dog_get_many_user', argument_dict_list) + result = cls.db_procedure_execute('p_dog_get_many_user', argument_dict_list) cursor = result.cursor result_set = cursor.fetchall() Helper_App.console_log(f'raw users: {result_set}') @@ -114,3 +86,85 @@ class DataStore_User(DataStore_Base): return users, errors + @classmethod + def save_users(cls, comment, users): + _m = f'{cls}.save_users' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving users: {users}') + + rows = [] + for user in users: + row = User_Temp.from_user(user) + row.guid = guid + rows.append(row) + + cls.upload_bulk(User_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('Users uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_user', argument_dict_list) + + Helper_App.console_log('Users saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + return errors + + + @classmethod + def get_many_role(cls, role_filters): + _m = f'{cls.__qualname__}.get_many_role' + user = cls.get_user_session() + argument_dict = { + 'a_id_user': user.id_user + , **role_filters.to_json() + , 'a_debug': 0 + } + Helper_App.console_log(f'argument_dict: {argument_dict}') + result = cls.db_procedure_execute('p_dog_get_many_role', argument_dict) + cursor = result.cursor + + # Roles + result_set_1 = cursor.fetchall() + Helper_App.console_log(f'raw roles: {result_set_1}') + roles = [] + role_indexes = {} + for row in result_set_1: + Helper_App.console_log(f'Raw role: {row}') + new_role = Role.from_db_role(row) + role_indexes[new_role.id_role] = len(roles) + roles.append(new_role) + + # Errors + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f'raw errors: {result_set_e}') + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return roles, errors \ No newline at end of file diff --git a/forms/base.py b/forms/base.py index a183e21..8a0d625 100644 --- a/forms/base.py +++ b/forms/base.py @@ -68,9 +68,3 @@ class Filters_Stored_Procedure_Base(Form_Base): def to_json(self): pass ''' - - - -class Form_Filters_User(FlaskForm): - active = BooleanField('Active only?', default = True) - id_user = SelectField('User ID', validators=[Optional()], choices=[]) \ No newline at end of file diff --git a/forms/dog/user.py b/forms/dog/user.py new file mode 100644 index 0000000..814a395 --- /dev/null +++ b/forms/dog/user.py @@ -0,0 +1,78 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: Backend +Feature: Command Form + +Description: +Defines Flask-WTF form for handling user input on Commands page. +""" + +# IMPORTS +# internal +from business_objects.base import Base +from business_objects.dog.company import Company +# from business_objects.dog.command_category import Command_Category # Circular +# from business_objects.dog.command import Command # Circular +from helpers.helper_app import Helper_App +# from models.model_view_store import Model_View_Store # circular +# from models.model_view_base import Model_View_Base +from forms.base import Form_Base +import lib.argument_validation as av +# external +from flask import Flask, render_template, request, flash, redirect, url_for, current_app +from flask_wtf import FlaskForm +from wtforms import SelectField, BooleanField, StringField, SubmitField +from wtforms.validators import DataRequired, Email, ValidationError +import markupsafe +from flask_wtf.recaptcha import RecaptchaField +from abc import ABCMeta, abstractmethod +import json + +class Filters_User(Form_Base): + search = StringField( + 'Search' + ) + id_company = SelectField( + 'Company' + , choices = [Form_Base.get_select_option_all()] + , default = Form_Base.get_select_valid_option_default_value() + ) + active_only = BooleanField( + 'Active' + , default = True + ) + + @classmethod + def from_json(cls, json): + _m = f'{cls.__qualname__}.from_json' + Helper_App.console_log(f'{_m}\njson: {json}') + filters = cls() + filters.search.data = json[Base.FLAG_SEARCH] + filters.id_company.data = json[Company.ATTR_ID_COMPANY] + filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE_ONLY], Base.FLAG_ACTIVE_ONLY, f'{cls.__name__}.from_json') + return filters + + def to_json(self): + return { + Base.FLAG_SEARCH: self.search.data + , Company.ATTR_ID_COMPANY: self.id_company.data + , Base.FLAG_ACTIVE_ONLY: self.active_only.data + } + + @classmethod + def from_id_company(cls, id_company): + _m = f'{cls.__qualname__}.from_id_company' + filters = cls() + if id_company is not None: + filters.id_company.data = id_company + return filters + + +""" +class Form_Filters_User(FlaskForm): + active = BooleanField('Active only?', default = True) + id_user = SelectField('User ID', validators=[Optional()], choices=[]) +""" diff --git a/models/model_view_base.py b/models/model_view_base.py index 4f9b508..0152316 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -32,6 +32,7 @@ from business_objects.dog.command import Command from business_objects.dog.command_button_link import Command_Button_Link from business_objects.dog.command_category import Command_Category from business_objects.dog.command_modality import Command_Modality +from business_objects.dog.company import Company from business_objects.dog.distraction import Distraction from business_objects.dog.distraction_intensity_level import Distraction_Intensity_Level from business_objects.dog.distraction_type import Distraction_Type @@ -42,6 +43,7 @@ from business_objects.dog.lighting_level import Lighting_Level from business_objects.dog.location import Location from business_objects.dog.obedience_level import Obedience_Level from business_objects.dog.response_quality_metric import Response_Quality_Metric +from business_objects.dog.role import Role from business_objects.dog.user import User from business_objects.dog.weather import Weather from datastores.datastore_base import DataStore_Base @@ -71,6 +73,7 @@ class Model_View_Base(BaseModel, ABC): ATTR_ID_COMMAND_BUTTON_LINK: ClassVar[str] = Command_Button_Link.ATTR_ID_COMMAND_BUTTON_LINK ATTR_ID_COMMAND_CATEGORY: ClassVar[str] = Command_Category.ATTR_ID_COMMAND_CATEGORY ATTR_ID_COMMAND_MODALITY: ClassVar[str] = Command_Modality.ATTR_ID_COMMAND_MODALITY + ATTR_ID_COMPANY: ClassVar[str] = Company.ATTR_ID_COMPANY ATTR_ID_DISTRACTION: ClassVar[str] = Distraction.ATTR_ID_DISTRACTION ATTR_ID_DISTRACTION_INTENSITY_LEVEL: ClassVar[str] = Distraction_Intensity_Level.ATTR_ID_DISTRACTION_INTENSITY_LEVEL ATTR_ID_DISTRACTION_TYPE: ClassVar[str] = Distraction_Type.ATTR_ID_DISTRACTION_TYPE @@ -82,6 +85,9 @@ class Model_View_Base(BaseModel, ABC): ATTR_ID_LOCATION: ClassVar[str] = Location.ATTR_ID_LOCATION ATTR_ID_OBEDIENCE_LEVEL: ClassVar[str] = Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC + ATTR_ID_ROLE: ClassVar[str] = Role.ATTR_ID_ROLE + ATTR_ID_USER: ClassVar[str] = User.ATTR_ID_USER + ATTR_ID_USER_AUTH0: ClassVar[str] = User.ATTR_ID_USER_AUTH0 ATTR_ID_WEATHER: ClassVar[str] = Weather.ATTR_ID_WEATHER ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed' ATTR_TEXT_EXPANDED: ClassVar[str] = 'textExpanded' @@ -141,12 +147,13 @@ class Model_View_Base(BaseModel, ABC): FLAG_CODE: ClassVar[str] = Base.FLAG_CODE FLAG_COLLAPSIBLE: ClassVar[str] = 'collapsible' FLAG_COLOUR: ClassVar[str] = Colour.FLAG_COLOUR + FLAG_COLUMN: ClassVar[str] = 'column' FLAG_COMMAND: ClassVar[str] = Command.FLAG_COMMAND FLAG_COMMAND_BUTTON_LINK: ClassVar[str] = Command_Button_Link.FLAG_COMMAND_BUTTON_LINK FLAG_COMMAND_CATEGORY: ClassVar[str] = Command_Category.FLAG_COMMAND_CATEGORY FLAG_COMMAND_MODALITY: ClassVar[str] = Command_Modality.FLAG_COMMAND_MODALITY - FLAG_COLUMN: ClassVar[str] = 'column' FLAG_COMMENT: ClassVar[str] = 'comment' + FLAG_COMPANY: ClassVar[str] = Company.FLAG_COMPANY FLAG_CONTAINER: ClassVar[str] = 'container' FLAG_CONTAINER_ICON_AND_LABEL: ClassVar[str] = 'container-icon-label' FLAG_CONTAINER_INPUT: ClassVar[str] = 'container-input' @@ -176,6 +183,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_FAQ: ClassVar[str] = 'faq' FLAG_FEATURES: ClassVar[str] = 'features' FLAG_FILTER: ClassVar[str] = 'filter' + FLAG_FIRSTNAME: ClassVar[str] = Base.FLAG_FIRSTNAME FLAG_FORM: ClassVar[str] = 'form' FLAG_FORM_FILTERS: ClassVar[str] = 'form-filters' FLAG_HAMBURGER: ClassVar[str] = 'hamburger' @@ -215,7 +223,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_NAV_DOG_LOCATIONS: ClassVar[str] = 'navDogLocations' FLAG_NAV_HOME: ClassVar[str] = 'navHome' FLAG_NAV_USER_ACCOUNT: ClassVar[str] = 'navUserAccount' - FLAG_NAV_USER_ADMIN: ClassVar[str] = 'navUserAdmin' + FLAG_NAV_USER_ACCOUNT: ClassVar[str] = 'navUserAccounts' FLAG_NAV_USER_LOGIN: ClassVar[str] = 'navUserLogin' FLAG_NAV_USER_LOGOUT: ClassVar[str] = 'navUserLogout' FLAG_NOTES: ClassVar[str] = "notes" @@ -227,6 +235,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_QUANTITY: ClassVar[str] = 'quantity' FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.FLAG_RESPONSE_QUALITY_METRIC FLAG_RIGHT_HAND_SIDE: ClassVar[str] = 'rhs' + FLAG_ROLE: ClassVar[str] = Role.FLAG_ROLE FLAG_ROW: ClassVar[str] = 'row' FLAG_ROW_NEW: ClassVar[str] = 'row-new' FLAG_ROWS: ClassVar[str] = Base.FLAG_ROWS @@ -237,6 +246,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_STATUS: ClassVar[str] = 'status' FLAG_SUBMIT: ClassVar[str] = 'submit' FLAG_SUCCESS: ClassVar[str] = 'success' + FLAG_SURNAME: ClassVar[str] = Base.FLAG_SURNAME FLAG_TABLE_MAIN: ClassVar[str] = 'table-main' FLAG_TEMPORARY_ELEMENT: ClassVar[str] = 'temporary-element' FLAG_TESTIMONIAL: ClassVar[str] = 'testimonial' @@ -270,6 +280,7 @@ class Model_View_Base(BaseModel, ABC): HASH_PAGE_LICENSE: ClassVar[str] = '/license' HASH_PAGE_PRIVACY_POLICY: ClassVar[str] = '/privacy-policy' HASH_PAGE_USER_ACCOUNT: ClassVar[str] = '/user' + HASH_PAGE_USER_ACCOUNTS: ClassVar[str] = '/users' HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login' HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout' # HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment' @@ -281,6 +292,7 @@ class Model_View_Base(BaseModel, ABC): HASH_SAVE_DOG_COMMAND_CATEGORY: ClassVar[str] = '/dog/save-command-category' HASH_SAVE_DOG_DOG_COMMAND_LINK: ClassVar[str] = '/dog/save-dog-command-link' HASH_SAVE_DOG_LOCATION: ClassVar[str] = '/dog/save-location' + HASH_SAVE_DOG_USER: ClassVar[str] = '/dog/save-user' ID_BUTTON_ADD: ClassVar[str] = 'buttonAdd' ID_BUTTON_APPLY_FILTERS: ClassVar[str] = 'buttonApplyFilters' ID_BUTTON_CANCEL: ClassVar[str] = 'buttonCancel' @@ -347,23 +359,27 @@ class Model_View_Base(BaseModel, ABC): self.user = datastore_base.get_user_session() self.is_user_logged_in = self.user.get_is_logged_in() # Helper_App.console_log(f'model_view_base init end - model.user: {self.user}') - - def output_bool(self, boolean): - return str(boolean).lower() def get_url_host(self): return self.app.config['URL_HOST'] + + @staticmethod + def output_bool(boolean): + return str(boolean).lower() - def get_user_session(self): + @staticmethod + def get_user_session(): datastore_user = DataStore_User() return datastore_user.get_user_session() - def get_many_access_level(self, filters=None): + @staticmethod + def get_many_access_level(filters=None): _m = 'Model_View_Store.get_many_access_level' # av.val_instance(filters, 'filters', _m, Filters_Access_Level) access_levels, errors = DataStore_Base.get_many_access_level(filters) return access_levels - def get_many_unit_measurement(self, filters=None): + @staticmethod + def get_many_unit_measurement(filters=None): _m = 'Model_View_Store.get_many_unit_measurement' # av.val_instance(filters, 'filters', _m, Filters_Unit_Measurement) units_measurement, errors = DataStore_Base.get_many_unit_measurement(filters) diff --git a/models/model_view_user.py b/models/model_view_user.py index bc88715..5bae686 100644 --- a/models/model_view_user.py +++ b/models/model_view_user.py @@ -11,24 +11,45 @@ Data model for user view """ # internal -from business_objects.dog.user import User +from business_objects.dog.role import Role, Parameters_Role +from business_objects.dog.user import User, Parameters_User from datastores.datastore_user import DataStore_User +from forms.dog.user import Filters_User +from helpers.helper_app import Helper_App from models.model_view_base import Model_View_Base # from routes import bp_home # external from typing import ClassVar class Model_View_User(Model_View_Base): + FLAG_CAN_ADMIN_DOG: ClassVar[str] = User.FLAG_CAN_ADMIN_DOG + FLAG_CAN_ADMIN_USER: ClassVar[str] = User.FLAG_CAN_ADMIN_USER FLAG_ERROR_OAUTH: ClassVar[str] = 'error' FLAG_ERROR_DESCRIPTION_OAUTH: ClassVar[str] = 'error_description' FLAG_FIRSTNAME: ClassVar[str] = User.FLAG_FIRSTNAME + FLAG_IS_EMAIL_VERIFIED: ClassVar[str] = User.FLAG_IS_EMAIL_VERIFIED + FLAG_IS_SUPER_USER: ClassVar[str] = User.FLAG_IS_SUPER_USER FLAG_SURNAME: ClassVar[str] = User.FLAG_SURNAME FLAG_STATE_OAUTH: ClassVar[str] = 'state' - currencies: list = None - regions: list = None + filter_roles: list = None + form_filters: Filters_User = None + form_filters_old: Filters_User users: list = None - - def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_USER_ACCOUNT): - super().__init__(hash_page_current=hash_page_current, form_filters_old = None) - self._title = 'User' + + def __init__(self, form_filters_old, hash_page_current = Model_View_Base.HASH_PAGE_USER_ACCOUNT): + super().__init__(hash_page_current = hash_page_current, form_filters_old = form_filters_old) + self._title = 'Users' + self.form_filters = form_filters_old + + Helper_App.console_log(f'Form filters: {self.form_filters}') + + datastore = DataStore_User() + + parameters_filter_role = Parameters_Role.get_default() + Helper_App.console_log(f'Query args: {parameters_filter_role}') + self.filter_roles, errors = datastore.get_many_role(parameters_filter_role) + + parameters_user = Parameters_User.from_form_filters_user(self.form_filters) + Helper_App.console_log(f'Query args: {parameters_user}') + self.users, errors = datastore.get_many_user(parameters_user) \ No newline at end of file diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index 501695a..099fb44 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,45 +1,26 @@ -USE demo; - --- Clear previous proc -DROP PROCEDURE IF EXISTS p_dog_get_many_user; + +DROP PROCEDURE IF EXISTS p_dog_save_user; DELIMITER // -CREATE PROCEDURE demo.p_dog_get_many_user ( - IN a_id_user INT - , IN a_auth0_id_user VARCHAR(200) - , IN a_get_all_user BIT - , IN a_get_inactive_user BIT - , IN a_ids_user TEXT - , IN a_auth0_ids_user TEXT - , IN a_names_user TEXT - , IN a_emails_user TEXT - , IN a_get_all_company BIT - , IN a_get_inactive_company BIT - , IN a_ids_company TEXT - , IN a_require_all_id_search_filters_met BIT - , IN a_require_any_id_search_filters_met BIT - , IN a_require_all_non_id_search_filters_met BIT - , IN a_require_any_non_id_search_filters_met BIT - , IN a_debug BIT +CREATE PROCEDURE p_dog_save_user ( + IN a_comment VARCHAR(500), + IN a_guid BINARY(36), + IN a_id_user INT, + IN a_debug BIT ) BEGIN - DECLARE v_code_type_error_bad_data VARCHAR(50); - DECLARE v_guid BINARY(36); - DECLARE v_has_filter_user_auth0_id BIT; - DECLARE v_has_filter_user_id BIT; - DECLARE v_has_filter_user_name BIT; - DECLARE v_id_access_level_admin INT; - DECLARE v_id_access_level_view INT; - DECLARE v_id_permission_dog_admin INT; - DECLARE v_id_permission_user INT; - DECLARE v_id_permission_user_admin INT; + DECLARE v_code_type_error_bad_data VARCHAR(100); DECLARE v_id_type_error_bad_data INT; - DECLARE v_ids_user TEXT; - DECLARE v_is_new BIT; + DECLARE v_id_permission_product INT; + DECLARE v_id_permission_user_edit INT; + DECLARE v_id_change_set INT; + DECLARE v_id_access_level_edit INT; DECLARE v_is_super_user BIT; - DECLARE v_rank_max INT; + DECLARE v_can_edit_user BIT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_user INT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -53,532 +34,465 @@ BEGIN ROLLBACK; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); - INSERT INTO tmp_Msg_Error ( - id_type + id_type , code , msg ) SELECT - MET.id_type + MET.id_type , @errno , @text FROM demo.CORE_Msg_Error_Type MET WHERE MET.code = 'MYSQL_ERROR' ; - - SELECT - t_ERROR.id_error - , t_ERROR.id_type - , t_ERROR.code - , ERROR_TYPE.name - , ERROR_TYPE.description - , ERROR_TYPE.is_breaking_error - , ERROR_TYPE.background_colour - , ERROR_TYPE.text_colour - , t_ERROR.msg - FROM tmp_Msg_Error t_ERROR - INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type - ; - + SELECT * + FROM tmp_Msg_Error; DROP TABLE IF EXISTS tmp_Msg_Error; END; SET v_time_start := CURRENT_TIMESTAMP(6); - SET v_guid := UUID(); - SET v_id_access_level_admin := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1); - SET v_id_access_level_view := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1); - SET v_id_permission_dog_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1); - SET v_id_permission_user := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1); - SET v_id_permission_user_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1); SET v_code_type_error_bad_data := 'BAD_DATA'; - SET v_id_type_error_bad_data := (SELECT id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); - SET v_is_new := FALSE; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_permission_user_edit := (SELECT GROUP_CONCAT(PERMISSION.id_permission SEPARATOR ',') FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_CREATE' LIMIT 1); + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); - SET a_get_all_user := IFNULL(a_get_all_user, 1); - SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0); - SET a_ids_user := TRIM(IFNULL(a_ids_user, '')); - SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, '')); - SET a_names_user := TRIM(IFNULL(a_names_user, '')); - SET a_emails_user := TRIM(IFNULL(a_emails_user, '')); - SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1); - SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1); - SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); - SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1); - SET a_debug := IFNULL(a_debug, 0); + CALL demo.p_core_validate_guid ( a_guid ); - IF a_debug = 1 THEN + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; + + CREATE TABLE tmp_User_Save_User ( + id_user INT NOT NULL + , id_role INT + , id_role_previous INT + , id_user_auth0 VARCHAR(250) + , firstname VARCHAR(250) + , surname VARCHAR(250) + , email VARCHAR(254) + , is_email_verified BIT + , is_super_user BIT + , active BIT + , name_error VARCHAR(1000) + ); + + CREATE TABLE tmp_Msg_Error ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, + id_type INT NOT NULL, + code VARCHAR(250) NOT NULL, + msg TEXT NOT NULL + ); + + -- Get data from Temp table + INSERT INTO tmp_User_Save_User ( + id_user + , id_user_auth0 + , id_role + , firstname + , surname + , email + , is_email_verified + , is_super_user + , active + ) + SELECT + USER_T.id_user + , USER_T.id_user_auth0 + , USER_T.id_role + , IFNULL(USER_T.firstname, USER.firstname) AS firstname + , IFNULL(USER_T.surname, USER.surname) AS surname + , IFNULL(USER_T.email, USER.email) AS email + , IFNULL(USER_T.is_email_verified, USER.is_email_verified) AS is_email_verified + , IFNULL(USER_T.is_super_user, USER.is_super_user) AS is_super_user + , COALESCE(USER_T.active, USER.active, 1) AS active + FROM demo.DOG_User_Temp USER_T + LEFT JOIN demo.DOG_User USER ON USER_T.id_user = USER.id_user + WHERE USER_T.guid = a_guid + ; + + UPDATE tmp_User_Save_User t_USER + SET + t_USER.name_error = IFNULL(t_USER.email, t_USER.id_user_auth0) + ; + + -- Validation + -- Missing mandatory fields + -- role + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + LEFT JOIN demo.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + WHERE + ISNULL(t_USER.id_role) + OR ISNULL(ROLES.id_role) + LIMIT 1 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) SELECT - a_id_user - , a_auth0_id_user - , a_get_all_user - , a_get_inactive_user - , a_ids_user - , a_auth0_ids_user - , a_names_user - , a_emails_user - , a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met - , a_debug + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) do not have a role: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + LEFT JOIN demo.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + WHERE + ISNULL(t_USER.id_role) + OR ISNULL(ROLES.id_role) + ; + END IF; + -- email + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.email) LIMIT 1) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) do not have an email: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.email) + ; + END IF; + -- is_super_user + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.is_super_user) LIMIT 1) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) do not have an is super user field: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.is_super_user) + ; + END IF; + -- is_email_verified + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.is_email_verified) LIMIT 1) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) do not have an is email verified: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.is_email_verified) ; END IF; - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; - DROP TEMPORARY TABLE IF EXISTS tmp_User; - DROP TEMPORARY TABLE IF EXISTS tmp_Company; - - CREATE TEMPORARY TABLE tmp_Company ( - id_company INT NOT NULL - , name VARCHAR(250) NOT NULL - , website VARCHAR(1000) - , active BIT NOT NULL - , does_meet_id_filters BIT NOT NULL - , does_meet_non_id_filters BIT NOT NULL - ); - - CREATE TEMPORARY TABLE tmp_User ( - id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL - , id_user INT - , id_company INT - , id_permission_required INT NOT NULL - , priority_access_level_required INT NOT NULL - , is_super_user BIT - , priority_access_level_user INT - , has_access BIT - , can_view BIT - , can_edit BIT - , can_admin BIT - , can_admin_dog BIT - , can_admin_user BIT - ); + -- Get old role + UPDATE tmp_User_Save_User t_USER + INNER JOIN demo.DOG_User_Role_Link USER_ROLE_LINK + ON t_USER.id_user = USER_ROLE_LINK.id_user + AND USER_ROLE_LINK.active = 1 + INNER JOIN demo.DOG_Role ROLES + ON USER_ROLE_LINK.id_role = ROLES.id_role + AND ROLES.active = 1 + SET t_USER.id_role_previous = USER_ROLE_LINK.id_role + WHERE t_USER.id_user > 0 + ; - CREATE TEMPORARY TABLE tmp_User_Access ( - id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL - , id_user INT - , id_permission_required INT NOT NULL - , priority_access_level_required INT NOT NULL - , is_super_user BIT - , priority_access_level_user INT - , has_access BIT - , can_view BIT - , can_edit BIT - , can_admin BIT - ); - - CREATE TEMPORARY TABLE tmp_Msg_Error ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NOT NULL - , code VARCHAR(250) NOT NULL - , msg TEXT NOT NULL - ); - - -- Permissions - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , 0 -- get_all_user - , 0 -- get_inactive_user - , a_id_user -- ids_user - , a_auth0_id_user -- a_auth0_ids_user - , '' -- a_names_user - , '' -- a_emails_user - , 1 -- a_require_all_id_search_filters_met - , 1 -- a_require_any_id_search_filters_met - , 0 -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_user -- ids_permission - , v_id_access_level_view -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM demo.DOG_Calc_User_Access_Temp; - END IF; - - CALL demo.p_dog_calc_user_access( - v_guid -- guid + IF a_debug = 1 THEN + SELECT + a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user - , a_auth0_id_user -- a_auth0_ids_user + , '' -- a_auth0_ids_user , '' -- a_names_user , '' -- a_emails_user , 1 -- a_require_all_id_search_filters_met , 1 -- a_require_any_id_search_filters_met , 0 -- a_require_all_non_id_search_filters_met , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_user -- ids_permission - , v_id_access_level_view -- ids_access_level + , v_id_permission_user_edit -- ids_permission + , v_id_access_level_edit -- ids_access_level , 0 -- a_show_errors - , 0 -- a_debug - ); - - INSERT INTO tmp_User_Access ( - id_user - , id_permission_required - , priority_access_level_required - , is_super_user - , priority_access_level_user - , has_access - , can_view - , can_edit - , can_admin - ) - SELECT - CALC_USER_T.id_user - , CALC_USER_T.id_permission_required - , CALC_USER_T.priority_access_level_required - , CALC_USER_T.is_super_user - , CALC_USER_T.priority_access_level_user - , CALC_USER_T.has_access - , CALC_USER_T.can_view - , CALC_USER_T.can_edit - , CALC_USER_T.can_admin - FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T - WHERE CALC_USER_T.guid = v_guid + , 0 -- a_debug ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_User_Access; - END IF; - - IF NOT EXISTS (SELECT * FROM tmp_User_Access t_USER_ACCESS WHERE t_USER_ACCESS.has_access = 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - VALUES ( - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT( - 'You do not have view permissions for ' - , (SELECT PERMISSION.name FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.id_permission = v_id_permission_user LIMIT 1) - ) - ) - ; - END IF; - - CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); - END IF; - - SET v_is_super_user := (SELECT IFNULL(t_USER_ACCESS.is_super_user, 0) FROM tmp_User_Access t_USER_ACCESS LIMIT 1); - - -- Companies - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- v_guid - , a_id_user -- a_id_user - , a_get_all_company -- a_get_all_company - , a_get_inactive_company -- a_get_inactive_company - , a_ids_company -- a_ids_company - , a_names_company -- a_names_company - , a_websites_company -- a_websites_company - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , 0 -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug - ; - END IF; - - CALL demo.p_dog_calc_company ( - v_guid -- v_guid - , a_id_user -- a_id_user - , a_get_all_company -- a_get_all_company - , a_get_inactive_company -- a_get_inactive_company - , a_ids_company -- a_ids_company - , NULL -- a_names_company - , NULL -- a_websites_company - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , 0 -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug - ); - - INSERT INTO tmp_Company ( - id_company - , name - , website - , active - - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - COMPANY_T.id_company - , COMPANY_T.name - , COMPANY_T.website - , COMPANY_T.active - - , COMPANY_T.does_meet_id_filters - , COMPANY_T.does_meet_non_id_filters - FROM demo.DOG_Company_Temp COMPANY_T - WHERE COMPANY_T.GUID = v_guid - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_Company; - END IF; END IF; + + CALL demo.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_edit -- ids_permission + , v_id_access_level_edit -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + CASE WHEN IFNULL(CALC_USER_T.can_edit, 0) = 1 THEN 1 ELSE 0 END AS can_edit + , IFNULL(CALC_USER_T.is_super_user, 0) AS is_super_user + , IFNULL(CALC_USER_T.priority_access_level_user, v_priority_access_level_none) AS priority_access_level + INTO + v_can_edit_user + , v_is_super_user + , v_priority_access_level_user + FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE + CALC_USER_T.GUID = a_guid + AND CALC_USER_T.id_user = a_id_user + AND CALC_USER_T.id_permission_required = v_id_permission_user_edit + ; - -- Calculated fields - -- Can admin dog - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM demo.DOG_Calc_User_Access_Temp; - END IF; - - CALL demo.p_dog_calc_user_access( - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - INSERT INTO tmp_User ( - id_user - , id_company - , id_permission_required - , priority_access_level_required - , is_super_user - , priority_access_level_user - , has_access - , can_view - , can_edit - , can_admin - , can_admin_dog - ) - WITH Can_Access_User AS ( - SELECT - USER.id_user - , t_COMPANY.id_company - , ROW_NUMBER() OVER (PARTITION BY USER.id_user ORDER BY CASE WHEN t_COMPANY.id_company IS NOT NULL THEN 1 ELSE 0 END DESC) AS index_user_company_link_in_user - FROM demo.DOG_User USER - LEFT JOIN demo.DOG_User_Company_Link USER_COMPANY_LINK ON USER.id_user = USER_COMPANY_LINK.id_user - LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company - ) - SELECT - CALC_USER_T.id_user - , CAN_ACCESS_USER.id_company - , CALC_USER_T.id_permission_required - , CALC_USER_T.priority_access_level_required - , CALC_USER_T.is_super_user - , CALC_USER_T.priority_access_level_user - , CALC_USER_T.has_access - , CALC_USER_T.can_view - , CALC_USER_T.can_edit - , CALC_USER_T.can_admin - , CALC_USER_T.can_admin AS can_admin_dog - FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T - /* - LEFT JOIN demo.DOG_User_Company_Link USER_COMPANY_LINK ON CALC_USER_T.id_user = USER_COMPANY_LINK.id_user - LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company - */ - INNER JOIN Can_Access_User CAN_ACCESS_USER ON CALC_USER_T.id_user = CAN_ACCESS_USER.id_user - WHERE - CALC_USER_T.guid = v_guid - AND ( - v_is_super_user = 1 - OR CAN_ACCESS_USER.id_company IS NOT NULL + IF ( + v_is_super_user = 0 + AND EXISTS ( + WITH User_Company AS ( + SELECT USER_COMPANY_LINK.id_company + FROM demo.DOG_User_Company_Link USER_COMPANY_LINK + WHERE USER_COMPANY_LINK.id_user = a_id_user ) + SELECT * + FROM tmp_User_Save_User t_USER + LEFT JOIN User_Company USER_COMPANY ON t_USER.id_company = USER_COMPANY.id_company + WHERE USER_COMPANY.id_company IS NULL + ) + ) THEN + DELETE FROM tmp_Msg_Error; + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to edit User(s) in other Company(s).' + ) ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_User; - END IF; - - CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); - END IF; - - -- Can admin user - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_user_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM demo.DOG_Calc_User_Access_Temp; - END IF; - - CALL demo.p_dog_calc_user_access( - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_user_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - UPDATE tmp_User t_USER - INNER JOIN demo.DOG_Calc_User_Access_Temp CALC_USER_T - ON CALC_USER_T.id_user = t_USER.id_user - AND CALC_USER_T.guid = v_guid - LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company - SET t_USER.can_admin_user = CALC_USER_T.can_admin - WHERE - v_is_super_user = 1 - OR t_COMPANY.id_company IS NOT NULL - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_User; - END IF; - - CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); - END IF; - - - IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT * FROM tmp_User; - END IF; + END IF; - DELETE FROM tmp_User; + IF ( + v_is_super_user = 0 + AND v_priority_access_level_user > v_priority_access_level_admin + AND EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + WHERE t_USER.id_user <> a_id_user + ) + ) THEN + DELETE FROM tmp_Msg_Error; + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to edit other Users.' + ) + ; END IF; - -- Returns - SELECT - USER.id_user - , USER.id_user_auth0 - , USER.firstname - , USER.surname - , USER.email - , USER.is_email_verified - , t_USER.id_company - , t_COMPANY.name AS name_company - , t_COMPANY.website AS website_company - , t_USER.is_super_user - , t_USER.priority_access_level_user AS priority_access_level - , t_USER.can_admin_dog - , t_USER.can_admin_user - FROM tmp_User t_USER - -- INNER JOIN tmp_User_Access t_USER_ACCESS - INNER JOIN demo.DOG_User USER ON t_USER.id_user = USER.id_user - LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company + -- Attempt to change role they can't access + -- role from + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + INNER JOIN demo.DOG_User USER ON t_USER.id_user = USER.id_user + INNER JOIN demo.DOG_User_Role_Link USER_ROLE_LINK ON t_USER.id_user = USER_ROLE_LINK.id_user + INNER JOIN demo.DOG_Role ROLES ON USER_ROLE_LINK.id_role = ROLES.id_role + INNER JOIN demo.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + LIMIT 1 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) have role(s) you cannot access: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + INNER JOIN demo.DOG_User USER ON t_USER.id_user = USER.id_user + INNER JOIN demo.DOG_User_Role_Link USER_ROLE_LINK ON t_USER.id_user = USER_ROLE_LINK.id_user + INNER JOIN demo.DOG_Role ROLES ON USER_ROLE_LINK.id_role = ROLES.id_role + INNER JOIN demo.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + ; + END IF; + -- role to + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + INNER JOIN demo.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + INNER JOIN demo.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + LIMIT 1 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) have role(s) you cannot access: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + INNER JOIN demo.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + INNER JOIN demo.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + ; + END IF; + + CALL demo.p_dog_clear_calc_user_access( a_guid, 0 ); + + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN + START TRANSACTION; + + INSERT INTO demo.DOG_User_Change_Set ( comment ) + VALUES ( a_comment ) + ; + + SET v_id_change_set := LAST_INSERT_ID(); + + UPDATE demo.DOG_User USER + INNER JOIN tmp_User_Save_User t_USER ON USER.id_user = t_USER.id_user + SET + USER.id_user_auth0 = t_USER.id_user_auth0 + , USER.firstname = t_USER.firstname + , USER.surname = t_USER.surname + , USER.email = t_USER.email + , USER.is_email_verified = t_USER.is_email_verified + , USER.is_super_user = t_USER.is_super_user + , USER.active = t_USER.active + , USER.id_change_set = v_id_change_set + ; + + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + WHERE + t_USER.id_role IS NOT NULL + AND t_USER.id_role_previous IS NULL + LIMIT 1 + ) THEN + INSERT INTO demo.DOG_User_Role_Link ( + id_user + , id_role + , active + , id_user_created_by + ) + SELECT + t_USER.id_user + , t_USER.id_role + , t_USER.active + , a_id_user AS id_user_created_by + FROM tmp_User_Save_User t_USER + WHERE + t_USER.id_role IS NOT NULL + AND t_USER.id_role_previous IS NULL + ; + END IF; + + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE t_USER.id_role <> t_USER.id_role_previous LIMIT 1) THEN + UPDATE demo.DOG_User_Role_Link USER_ROLE_LINK + INNER JOIN tmp_User_Save_User t_USER ON USER_ROLE_LINK.id_user = t_USER.id_user + SET + USER_ROLE_LINK.id_role = t_USER.id_role + , USER_ROLE_LINK.id_change_set = v_id_change_set + ; + END IF; + + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM demo.DOG_User_Temp + WHERE GUID = a_guid; + + COMMIT; + + # Errors + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type ; - # Errors - SELECT - t_ERROR.id_error - , t_ERROR.id_type - , t_ERROR.code - , ERROR_TYPE.name - , ERROR_TYPE.description - , ERROR_TYPE.is_breaking_error - , ERROR_TYPE.background_colour - , ERROR_TYPE.text_colour - , t_ERROR.msg - FROM tmp_Msg_Error t_ERROR - INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type - ; + IF a_debug = 1 THEN + SELECT * from tmp_User_Save_User; + END IF; + + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; - IF a_debug = 1 THEN - SELECT 'End'; - SELECT * FROM tmp_User; - SELECT * FROM tmp_User_Access; - END IF; - - -- Clean up - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; - DROP TEMPORARY TABLE IF EXISTS tmp_User; - DROP TEMPORARY TABLE IF EXISTS tmp_Company; - - IF a_debug = 1 THEN + IF a_debug = 1 THEN CALL demo.p_debug_timing_reporting ( v_time_start ); - END IF; + END IF; END // DELIMITER ; -/* -select * FROM demo.DOG_Calc_User_Access_Temp; -delete FROM demo.DOG_Calc_User_Access_Temp; -SELECT * -FROM demo.DOG_USER; - -CALL demo.p_dog_get_many_user( - NULL -- :a_id_user, - , 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_id_user, - , 1 -- :a_get_all_user, - , 0 -- :a_get_inactive_user, - -- , 0 -- :a_get_first_user_only, - , NULL -- :a_ids_user, - , 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_ids_user - , '' -- a_names_user - , '' -- a_emails_user - , '' -- a_ids_company - , 0 -- a_get_all_company - , 0 -- a_get_inactive_company - , 1 -- :a_require_all_id_search_filters_met, - , 1 -- :a_require_any_id_search_filters_met, - , 0 -- :a_require_all_non_id_search_filters_met, - , 1 -- :a_require_any_non_id_search_filters_met, - , 0 -- a_debug +CALL demo.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug +); + CALL demo.p_dog_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , 1 -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , 15 -- ids_permission + , 2 -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + SELECT * FROM demo.DOG_Calc_User_Access_Temp; +CALL demo.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug +); + SELECT * FROM demo.DOG_Calc_User_Access_Temp; + +CALL demo.p_dog_save_user ( + 'Test' -- comment + , 'greensgreensgreensgreensgreensgreens' -- guid + , 1 -- id_user + , 1 -- debug +); + +CALL demo.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug ); -*/ diff --git a/static/MySQL/10504c_tbl_DOG_User_Temp.sql b/static/MySQL/10504c_tbl_DOG_User_Temp.sql index 8659746..736e04d 100644 --- a/static/MySQL/10504c_tbl_DOG_User_Temp.sql +++ b/static/MySQL/10504c_tbl_DOG_User_Temp.sql @@ -1,6 +1,8 @@ USE fetchmetrics; +-- DROP TABLE IF EXISTS fetchmetrics.DOG_User_Temp; + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE @@ -11,6 +13,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_User_Temp ( id_temp INT NOT NULL AUTO_INCREMENT PRIMARY KEY , id_user INT + , id_role INT , id_user_auth0 VARCHAR(200) , firstname VARCHAR(250) , surname VARCHAR(250) diff --git a/static/MySQL/10520_tbl_DOG_Role.sql b/static/MySQL/10520_tbl_DOG_Role.sql index 3c30ce4..9c51b50 100644 --- a/static/MySQL/10520_tbl_DOG_Role.sql +++ b/static/MySQL/10520_tbl_DOG_Role.sql @@ -10,6 +10,10 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Role ( id_role INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_access_level_required INT NOT NULL + , CONSTRAINT FK_DOG_Role_id_access_level_required + FOREIGN KEY (id_access_level_required) + REFERENCES fetchmetrics.DOG_Access_Level(id_access_level) , code VARCHAR(250) , name VARCHAR(250) , display_order INT NOT NULL diff --git a/static/MySQL/10522_tbl_DOG_Role_Temp.sql b/static/MySQL/10522_tbl_DOG_Role_Temp.sql new file mode 100644 index 0000000..1cdf432 --- /dev/null +++ b/static/MySQL/10522_tbl_DOG_Role_Temp.sql @@ -0,0 +1,24 @@ + +USE fetchmetrics; + +-- DROP TABLE IF EXISTS fetchmetrics.DOG_Role_Temp; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'fetchmetrics' + AND TABLE_NAME = 'DOG_Role' +; + +CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Role_Temp ( + id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_access_level_required INT + , id_role INT + , code VARCHAR(250) + , name VARCHAR(250) + , display_order INT + , active BIT + , guid BINARY(36) + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT +); \ No newline at end of file diff --git a/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql index c5b45a3..3a6965d 100644 --- a/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql +++ b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql @@ -1,7 +1,7 @@ USE fetchmetrics; -DROP TABLE IF EXISTS demo.DOG_Calc_User_Access_Temp; +DROP TABLE IF EXISTS demo.DOG_Calc_User_Temp; -- DROP TABLE IF EXISTS demo.DOG_Calc_User_Access_Temp; SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning @@ -13,6 +13,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Calc_User_Access_Temp ( id_user INT + , id_role INT , id_permission_required INT , priority_access_level_required INT , is_super_user BIT diff --git a/static/MySQL/70505_p_dog_calc_company.sql b/static/MySQL/70505_p_dog_calc_company.sql index aa2990c..19305f0 100644 --- a/static/MySQL/70505_p_dog_calc_company.sql +++ b/static/MySQL/70505_p_dog_calc_company.sql @@ -581,14 +581,6 @@ CALL fetchmetrics.p_dog_calc_company ( SELECT * FROM fetchmetrics.DOG_Company_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Company_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_company ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/70516_p_dog_get_many_user.sql b/static/MySQL/70516_p_dog_get_many_user.sql index 75c7416..5b39f7d 100644 --- a/static/MySQL/70516_p_dog_get_many_user.sql +++ b/static/MySQL/70516_p_dog_get_many_user.sql @@ -2,7 +2,7 @@ USE fetchmetrics; -- Clear previous proc -DROP PROCEDURE IF EXISTS p_dog_get_many_user; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_get_many_user; DELIMITER // @@ -148,6 +148,7 @@ BEGIN id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL , id_user INT , id_company INT + , id_role INT , id_permission_required INT NOT NULL , priority_access_level_required INT NOT NULL , is_super_user BIT @@ -379,6 +380,7 @@ BEGIN INSERT INTO tmp_User ( id_user + , id_role , id_company , id_permission_required , priority_access_level_required @@ -401,6 +403,7 @@ BEGIN ) SELECT CALC_USER_T.id_user + , CALC_USER_T.id_role , CAN_ACCESS_USER.id_company , CALC_USER_T.id_permission_required , CALC_USER_T.priority_access_level_required @@ -511,6 +514,8 @@ BEGIN , USER.surname , USER.email , USER.is_email_verified + , t_USER.id_role + , ROLES.name AS name_role , t_USER.id_company , t_COMPANY.name AS name_company , t_COMPANY.website AS website_company @@ -521,6 +526,7 @@ BEGIN FROM tmp_User t_USER -- INNER JOIN tmp_User_Access t_USER_ACCESS INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user = USER.id_user + LEFT JOIN fetchmetrics.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company ; diff --git a/static/MySQL/70518_p_dog_save_user.sql b/static/MySQL/70518_p_dog_save_user.sql index e7fd29d..54a645c 100644 --- a/static/MySQL/70518_p_dog_save_user.sql +++ b/static/MySQL/70518_p_dog_save_user.sql @@ -14,10 +14,13 @@ BEGIN DECLARE v_code_type_error_bad_data VARCHAR(100); DECLARE v_id_type_error_bad_data INT; DECLARE v_id_permission_product INT; - DECLARE v_id_permission_user_admin LONGTEXT; + DECLARE v_id_permission_user_edit INT; DECLARE v_id_change_set INT; DECLARE v_id_access_level_edit INT; - DECLARE v_can_admin_user BIT; + DECLARE v_is_super_user BIT; + DECLARE v_can_edit_user BIT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_user INT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -45,7 +48,7 @@ BEGIN MET.id_type , @errno , @text - FROM fetchmetrics.Shop_Msg_Error_Type MET + FROM fetchmetrics.CORE_Msg_Error_Type MET WHERE MET.code = 'MYSQL_ERROR' ; SELECT * @@ -55,26 +58,27 @@ BEGIN SET v_time_start := CURRENT_TIMESTAMP(6); SET v_code_type_error_bad_data := 'BAD_DATA'; - SET v_id_type_error_bad_data := (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); - SET v_id_access_level_edit := (SELECT id_access_level FROM Shop_Access_Level WHERE code = 'EDIT' LIMIT 1); - SET v_id_permission_user_admin := (SELECT GROUP_CONCAT(id_permission SEPARATOR ',') FROM Shop_Permission WHERE code = 'STORE_USER_ADMIN' LIMIT 1); - CALL p_validate_guid ( a_guid ); + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_permission_user_edit := (SELECT GROUP_CONCAT(PERMISSION.id_permission SEPARATOR ',') FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_CREATE' LIMIT 1); + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); DROP TABLE IF EXISTS tmp_Msg_Error; - DROP TABLE IF EXISTS tmp_User; + DROP TABLE IF EXISTS tmp_User_Save_User; - CREATE TABLE tmp_User ( + CREATE TABLE tmp_User_Save_User ( id_user INT NOT NULL - , id_user_auth0 VARCHAR(200) NOT NULL - , firstname VARCHAR(255) - , surname VARCHAR(255) + , id_role INT + , id_role_previous INT + , id_user_auth0 VARCHAR(250) + , firstname VARCHAR(250) + , surname VARCHAR(250) , email VARCHAR(254) - , is_email_verified BIT NOT NULL - , is_super_user BIT NOT NULL - , id_currency_default INT - , id_region_default INT - , is_included_VAT_default BIT - , active BIT NOT NULL + , is_email_verified BIT + , is_super_user BIT + , active BIT , name_error VARCHAR(1000) ); @@ -86,46 +90,49 @@ BEGIN ); -- Get data from Temp table - INSERT INTO tmp_User ( + INSERT INTO tmp_User_Save_User ( id_user , id_user_auth0 + , id_role , firstname , surname , email , is_email_verified , is_super_user - , id_currency_default - , id_region_default - , is_included_VAT_default , active ) SELECT - U_T.id_user - , U_T.id_user_auth0 - , IFNULL(U_T.firstname, U.firstname) AS firstname - , IFNULL(U_T.surname, U.surname) AS surname - , IFNULL(U_T.email, U.email) AS email - , IFNULL(U_T.is_email_verified, U.is_email_verified) AS is_email_verified - , IFNULL(U_T.is_super_user, U.is_super_user) AS is_super_user - , IFNULL(U_T.id_currency_default, U.id_currency_default) AS id_currency_default - , IFNULL(U_T.id_region_default, U.id_region_default) AS id_region_default - , IFNULL(U_T.is_included_VAT_default, U.is_included_VAT_default) AS is_included_VAT_default - , IFNULL(IFNULL(U_T.active, U.active), 1) AS active - , IFNULL(U_T.display_order, PC.display_order) AS display_order - FROM fetchmetrics.Shop_User_Temp U_T - LEFT JOIN Shop_User U ON U_T.id_user = U.id_user - WHERE U_T.guid = a_guid + USER_T.id_user + , USER_T.id_user_auth0 + , USER_T.id_role + , IFNULL(USER_T.firstname, USER.firstname) AS firstname + , IFNULL(USER_T.surname, USER.surname) AS surname + , IFNULL(USER_T.email, USER.email) AS email + , IFNULL(USER_T.is_email_verified, USER.is_email_verified) AS is_email_verified + , IFNULL(USER_T.is_super_user, USER.is_super_user) AS is_super_user + , COALESCE(USER_T.active, USER.active, 1) AS active + FROM fetchmetrics.DOG_User_Temp USER_T + LEFT JOIN fetchmetrics.DOG_User USER ON USER_T.id_user = USER.id_user + WHERE USER_T.guid = a_guid ; - UPDATE tmp_User t_U + UPDATE tmp_User_Save_User t_USER SET - t_U.name_error = IFNULL(t_U.email, t_U.id_user_auth0) + t_USER.name_error = IFNULL(t_USER.email, t_USER.id_user_auth0) ; -- Validation -- Missing mandatory fields - -- email - IF EXISTS (SELECT * FROM tmp_User t_U WHERE ISNULL(t_U.email) LIMIT 1) THEN + -- role + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + LEFT JOIN fetchmetrics.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + WHERE + ISNULL(t_USER.id_role) + OR ISNULL(ROLES.id_role) + LIMIT 1 + ) THEN INSERT INTO tmp_Msg_Error ( id_type , code @@ -134,13 +141,31 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following User(s) do not have an email: ', GROUP_CONCAT(t_U.name_error SEPARATOR ', ')) AS msg - FROM tmp_User t_U - WHERE ISNULL(t_U.email) + , CONCAT('The following User(s) do not have a role: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + LEFT JOIN fetchmetrics.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + WHERE + ISNULL(t_USER.id_role) + OR ISNULL(ROLES.id_role) + ; + END IF; + -- email + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.email) LIMIT 1) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) do not have an email: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.email) ; END IF; -- is_super_user - IF EXISTS (SELECT * FROM tmp_User t_U WHERE ISNULL(t_U.is_super_user) LIMIT 1) THEN + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.is_super_user) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( id_type , code @@ -149,13 +174,13 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following User(s) do not have an is super user field: ', GROUP_CONCAT(t_U.name_error SEPARATOR ', ')) AS msg - FROM tmp_User t_U - WHERE ISNULL(t_U.is_super_user) + , CONCAT('The following User(s) do not have an is super user field: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.is_super_user) ; END IF; -- is_email_verified - IF EXISTS (SELECT * FROM tmp_User t_U WHERE ISNULL(t_U.is_email_verified) LIMIT 1) THEN + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE ISNULL(t_USER.is_email_verified) LIMIT 1) THEN INSERT INTO tmp_Msg_Error ( id_type , code @@ -164,72 +189,135 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following User(s) do not have an is email verified: ', GROUP_CONCAT(t_U.name_error SEPARATOR ', ')) AS msg - FROM tmp_User t_U - WHERE ISNULL(t_U.is_email_verified) + , CONCAT('The following User(s) do not have an is email verified: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + WHERE ISNULL(t_USER.is_email_verified) ; END IF; + -- Get old role + UPDATE tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK + ON t_USER.id_user = USER_ROLE_LINK.id_user + AND USER_ROLE_LINK.active = 1 + INNER JOIN fetchmetrics.DOG_Role ROLES + ON USER_ROLE_LINK.id_role = ROLES.id_role + AND ROLES.active = 1 + SET t_USER.id_role_previous = USER_ROLE_LINK.id_role + WHERE t_USER.id_user > 0 + ; -- Permissions IF a_debug = 1 THEN - SELECT - a_guid -- GUID - , a_id_user -- ID User - , FALSE -- get inactive Users - , v_id_permission_user_admin -- IDs Permission - , v_id_access_level_edit -- ID Access Level - , NULL -- IDs Product + SELECT + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_edit -- ids_permission + , v_id_access_level_edit -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_edit -- ids_permission + , v_id_access_level_edit -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + CASE WHEN IFNULL(CALC_USER_T.can_edit, 0) = 1 THEN 1 ELSE 0 END AS can_edit + , IFNULL(CALC_USER_T.is_super_user, 0) AS is_super_user + , IFNULL(CALC_USER_T.priority_access_level_user, v_priority_access_level_none) AS priority_access_level + INTO + v_can_edit_user + , v_is_super_user + , v_priority_access_level_user + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE + CALC_USER_T.GUID = a_guid + AND CALC_USER_T.id_user = a_id_user + AND CALC_USER_T.id_permission_required = v_id_permission_user_edit + ; + + IF ( + v_is_super_user = 0 + AND EXISTS ( + WITH + Access_User_Company AS ( + SELECT USER_COMPANY_LINK.id_company + FROM fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK + WHERE USER_COMPANY_LINK.id_user = a_id_user + ) + , User_Is_In_Access_User_Company AS ( + SELECT + USER.id_user + , CASE WHEN ACCESS_USER_COMPANY.id_company IS NULL THEN 1 ELSE 0 END AS is_user_company_link_in_access_user_company + , ROW_NUMBER() OVER (PARTITION BY USER.id_user ORDER BY CASE WHEN ACCESS_USER_COMPANY.id_company IS NULL THEN 1 ELSE 0 END DESC) AS index_link_in_user + FROM fetchmetrics.DOG_User USER + INNER JOIN fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK ON USER.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN Access_User_Company ACCESS_USER_COMPANY ON USER_COMPANY_LINK.id_company = ACCESS_USER_COMPANY.id_company + ) + SELECT * + FROM tmp_User_Save_User t_USER + LEFT JOIN User_Is_In_Access_User_Company USER_IS_IN_COMPANY ON t_USER.id_user = USER_IS_IN_COMPANY.id_user + /* + LEFT JOIN fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK ON t_USER.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN User_Company USER_COMPANY ON USER_COMPANY_LINK.id_company = USER_COMPANY.id_company + WHERE USER_COMPANY.id_company IS NULL + */ + WHERE + USER_IS_IN_COMPANY.id_user IS NULL + OR ( + USER_IS_IN_COMPANY.index_link_in_user = 1 + AND USER_IS_IN_COMPANY.is_user_company_link_in_access_user_company = 0 + ) + ) + ) THEN + DELETE FROM tmp_Msg_Error; + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to edit User(s) in other Company(s).' + ) ; END IF; - CALL p_dog_calc_user_access( - a_guid -- GUID - , a_id_user -- ID User - , FALSE -- get inactive Users - , v_id_permission_user_admin -- IDs Permission - , v_id_access_level_edit -- ID Access Level - , NULL -- IDs Product - ); - -- replace with below - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , a_id_user -- ids_user - , FALSE -- get_inactive_user - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; - END IF; - - CALL fetchmetrics.p_dog_calc_user_access( - v_guid -- guid - , a_id_user -- ids_user - , FALSE -- get_inactive_user - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - SET v_can_admin_user := ( - SELECT IFNULL(UE_T.can_edit, 0) = 1 - FROM fetchmetrics.Shop_User_Eval_Temp UE_T - WHERE - UE_T.GUID = a_guid - AND UE_T.id_user = a_id_user - AND UE_T.id_permission = v_id_permission_user_admin - ); - - IF (v_can_admin_user = 0 AND EXISTS ( - SELECT * - FROM tmp_User t_U - WHERE - t_U.id_user <> a_id_user - )) THEN + IF ( + v_is_super_user = 0 + AND v_priority_access_level_user > v_priority_access_level_admin + AND EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + WHERE t_USER.id_user <> a_id_user + ) + ) THEN DELETE FROM tmp_Msg_Error; INSERT INTO tmp_Msg_Error ( id_type @@ -244,39 +332,126 @@ BEGIN ; END IF; - CALL p_dog_clear_calc_user_access(a_guid); + -- Attempt to change role they can't access + -- role from + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user = USER.id_user + INNER JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK ON t_USER.id_user = USER_ROLE_LINK.id_user + INNER JOIN fetchmetrics.DOG_Role ROLES ON USER_ROLE_LINK.id_role = ROLES.id_role + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + LIMIT 1 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) have role(s) you cannot access: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user = USER.id_user + INNER JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK ON t_USER.id_user = USER_ROLE_LINK.id_user + INNER JOIN fetchmetrics.DOG_Role ROLES ON USER_ROLE_LINK.id_role = ROLES.id_role + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + ; + END IF; + -- role to + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + LIMIT 1 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following User(s) have role(s) you cannot access: ', GROUP_CONCAT(t_USER.name_error SEPARATOR ', ')) AS msg + FROM tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_Role ROLES ON t_USER.id_role = ROLES.id_role + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON ROLES.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE ACCESS_LEVEL.priority < v_priority_access_level_user + ; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid, 0 ); + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN START TRANSACTION; - INSERT INTO Shop_User_Change_Set ( comment ) + INSERT INTO fetchmetrics.DOG_User_Change_Set ( comment ) VALUES ( a_comment ) ; SET v_id_change_set := LAST_INSERT_ID(); - UPDATE Shop_User U - INNER JOIN tmp_User t_U ON U.id_user = t_U.id_user + UPDATE fetchmetrics.DOG_User USER + INNER JOIN tmp_User_Save_User t_USER ON USER.id_user = t_USER.id_user SET - U.id_user_auth0 = t_U.id_user_auth0 - , U.firstname = t_U.firstname - , U.surname = t_U.surname - , U.email = t_U.email - , U.is_email_verified = t_U.is_email_verified - , U.is_super_user = t_U.is_super_user - , U.id_currency_default = t_U.id_currency_default - , U.id_region_default = t_U.id_region_default - , U.is_included_VAT_default = t_U.is_included_VAT_default - , U.active = t_U.active - , U.id_change_set = v_id_change_set + USER.id_user_auth0 = t_USER.id_user_auth0 + , USER.firstname = t_USER.firstname + , USER.surname = t_USER.surname + , USER.email = t_USER.email + , USER.is_email_verified = t_USER.is_email_verified + , USER.is_super_user = t_USER.is_super_user + , USER.active = t_USER.active + , USER.id_change_set = v_id_change_set ; + + IF EXISTS ( + SELECT * + FROM tmp_User_Save_User t_USER + WHERE + t_USER.id_role IS NOT NULL + AND t_USER.id_role_previous IS NULL + LIMIT 1 + ) THEN + INSERT INTO fetchmetrics.DOG_User_Role_Link ( + id_user + , id_role + , active + , id_user_created_by + ) + SELECT + t_USER.id_user + , t_USER.id_role + , t_USER.active + , a_id_user AS id_user_created_by + FROM tmp_User_Save_User t_USER + WHERE + t_USER.id_role IS NOT NULL + AND t_USER.id_role_previous IS NULL + ; + END IF; + + IF EXISTS (SELECT * FROM tmp_User_Save_User t_USER WHERE t_USER.id_role <> t_USER.id_role_previous LIMIT 1) THEN + UPDATE fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK + INNER JOIN tmp_User_Save_User t_USER ON USER_ROLE_LINK.id_user = t_USER.id_user + SET + USER_ROLE_LINK.id_role = t_USER.id_role + , USER_ROLE_LINK.id_change_set = v_id_change_set + ; + END IF; COMMIT; END IF; START TRANSACTION; - DELETE FROM Shop_User_Temp + DELETE FROM fetchmetrics.DOG_User_Temp WHERE GUID = a_guid; COMMIT; @@ -284,15 +459,15 @@ BEGIN # Errors SELECT * FROM tmp_Msg_Error t_ME - INNER JOIN fetchmetrics.Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + INNER JOIN fetchmetrics.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type ; IF a_debug = 1 THEN - SELECT * from tmp_User; + SELECT * from tmp_User_Save_User; END IF; DROP TABLE IF EXISTS tmp_Msg_Error; - DROP TABLE IF EXISTS tmp_User; + DROP TABLE IF EXISTS tmp_User_Save_User; IF a_debug = 1 THEN CALL fetchmetrics.p_debug_timing_reporting ( v_time_start ); @@ -300,3 +475,49 @@ BEGIN END // DELIMITER ; + + +/* + +CALL fetchmetrics.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug +); + CALL fetchmetrics.p_dog_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , 1 -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , 15 -- ids_permission + , 2 -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +CALL fetchmetrics.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug +); + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; + +CALL fetchmetrics.p_dog_save_user ( + 'Test' -- comment + , 'greensgreensgreensgreensgreensgreens' -- guid + , 1 -- id_user + , 1 -- debug +); + +CALL fetchmetrics.p_dog_clear_calc_user_access( + 'greensgreensgreensgreensgreensgreens' -- guid + , 0 -- debug +); + +*/ + diff --git a/static/MySQL/70520_p_dog_calc_role.sql b/static/MySQL/70520_p_dog_calc_role.sql new file mode 100644 index 0000000..2864220 --- /dev/null +++ b/static/MySQL/70520_p_dog_calc_role.sql @@ -0,0 +1,551 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_role; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_calc_role ( + IN a_guid BINARY(36) + , IN a_id_user INT + , IN a_get_all_role BIT + , IN a_get_inactive_role BIT + , IN a_ids_role TEXT + , IN a_names_role TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_show_errors BIT + , IN a_debug BIT +) +BEGIN + DECLARE v_can_view BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_code_type_error_no_permission VARCHAR(100); + DECLARE v_has_filter_role_id BIT; + DECLARE v_has_filter_role_name BIT; + DECLARE v_id_access_level_view INT; + DECLARE v_id_minimum INT; + DECLARE v_id_permission_user_view INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_id_type_error_no_permission INT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_user INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Role ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error_Calc_Role ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_Role t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Role; + END; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_code_type_error_no_permission := 'NO_PERMISSION'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1); + SET v_id_permission_user_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_VIEW' LIMIT 1); + SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + SET a_id_user := IFNULL(a_id_user, 0); + SET a_get_all_role := IFNULL(a_get_all_role, 0); + SET a_get_inactive_role := IFNULL(a_get_inactive_role, 0); + SET a_ids_role := TRIM(IFNULL(a_ids_role, '')); + SET a_names_role := TRIM(IFNULL(a_names_role, '')); + SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1); + SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1); + SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); + SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1); + SET a_show_errors := IFNULL(a_show_errors, 0); + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_guid + , a_id_user + , a_get_all_role + , a_get_inactive_role + , a_ids_role + , a_names_role + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_show_errors + , a_debug + ; + + SELECT + v_id_type_error_bad_data + , v_id_type_error_no_permission + , v_id_permission_user_view + , v_time_start + ; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Role_Calc_Role; + + CREATE TEMPORARY TABLE tmp_Role_Calc_Role ( + id_role INT NOT NULL + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Role ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Role ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Id_Calc_Role; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Role ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Name_Calc_Role; + + SET v_has_filter_role_id = CASE WHEN a_ids_role <> '' THEN 1 ELSE 0 END; + SET v_has_filter_role_name = CASE WHEN a_names_role <> '' THEN 1 ELSE 0 END; + + -- Permissions + IF a_debug = 1 THEN + SELECT + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CALC_USER_T.has_access, 0) + , IFNULL(CALC_USER_T.priority_access_level_user, v_priority_access_level_none) + INTO + v_can_view + , v_priority_access_level_user + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE CALC_USER_T.GUID = a_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT v_can_view; + END IF; + + IF (v_can_view = 0) THEN + DELETE t_ME + FROM tmp_Msg_Error_Calc_Role t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Calc_Role ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to view Dogs and ROLES.' + ) + ; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + a_guid + , 0 -- a_debug + ); + + -- ROLE + IF v_has_filter_role_id = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_ids_role, ',', a_debug); + + SET sql_mode = ''; + + INSERT INTO tmp_Split_Id_Calc_Role ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + IF v_has_filter_role_name = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_names_role, ',', a_debug); + + SET sql_mode = ''; + + INSERT INTO tmp_Split_Name_Calc_Role ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Role t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF EXISTS ( + SELECT * + FROM tmp_Split_Id_Calc_Role t_SPLIT_ID + LEFT JOIN fetchmetrics.DOG_Role ROLES ON t_SPLIT_ID.as_int = ROLES.id_role + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(ROLES.id_role) + OR ( + ROLES.active = 0 + AND a_get_inactive_role = 0 + ) + ) THEN + INSERT INTO tmp_Msg_Error_Calc_Role ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive Role IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL')) + FROM tmp_Split_Id_Calc_Role t_SPLIT_ID + LEFT JOIN fetchmetrics.DOG_Role ROLES ON t_SPLIT_ID.as_int = ROLES.id_role + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(ROLES.id_role) + OR ( + ROLES.active = 0 + AND a_get_inactive_role = 0 + ) + ; + /* Don't error on names, hand signals, or notes not found + ELSEIF EXISTS () + */ + ELSE + INSERT INTO tmp_Role_Calc_Role ( + id_role + , does_meet_id_filters + , does_meet_non_id_filters + ) + WITH + Role_Id_Filter AS ( + SELECT ROLES.id_role + FROM tmp_Split_Id_Calc_Role t_SPLIT_ID + INNER JOIN fetchmetrics.DOG_Role ROLES ON t_SPLIT_ID.as_int = ROLES.id_role + ) + , Role_Name_Filter AS ( + SELECT ROLES.id_role + FROM tmp_Split_Name_Calc_Role t_SPLIT_NAME + INNER JOIN fetchmetrics.DOG_Role ROLES ON ROLES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%') + WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL + ) + , Role_Filters AS ( + SELECT + ROLE_COMBINED.id_role + , MAX(ROLE_COMBINED.does_meet_id_filter) AS does_meet_id_filter + , MAX(ROLE_COMBINED.does_meet_name_filter) AS does_meet_name_filter + FROM ( + SELECT + ROLE_ID_FILTER.id_role + , 1 AS does_meet_id_filter + , 0 AS does_meet_name_filter + FROM Role_Id_Filter ROLE_ID_FILTER + UNION + SELECT + ROLE_NAME_FILTER.id_role + , 0 AS does_meet_id_filter + , 1 AS does_meet_name_filter + FROM Role_Name_Filter ROLE_NAME_FILTER + ) ROLE_COMBINED + GROUP BY ROLE_COMBINED.id_role + ) + SELECT + ROLES.id_role + , CASE WHEN + v_has_filter_role_id = 0 + OR IFNULL(ROLE_FILTERS.does_meet_id_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_id_filters + , CASE WHEN + ( + v_has_filter_role_name = 0 + ) + OR IFNULL(ROLE_FILTERS.does_meet_name_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_non_id_filters + FROM fetchmetrics.DOG_Role ROLES + LEFT JOIN Role_Filters ROLE_FILTERS ON ROLES.id_role = ROLE_FILTERS.id_role + -- LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON ROLE_FILTERS.id_access_level_required = ACCESS_LEVEL.id_access_level + WHERE + /* + ( + ACCESS_LEVEL.priority >= v_priority_access_level_user + ) + */ + ( + a_get_all_role = 1 + OR ( + v_has_filter_role_id = 1 + AND ROLE_FILTERS.does_meet_id_filter = 1 + ) + OR ( + v_has_filter_role_name = 1 + AND ROLE_FILTERS.does_meet_name_filter = 1 + ) + ) + AND ( + a_get_inactive_role = 1 + OR ROLES.active = 1 + ) + ; + END IF; + END IF; + + DELETE FROM tmp_Split_Id_Calc_Role; + DELETE FROM tmp_Split_Name_Calc_Role; + + IF a_debug = 1 THEN + SELECT 'After get ROLE'; + SELECT * FROM tmp_Role_Calc_Role; + END IF; + + -- Filter records + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Role t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + DELETE t_ROLES + FROM tmp_Role_Calc_Role t_ROLES + WHERE + ( + a_require_all_id_search_filters_met = 1 + AND ( + t_ROLES.does_meet_id_filters = 0 + ) + ) + OR ( + a_require_all_non_id_search_filters_met = 1 + AND ( + t_ROLES.does_meet_non_id_filters = 0 + ) + ) + OR ( + a_require_any_id_search_filters_met = 1 + AND t_ROLES.does_meet_id_filters = 0 + ) + OR ( + a_require_any_non_id_search_filters_met = 1 + AND t_ROLES.does_meet_non_id_filters = 0 + ) + ; + END IF; + + IF a_debug = 1 THEN + SELECT 'After filter ROLE'; + SELECT * FROM tmp_Role_Calc_Role; + END IF; + + -- Calculated fields + + IF a_debug = 1 THEN + SELECT 'Before non-permitted data deletion'; + SELECT * FROM tmp_Role_Calc_Role; + SELECT * FROM tmp_Msg_Error_Calc_Role; + END IF; + + IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Role t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT * FROM tmp_Role_Calc_Role; + END IF; + + DELETE FROM tmp_Role_Calc_Role; + END IF; + + IF a_debug = 1 THEN + SELECT 'After non-permitted data deletion'; + END IF; + + -- Outputs + START TRANSACTION; + -- ROLE + INSERT INTO fetchmetrics.DOG_Role_Temp ( + guid + , id_role + , code + , name + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + a_guid + , t_ROLES.id_role + , ROLES.code + , ROLES.name + , ROLES.active + + , t_ROLES.does_meet_id_filters + , t_ROLES.does_meet_non_id_filters + FROM fetchmetrics.DOG_Role ROLES + INNER JOIN tmp_Role_Calc_Role t_ROLES ON ROLES.id_role = t_ROLES.id_role + ORDER BY ROLES.name + ; + COMMIT; + + -- Errors + IF a_show_errors = 1 THEN + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_Role t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + END IF; + + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Role_Calc_Role; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 ); + + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Role; + DROP TEMPORARY TABLE IF EXISTS tmp_Role_Calc_Role; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + + +CALL fetchmetrics.p_dog_calc_role ( + 'gripe ' -- a_guid + , 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_role + , 0 -- a_get_inactive_role + , '' -- a_ids_role + , '' -- a_names_role + , 0 -- a_require_all_id_search_filters_met + , 0 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug +); + +SELECT * +FROM fetchmetrics.DOG_Role_Temp +; +CALL fetchmetrics.p_dog_clear_calc_role ( + 'gripe ' -- a_guid + , 1 -- debug +); + + +DELETE +FROM fetchmetrics.DOG_Role_Temp +; + +*/ diff --git a/static/MySQL/70520_p_dog_clear_calc_role.sql b/static/MySQL/70520_p_dog_clear_calc_role.sql new file mode 100644 index 0000000..59ac16b --- /dev/null +++ b/static/MySQL/70520_p_dog_clear_calc_role.sql @@ -0,0 +1,45 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_role; +DROP PROCEDURE IF EXISTS fetchmetrics.p_role_clear_calc_role; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_clear_calc_role ( + IN a_guid BINARY(36) + , IN a_debug BIT +) +BEGIN + DECLARE v_time_start TIMESTAMP(6); + SET v_time_start := CURRENT_TIMESTAMP(6); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + START TRANSACTION; + + DELETE ROLE_T + FROM fetchmetrics.DOG_Role_Temp ROLE_T + WHERE ROLE_T.GUID = a_guid + ; + + COMMIT; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_debug_timing_reporting( v_time_start ); + END IF; +END // +DELIMITER ; + +/* + +CALL fetchmetrics.p_dog_clear_calc_role ( + 'crips ' -- a_guid + , 1 -- debug +); + +SELECT * +FROM fetchmetrics.DOG_Calc_User_Access_Temp +WHERE GUID = 'chips ' +; + +*/ diff --git a/static/MySQL/70520_p_dog_get_many_role.sql b/static/MySQL/70520_p_dog_get_many_role.sql new file mode 100644 index 0000000..22fce43 --- /dev/null +++ b/static/MySQL/70520_p_dog_get_many_role.sql @@ -0,0 +1,371 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_get_many_role; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_get_many_role ( + IN a_id_user INT + , IN a_get_all_role BIT + , IN a_get_inactive_role BIT + , IN a_ids_role TEXT + , IN a_names_role TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_debug BIT +) +BEGIN + DECLARE v_can_view BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_code_type_error_no_permission VARCHAR(100); + DECLARE v_guid BINARY(36); + DECLARE v_id_access_level_view INT; + DECLARE v_id_minimum INT; + DECLARE v_id_permission_user_view INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_id_type_error_no_permission INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error; + END; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_guid := UUID(); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_code_type_error_no_permission := 'NO_PERMISSION'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1); + SET v_id_permission_user_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_VIEW' LIMIT 1); + SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + + SET a_id_user := IFNULL(a_id_user, 0); + /* + */ + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_id_user + , a_get_all_role + , a_get_inactive_role + , a_ids_role + , a_names_role + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_debug + ; + + SELECT + v_id_type_error_bad_data + , v_id_type_error_no_permission + , v_guid + , v_id_permission_user_view + , v_time_start + ; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_Role; + + CREATE TEMPORARY TABLE tmp_Role ( + id_role INT NOT NULL + , code VARCHAR(250) + , name VARCHAR(250) + , active BIT + , display_order INT + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + -- Permissions + IF a_debug = 1 THEN + SELECT + v_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + v_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CALC_USER_T.has_access, 0) + INTO + v_can_view + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE CALC_USER_T.GUID = v_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT v_can_view; + SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; + SELECT * FROM tmp_Msg_Error t_ERROR; + END IF; + + IF (v_can_view = 0) THEN + DELETE t_ME + FROM tmp_Msg_Error t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to view ROLE.' + ) + ; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + v_guid + , 0 -- a_debug + ); + + + -- Call Role Calc + IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- a_guid + , a_id_user -- a_id_user + , a_get_all_role -- a_get_all_role + , a_get_inactive_role -- a_get_inactive_role + , a_ids_role -- a_ids_role + , a_names_role -- a_names_role + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_role ( + v_guid -- a_guid + , a_id_user -- a_id_user + , a_get_all_role -- a_get_all_role + , a_get_inactive_role -- a_get_inactive_role + , a_ids_role -- a_ids_role + , a_names_role -- a_names_role + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ); + + IF a_debug = 1 THEN + SELECT COUNT(*) FROM fetchmetrics.DOG_Role_Temp; + SELECT * FROM fetchmetrics.DOG_Role_Temp; + END IF; + + INSERT INTO tmp_Role ( + id_role + , code + , name + , active + , display_order + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + ROLE_T.id_role + , ROLE_T.code + , ROLE_T.name + , ROLE_T.active + , ROLE_T.display_order + + , ROLE_T.does_meet_id_filters + , ROLE_T.does_meet_non_id_filters + FROM fetchmetrics.DOG_Role_Temp ROLE_T + WHERE ROLE_T.GUID = v_guid + ; + + IF a_debug = 1 THEN + SELECT COUNT(*) FROM tmp_Role; + SELECT * FROM tmp_Role; + END IF; + END IF; + + -- Filter outputs + IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT * FROM tmp_Role; + END IF; + + DELETE FROM tmp_Role; + END IF; + + + -- Outputs + -- ROLE + SELECT + t_ROLE.id_role + , t_ROLE.code + , t_ROLE.name + , t_ROLE.active + , t_ROLE.display_order + + , t_ROLE.does_meet_id_filters + , t_ROLE.does_meet_non_id_filters + FROM tmp_Role t_ROLE + LEFT JOIN fetchmetrics.DOG_Role ROLE ON t_ROLE.id_role = ROLE.id_role + ORDER BY t_ROLE.name + ; + + -- Errors + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Role; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_role( + v_guid -- a_guid + , 0 -- a_debug + ); + + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_Role; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + +CALL fetchmetrics.p_dog_get_many_role ( + 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_role + , 0 -- a_get_inactive_role + , '' -- a_ids_role + , '' -- a_names_role + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 1 -- a_require_any_non_id_search_filters_met + , 1 -- a_debug +); + + +CALL demo.p_dog_get_many_role ( + 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_role + , 0 -- a_get_inactive_role + , '' -- a_ids_role + , 'pat,point' -- a_names_role + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 1 -- a_require_any_non_id_search_filters_met + , 1 -- a_debug +); + +*/ \ No newline at end of file diff --git a/static/MySQL/70530_p_dog_calc_user_access.sql b/static/MySQL/70530_p_dog_calc_user_access.sql index ab35e98..e600495 100644 --- a/static/MySQL/70530_p_dog_calc_user_access.sql +++ b/static/MySQL/70530_p_dog_calc_user_access.sql @@ -1,9 +1,9 @@ -- Clear previous proc -DROP PROCEDURE IF EXISTS p_dog_user_eval; -DROP PROCEDURE IF EXISTS p_dog_calc_user_access; -DROP PROCEDURE IF EXISTS p_dog_user_calc; -DROP PROCEDURE IF EXISTS p_dog_calc_user_access; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_user_eval; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_user; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_user_calc; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_user_access; DELIMITER // CREATE PROCEDURE fetchmetrics.p_dog_calc_user_access ( @@ -188,6 +188,7 @@ BEGIN CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_User_Access ( id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL , id_user INT + , id_role INT , id_permission_required INT NOT NULL , priority_access_level_required INT NOT NULL , is_super_user BIT @@ -735,28 +736,48 @@ BEGIN END IF; -- Calculated fields - -- Priority Access Level User - WITH User_Access_Level AS ( - SELECT - USER.id_user - , MIN(IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none)) AS priority_access_level - FROM fetchmetrics.DOG_User USER -- tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS - LEFT JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK - ON USER.id_user = USER_ROLE_LINK.id_user - AND USER_ROLE_LINK.active = 1 - LEFT JOIN fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK - ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role - AND ROLE_PERMISSION_LINK.active = 1 - LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL - ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level - AND ACCESS_LEVEL.active = 1 - GROUP BY USER.id_user - ) + -- Priority Access Level and Role + WITH + User_Access_Level AS ( + SELECT + USER.id_user + , MIN(IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none)) AS priority_access_level + FROM fetchmetrics.DOG_User USER -- tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + LEFT JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK + ON USER.id_user = USER_ROLE_LINK.id_user + AND USER_ROLE_LINK.active = 1 + LEFT JOIN fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK + ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role + AND ROLE_PERMISSION_LINK.active = 1 + LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL + ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + GROUP BY USER.id_user + ) + , User_Role_And_Access_Level AS ( + SELECT + USER_ACCESS_LEVEL.id_user + , USER_ACCESS_LEVEL.priority_access_level + , ROLE_PERMISSION_LINK.id_role + , ROW_NUMBER() OVER (PARTITION BY USER_ACCESS_LEVEL.id_user, USER_ACCESS_LEVEL.priority_access_level) AS index_link_in_user_and_priority_access_level + FROM User_Access_Level USER_ACCESS_LEVEL + LEFT JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK + ON USER_ACCESS_LEVEL.id_user = USER_ROLE_LINK.id_user + AND USER_ROLE_LINK.active = 1 + LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL + ON USER_ACCESS_LEVEL.priority_access_level = ACCESS_LEVEL.priority + AND ACCESS_LEVEL.active = 1 + LEFT JOIN fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK + ON ACCESS_LEVEL.id_access_level = ROLE_PERMISSION_LINK.id_access_level + AND USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role + AND ROLE_PERMISSION_LINK.active = 1 + ) UPDATE tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS - INNER JOIN User_Access_Level USER_ACCESS_LEVEL ON t_CALC_USER_ACCESS.id_user = USER_ACCESS_LEVEL.id_user + INNER JOIN User_Role_And_Access_Level USER_ROLE_AND_ACCESS_LEVEL ON t_CALC_USER_ACCESS.id_user = USER_ROLE_AND_ACCESS_LEVEL.id_user SET - t_CALC_USER_ACCESS.priority_access_level_user = USER_ACCESS_LEVEL.priority_access_level - , t_CALC_USER_ACCESS.has_access = CASE WHEN USER_ACCESS_LEVEL.priority_access_level <= v_priority_access_level_required THEN 1 ELSE 0 END + t_CALC_USER_ACCESS.id_role = USER_ROLE_AND_ACCESS_LEVEL.id_role + , t_CALC_USER_ACCESS.priority_access_level_user = USER_ROLE_AND_ACCESS_LEVEL.priority_access_level + , t_CALC_USER_ACCESS.has_access = CASE WHEN USER_ROLE_AND_ACCESS_LEVEL.priority_access_level <= v_priority_access_level_required THEN 1 ELSE 0 END ; -- Has access @@ -791,6 +812,7 @@ BEGIN INSERT INTO fetchmetrics.DOG_Calc_User_Access_Temp ( guid , id_user + , id_role , id_permission_required , priority_access_level_required , is_super_user @@ -806,6 +828,7 @@ BEGIN SELECT a_guid , t_CALC_USER_ACCESS.id_user + , t_CALC_USER_ACCESS.id_role , t_CALC_USER_ACCESS.id_permission_required , t_CALC_USER_ACCESS.priority_access_level_required , t_CALC_USER_ACCESS.is_super_user diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index 3902903..7c03fb7 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -1127,20 +1127,6 @@ FROM fetchmetrics.DOG_Command_Category_Temp SELECT * FROM fetchmetrics.DOG_Command_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Command_Category_Temp CC -WHERE - CC.does_meet_id_filters - AND CC.does_meet_non_id_filters -; -SELECT * -FROM fetchmetrics.DOG_Command_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_command ( 'slips ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71111_p_dog_calc_command_modality.sql b/static/MySQL/71111_p_dog_calc_command_modality.sql index d9e8531..a632568 100644 --- a/static/MySQL/71111_p_dog_calc_command_modality.sql +++ b/static/MySQL/71111_p_dog_calc_command_modality.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_command_modality ( SELECT * FROM fetchmetrics.DOG_Command_Modality_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Command_Modality_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_command_modality ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index 730cf08..75a3a89 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -655,14 +655,6 @@ CALL fetchmetrics.p_dog_calc_location ( SELECT * FROM fetchmetrics.DOG_Location_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Location_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_location ( 'grops ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71220_p_dog_calc_button_shape.sql b/static/MySQL/71220_p_dog_calc_button_shape.sql index 5cd351b..c0c7ef4 100644 --- a/static/MySQL/71220_p_dog_calc_button_shape.sql +++ b/static/MySQL/71220_p_dog_calc_button_shape.sql @@ -584,14 +584,6 @@ CALL fetchmetrics.p_dog_calc_button_shape ( SELECT * FROM fetchmetrics.DOG_Button_Shape_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Button_Shape_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_button_shape ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71224_p_dog_calc_colour.sql b/static/MySQL/71224_p_dog_calc_colour.sql index 5bf36cd..56d31a4 100644 --- a/static/MySQL/71224_p_dog_calc_colour.sql +++ b/static/MySQL/71224_p_dog_calc_colour.sql @@ -528,14 +528,7 @@ CALL fetchmetrics.p_dog_calc_colour ( SELECT * FROM fetchmetrics.DOG_Colour_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Colour_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ + CALL fetchmetrics.p_dog_clear_calc_colour ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71228_p_dog_calc_image.sql b/static/MySQL/71228_p_dog_calc_image.sql index 22bd989..07e3fc2 100644 --- a/static/MySQL/71228_p_dog_calc_image.sql +++ b/static/MySQL/71228_p_dog_calc_image.sql @@ -887,14 +887,6 @@ CALL fetchmetrics.p_dog_calc_image ( SELECT * FROM fetchmetrics.DOG_Image_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Image_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_image ( 'grope ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71300_p_dog_calc_weather.sql b/static/MySQL/71300_p_dog_calc_weather.sql index 37f00de..84fd951 100644 --- a/static/MySQL/71300_p_dog_calc_weather.sql +++ b/static/MySQL/71300_p_dog_calc_weather.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_weather ( SELECT * FROM fetchmetrics.DOG_Weather_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Weather_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_weather ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71304_p_dog_calc_lighting_level.sql b/static/MySQL/71304_p_dog_calc_lighting_level.sql index 34e4531..2d196e9 100644 --- a/static/MySQL/71304_p_dog_calc_lighting_level.sql +++ b/static/MySQL/71304_p_dog_calc_lighting_level.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_lighting_level ( SELECT * FROM fetchmetrics.DOG_Lighting_Level_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Lighting_Level_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_lighting_level ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71312_p_dog_calc_distraction_type.sql b/static/MySQL/71312_p_dog_calc_distraction_type.sql index 92fe5d0..f8b97a8 100644 --- a/static/MySQL/71312_p_dog_calc_distraction_type.sql +++ b/static/MySQL/71312_p_dog_calc_distraction_type.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_distraction_type ( SELECT * FROM fetchmetrics.DOG_Distraction_Type_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Distraction_Type_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_distraction_type ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql index 89f7351..a4c52eb 100644 --- a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_distraction_intensity_level ( SELECT * FROM fetchmetrics.DOG_Distraction_Intensity_Level_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Distraction_Intensity_Level_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_distraction_intensity_level ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/71324_p_dog_calc_bribe.sql b/static/MySQL/71324_p_dog_calc_bribe.sql index ccca465..adac8e6 100644 --- a/static/MySQL/71324_p_dog_calc_bribe.sql +++ b/static/MySQL/71324_p_dog_calc_bribe.sql @@ -528,14 +528,6 @@ CALL fetchmetrics.p_dog_calc_bribe ( SELECT * FROM fetchmetrics.DOG_Bribe_Temp ; -/* -SELECT * -FROM fetchmetrics.DOG_Bribe_Temp C -WHERE - C.does_meet_id_filters - AND C.does_meet_non_id_filters -; -*/ CALL fetchmetrics.p_dog_clear_calc_bribe ( 'gripe ' -- a_guid , 1 -- debug diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index e199231..6cc8465 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -538,7 +538,7 @@ VALUES , 1 ) , ( - 3 + 2 , 17 , 1 , 1 @@ -546,7 +546,7 @@ VALUES , ( 3 , 1 - , 1 + , 2 , 1 ) , ( @@ -564,7 +564,7 @@ VALUES , ( 3 , 4 - , 1 + , 2 , 1 ) , ( @@ -582,7 +582,7 @@ VALUES , ( 3 , 7 - , 1 + , 2 , 1 ) , ( @@ -600,7 +600,7 @@ VALUES , ( 3 , 10 - , 1 + , 2 , 1 ) , ( diff --git a/static/bash/rebuild sql combined.sh b/static/bash/rebuild sql combined.sh index 67ed77e..05694fa 100644 --- a/static/bash/rebuild sql combined.sh +++ b/static/bash/rebuild sql combined.sh @@ -1,4 +1,4 @@ rm ./static/MySQL/00000_combined.sql -cat ./static/MySQL/* > ./static/MySQL/00000_combined.sql +cat ./static/MySQL/7* > ./static/MySQL/00000_combined.sql sed -i 's/parts/demo/g' ./static/MySQL/00000_combined.sql sed -i 's/ody demo/ody parts/g' ./static/MySQL/00000_combined.sql \ No newline at end of file diff --git a/static/css/pages/user/user.css b/static/css/pages/user/user.css index 3dab8b2..ab7d668 100644 --- a/static/css/pages/user/user.css +++ b/static/css/pages/user/user.css @@ -1,5 +1,11 @@ +#formFilters { + display: none; +} +.container-input { + margin: 0 auto; +} .container-input input { width: 250px; } \ No newline at end of file diff --git a/static/css/pages/user/users.css b/static/css/pages/user/users.css new file mode 100644 index 0000000..f3e67c3 --- /dev/null +++ b/static/css/pages/user/users.css @@ -0,0 +1,4 @@ +table.table-main thead tr th.company, +table.table-main tbody tr td.company { + display: none; +} \ No newline at end of file diff --git a/static/dist/css/user_account.bundle.css b/static/dist/css/user_account.bundle.css index 88b4cd7..4786185 100644 --- a/static/dist/css/user_account.bundle.css +++ b/static/dist/css/user_account.bundle.css @@ -66,5 +66,15 @@ } +#formFilters { + display: none; +} + +.container-input { + margin: 0 auto; +} +.container-input input { + width: 250px; +} /*# sourceMappingURL=user_account.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/user_account.bundle.css.map b/static/dist/css/user_account.bundle.css.map index 678621d..73f7093 100644 --- a/static/dist/css/user_account.bundle.css.map +++ b/static/dist/css/user_account.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/user_account.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C","sources":["webpack://app/./static/css/sections/dog.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/user_account.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;AChEA;IACI,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB;AACA;IACI,YAAY;AAChB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/user.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n#formFilters {\n display: none;\n}\n\n.container-input {\n margin: 0 auto;\n}\n.container-input input {\n width: 250px;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/user_accounts.bundle.css b/static/dist/css/user_accounts.bundle.css new file mode 100644 index 0000000..509adcb --- /dev/null +++ b/static/dist/css/user_accounts.bundle.css @@ -0,0 +1,73 @@ + + + +.container-input > input { + padding: 0vh 1vh; + border-radius: 0.5vh; + max-width: 7vh; +} + + +/* Right column */ +.rightcolumn { + min-width: fit-content; +} + +/* Main Table */ +#pageBody { + max-height: 88vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0.75vh 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} +table.table-main thead tr th.company, +table.table-main tbody tr td.company { + display: none; +} + +/*# sourceMappingURL=user_accounts.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/user_accounts.bundle.css.map b/static/dist/css/user_accounts.bundle.css.map new file mode 100644 index 0000000..a5d2492 --- /dev/null +++ b/static/dist/css/user_accounts.bundle.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/user_accounts.bundle.css","mappings":";;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;ACjEA;;IAEI,aAAa;AACjB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/users.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","table.table-main thead tr th.company,\ntable.table-main tbody tr td.company {\n display: none;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/main.bundle.js b/static/dist/js/main.bundle.js index 5042455..8e2c74f 100644 --- a/static/dist/js/main.bundle.js +++ b/static/dist/js/main.bundle.js @@ -655,6 +655,8 @@ var API = /*#__PURE__*/function () { updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData), deleteUser: (id) => request(`/users/${id}`, 'DELETE'), */ + + // User }, { key: "loginUser", value: function () { @@ -679,22 +681,21 @@ var API = /*#__PURE__*/function () { return _loginUser.apply(this, arguments); } return loginUser; - }() // dog - // Command categories + }() }, { - key: "saveCommandCategories", + key: "saveUsers", value: function () { - var _saveCommandCategories = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(commandCategories, formFilters, comment) { + var _saveUsers = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(users, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagCommandCategory] = commandCategories; + dataRequest[flagUser] = users; dataRequest[flagComment] = comment; _context3.next = 6; - return API.request(hashSaveDogCommandCategory, 'POST', dataRequest); + return API.request(hashSaveDogUser, 'POST', dataRequest); case 6: return _context3.abrupt("return", _context3.sent); case 7: @@ -703,25 +704,26 @@ var API = /*#__PURE__*/function () { } }, _callee3); })); - function saveCommandCategories(_x2, _x3, _x4) { - return _saveCommandCategories.apply(this, arguments); + function saveUsers(_x2, _x3, _x4) { + return _saveUsers.apply(this, arguments); } - return saveCommandCategories; - }() // Commands + return saveUsers; + }() // dog + // Command categories }, { - key: "saveCommands", + key: "saveCommandCategories", value: function () { - var _saveCommands = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(commands, formFilters, comment) { + var _saveCommandCategories = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(commandCategories, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagCommand] = commands; + dataRequest[flagCommandCategory] = commandCategories; dataRequest[flagComment] = comment; _context4.next = 6; - return API.request(hashSaveDogCommand, 'POST', dataRequest); + return API.request(hashSaveDogCommandCategory, 'POST', dataRequest); case 6: return _context4.abrupt("return", _context4.sent); case 7: @@ -730,25 +732,25 @@ var API = /*#__PURE__*/function () { } }, _callee4); })); - function saveCommands(_x5, _x6, _x7) { - return _saveCommands.apply(this, arguments); + function saveCommandCategories(_x5, _x6, _x7) { + return _saveCommandCategories.apply(this, arguments); } - return saveCommands; - }() // Dog Command Links + return saveCommandCategories; + }() // Commands }, { - key: "saveDogCommandLinks", + key: "saveCommands", value: function () { - var _saveDogCommandLinks = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(dogCommandLinks, formFilters, comment) { + var _saveCommands = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(commands, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagDogCommandLink] = dogCommandLinks; + dataRequest[flagCommand] = commands; dataRequest[flagComment] = comment; _context5.next = 6; - return API.request(hashSaveDogDogCommandLink, 'POST', dataRequest); + return API.request(hashSaveDogCommand, 'POST', dataRequest); case 6: return _context5.abrupt("return", _context5.sent); case 7: @@ -757,25 +759,25 @@ var API = /*#__PURE__*/function () { } }, _callee5); })); - function saveDogCommandLinks(_x8, _x9, _x10) { - return _saveDogCommandLinks.apply(this, arguments); + function saveCommands(_x8, _x9, _x10) { + return _saveCommands.apply(this, arguments); } - return saveDogCommandLinks; - }() // Locations + return saveCommands; + }() // Dog Command Links }, { - key: "saveLocations", + key: "saveDogCommandLinks", value: function () { - var _saveLocations = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(locations, formFilters, comment) { + var _saveDogCommandLinks = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(dogCommandLinks, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagLocation] = locations; + dataRequest[flagDogCommandLink] = dogCommandLinks; dataRequest[flagComment] = comment; _context6.next = 6; - return API.request(hashSaveDogLocation, 'POST', dataRequest); + return API.request(hashSaveDogDogCommandLink, 'POST', dataRequest); case 6: return _context6.abrupt("return", _context6.sent); case 7: @@ -784,25 +786,25 @@ var API = /*#__PURE__*/function () { } }, _callee6); })); - function saveLocations(_x11, _x12, _x13) { - return _saveLocations.apply(this, arguments); + function saveDogCommandLinks(_x11, _x12, _x13) { + return _saveDogCommandLinks.apply(this, arguments); } - return saveLocations; - }() // Button Icons + return saveDogCommandLinks; + }() // Locations }, { - key: "saveButtonIcons", + key: "saveLocations", value: function () { - var _saveButtonIcons = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(buttonIcons, formFilters, comment) { + var _saveLocations = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(locations, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagButtonIcon] = buttonIcons; + dataRequest[flagLocation] = locations; dataRequest[flagComment] = comment; _context7.next = 6; - return API.request(hashSaveDogButtonIcon, 'POST', dataRequest); + return API.request(hashSaveDogLocation, 'POST', dataRequest); case 6: return _context7.abrupt("return", _context7.sent); case 7: @@ -811,25 +813,25 @@ var API = /*#__PURE__*/function () { } }, _callee7); })); - function saveButtonIcons(_x14, _x15, _x16) { - return _saveButtonIcons.apply(this, arguments); + function saveLocations(_x14, _x15, _x16) { + return _saveLocations.apply(this, arguments); } - return saveButtonIcons; - }() // Command Button Links + return saveLocations; + }() // Button Icons }, { - key: "saveCommandButtonLinks", + key: "saveButtonIcons", value: function () { - var _saveCommandButtonLinks = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(links, formFilters, comment) { + var _saveButtonIcons = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(buttonIcons, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagCommandButtonLink] = links; + dataRequest[flagButtonIcon] = buttonIcons; dataRequest[flagComment] = comment; _context8.next = 6; - return API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest); + return API.request(hashSaveDogButtonIcon, 'POST', dataRequest); case 6: return _context8.abrupt("return", _context8.sent); case 7: @@ -838,25 +840,25 @@ var API = /*#__PURE__*/function () { } }, _callee8); })); - function saveCommandButtonLinks(_x17, _x18, _x19) { - return _saveCommandButtonLinks.apply(this, arguments); + function saveButtonIcons(_x17, _x18, _x19) { + return _saveButtonIcons.apply(this, arguments); } - return saveCommandButtonLinks; - }() // Assessments + return saveButtonIcons; + }() // Command Button Links }, { - key: "saveAssessments", + key: "saveCommandButtonLinks", value: function () { - var _saveAssessments = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(assessments, formFilters, comment) { + var _saveCommandButtonLinks = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(links, formFilters, comment) { var dataRequest; return _regeneratorRuntime().wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: dataRequest = {}; dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); - dataRequest[flagAssessment] = assessments; + dataRequest[flagCommandButtonLink] = links; dataRequest[flagComment] = comment; _context9.next = 6; - return API.request(hashSaveDogAssessment, 'POST', dataRequest); + return API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest); case 6: return _context9.abrupt("return", _context9.sent); case 7: @@ -865,7 +867,34 @@ var API = /*#__PURE__*/function () { } }, _callee9); })); - function saveAssessments(_x20, _x21, _x22) { + function saveCommandButtonLinks(_x20, _x21, _x22) { + return _saveCommandButtonLinks.apply(this, arguments); + } + return saveCommandButtonLinks; + }() // Assessments + }, { + key: "saveAssessments", + value: function () { + var _saveAssessments = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assessments, formFilters, comment) { + var dataRequest; + return _regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + dataRequest = {}; + dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); + dataRequest[flagAssessment] = assessments; + dataRequest[flagComment] = comment; + _context10.next = 6; + return API.request(hashSaveDogAssessment, 'POST', dataRequest); + case 6: + return _context10.abrupt("return", _context10.sent); + case 7: + case "end": + return _context10.stop(); + } + }, _callee10); + })); + function saveAssessments(_x23, _x24, _x25) { return _saveAssessments.apply(this, arguments); } return saveAssessments; @@ -873,10 +902,10 @@ var API = /*#__PURE__*/function () { }, { key: "saveAssessmentsDistractionsAndResponses", value: function () { - var _saveAssessmentsDistractionsAndResponses = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assessments, formFilters, comment) { + var _saveAssessmentsDistractionsAndResponses = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(assessments, formFilters, comment) { var filtersJson, dataRequest; - return _regeneratorRuntime().wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { + return _regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { case 0: filtersJson = DOM.convertForm2JSON(formFilters); filtersJson[attrIdAssessment] = null; @@ -884,17 +913,17 @@ var API = /*#__PURE__*/function () { dataRequest[flagFormFilters] = filtersJson; dataRequest[flagAssessment] = assessments; dataRequest[flagComment] = comment; - _context10.next = 8; + _context11.next = 8; return API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest); case 8: - return _context10.abrupt("return", _context10.sent); + return _context11.abrupt("return", _context11.sent); case 9: case "end": - return _context10.stop(); + return _context11.stop(); } - }, _callee10); + }, _callee11); })); - function saveAssessmentsDistractionsAndResponses(_x23, _x24, _x25) { + function saveAssessmentsDistractionsAndResponses(_x26, _x27, _x28) { return _saveAssessmentsDistractionsAndResponses.apply(this, arguments); } return saveAssessmentsDistractionsAndResponses; @@ -1029,7 +1058,7 @@ var BasePage = /*#__PURE__*/function () { }, { key: "logInitialisation", value: function logInitialisation() { - utils_Utils.consoleLogIfNotProductionEnvironment('Initializing ' + this.title + ' page'); + utils_Utils.consoleLogIfNotProductionEnvironment('Initialising ' + this.title + ' page'); } }, { key: "hookupCommonElements", @@ -8296,6 +8325,174 @@ var PageRetentionSchedule = /*#__PURE__*/function (_BasePage) { }(BasePage); retention_schedule_defineProperty(PageRetentionSchedule, "hash", hashPageDataRetentionSchedule); +;// ./static/js/pages/user/user.js +function user_typeof(o) { "@babel/helpers - typeof"; return user_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, user_typeof(o); } +function user_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function user_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, user_toPropertyKey(o.key), o); } } +function user_createClass(e, r, t) { return r && user_defineProperties(e.prototype, r), t && user_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function user_callSuper(t, o, e) { return o = user_getPrototypeOf(o), user_possibleConstructorReturn(t, user_isNativeReflectConstruct() ? Reflect.construct(o, e || [], user_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function user_possibleConstructorReturn(t, e) { if (e && ("object" == user_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return user_assertThisInitialized(t); } +function user_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function user_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (user_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function user_superPropGet(t, o, e, r) { var p = user_get(user_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function user_get() { return user_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = user_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, user_get.apply(null, arguments); } +function user_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = user_getPrototypeOf(t));); return t; } +function user_getPrototypeOf(t) { return user_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, user_getPrototypeOf(t); } +function user_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && user_setPrototypeOf(t, e); } +function user_setPrototypeOf(t, e) { return user_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, user_setPrototypeOf(t, e); } +function user_defineProperty(e, r, t) { return (r = user_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function user_toPropertyKey(t) { var i = user_toPrimitive(t, "string"); return "symbol" == user_typeof(i) ? i : i + ""; } +function user_toPrimitive(t, r) { if ("object" != user_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != user_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + +var PageUser = /*#__PURE__*/function (_BasePage) { + function PageUser(router) { + user_classCallCheck(this, PageUser); + return user_callSuper(this, PageUser, [router]); + } + user_inherits(PageUser, _BasePage); + return user_createClass(PageUser, [{ + key: "initialize", + value: function initialize() { + this.sharedInitialize(); + } + }, { + key: "leave", + value: function leave() { + user_superPropGet(PageUser, "leave", this, 3)([]); + } + }]); +}(BasePage); +user_defineProperty(PageUser, "hash", hashPageUserAccount); + +;// ./static/js/pages/user/users.js +function users_typeof(o) { "@babel/helpers - typeof"; return users_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, users_typeof(o); } +function users_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function users_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, users_toPropertyKey(o.key), o); } } +function users_createClass(e, r, t) { return r && users_defineProperties(e.prototype, r), t && users_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function users_callSuper(t, o, e) { return o = users_getPrototypeOf(o), users_possibleConstructorReturn(t, users_isNativeReflectConstruct() ? Reflect.construct(o, e || [], users_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function users_possibleConstructorReturn(t, e) { if (e && ("object" == users_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return users_assertThisInitialized(t); } +function users_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function users_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (users_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function users_superPropGet(t, o, e, r) { var p = users_get(users_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function users_get() { return users_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = users_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, users_get.apply(null, arguments); } +function users_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = users_getPrototypeOf(t));); return t; } +function users_getPrototypeOf(t) { return users_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, users_getPrototypeOf(t); } +function users_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && users_setPrototypeOf(t, e); } +function users_setPrototypeOf(t, e) { return users_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, users_setPrototypeOf(t, e); } +function users_defineProperty(e, r, t) { return (r = users_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function users_toPropertyKey(t) { var i = users_toPrimitive(t, "string"); return "symbol" == users_typeof(i) ? i : i + ""; } +function users_toPrimitive(t, r) { if ("object" != users_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != users_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + + + + + +var PageUsers = /*#__PURE__*/function (_TableBasePage) { + function PageUsers(router) { + var _this; + users_classCallCheck(this, PageUsers); + _this = users_callSuper(this, PageUsers, [router]); + users_defineProperty(_this, "callSaveTableContent", API.saveUsers); + _this.dogMixin = new DogTableMixinPage(_this); + return _this; + } + users_inherits(PageUsers, _TableBasePage); + return users_createClass(PageUsers, [{ + key: "initialize", + value: function initialize() { + this.sharedInitialize(); + } + }, { + key: "hookupFilters", + value: function hookupFilters() { + this.sharedHookupFilters(); + this.hookupFilterCompany(); + this.hookupFilterActive(); + } + }, { + key: "hookupFilterCompany", + value: function hookupFilterCompany() { + this.hookupFilter(attrIdCompany); + } + }, { + key: "loadRowTable", + value: function loadRowTable(rowJson) { + if (rowJson == null) return; + if (_verbose) { + utils_Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); + } + } + }, { + key: "getJsonRow", + value: function getJsonRow(row) { + if (row == null) return; + // let tdCompany = row.querySelector('td.' + flagCompany); + var inputRole = row.querySelector('td.' + flagRole + ' .' + flagRole); + var inputFirstname = row.querySelector('td.' + flagFirstname + ' .' + flagFirstname); + var inputSurname = row.querySelector('td.' + flagSurname + ' .' + flagSurname); + var inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes); + var buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive); + var jsonRow = users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty(users_defineProperty({}, attrIdUserAuth0, null), flagEmail, null), flagIsEmailVerified, null), attrIdCompany, company[attrIdCompany]), flagIsSuperUser, null), flagCanAdminDog, null), flagCanAdminUser, null), flagCompany, null), flagRole, null); + jsonRow[attrIdUser] = row.getAttribute(attrIdUser); + // jsonRow[attrIdCompany] = tdCompany.getAttribute(attrIdCompany); + jsonRow[attrIdRole] = DOM.getElementAttributeValueCurrent(inputRole); + jsonRow[flagFirstname] = DOM.getElementAttributeValueCurrent(inputFirstname); + jsonRow[flagSurname] = DOM.getElementAttributeValueCurrent(inputSurname); + jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes); + jsonRow[flagActive] = buttonActive.classList.contains(flagDelete); + console.log("jsonRow"); + console.log(jsonRow); + return jsonRow; + } + }, { + key: "initialiseRowNew", + value: function initialiseRowNew(tbody, row) {} + }, { + key: "postInitialiseRowNewCallback", + value: function postInitialiseRowNewCallback(tbody) { + var newRows = tbody.querySelectorAll('tr.' + flagRowNew); + var newestRow = newRows[0]; + var clickableElementsSelector = ['td.' + flagRole + ' div.' + flagRole].join(''); + newestRow.querySelectorAll(clickableElementsSelector).forEach(function (clickableElement) { + clickableElement.click(); + }); + } + }, { + key: "hookupTableMain", + value: function hookupTableMain() { + users_superPropGet(PageUsers, "hookupTableMain", this, 3)([]); + this.hookupFieldsRole(); + this.hookupFieldsFirstname(); + this.hookupFieldsSurname(); + this.hookupFieldsNotesTable(); + this.hookupFieldsActive(); + } + }, { + key: "hookupFieldsRole", + value: function hookupFieldsRole() { + this.hookupTableCellDdlPreviews(flagRole, utils_Utils.getListFromDict(filterRoles) // .sort((a, b) => a[flagName].localeCompare(b[flagName])) + ); + } + }, { + key: "hookupFieldsFirstname", + value: function hookupFieldsFirstname() { + this.hookupChangeHandlerTableCells(flagFirstname); + } + }, { + key: "hookupFieldsSurname", + value: function hookupFieldsSurname() { + this.hookupChangeHandlerTableCells(flagSurname); + } + }, { + key: "leave", + value: function leave() { + users_superPropGet(PageUsers, "leave", this, 3)([]); + } + }]); +}(TableBasePage); +users_defineProperty(PageUsers, "hash", hashPageUserAccounts); +users_defineProperty(PageUsers, "attrIdRowObject", attrIdUser); + ;// ./static/js/router.js function router_typeof(o) { "@babel/helpers - typeof"; return router_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, router_typeof(o); } function router_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -8331,7 +8528,7 @@ function router_toPrimitive(t, r) { if ("object" != router_typeof(t) || !t) retu // User // import PageUserLogin from './pages/user/login.js'; // import PageUserLogout from './pages/user/logout.js'; -// import PageUserAccount from './pages/user/account.js'; + @@ -8425,7 +8622,14 @@ var Router = /*#__PURE__*/function () { // User // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' }; // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' }; - // this.pages[hashPageUserAccount] = { name: 'PageUserAccount', module: PageUserAccount }; // pathModule: './pages/user/account.js' }; + this.pages[hashPageUserAccount] = { + name: 'PageUser', + module: PageUser + }; + this.pages[hashPageUserAccounts] = { + name: 'PageUsers', + module: PageUsers + }; // Routes this.routes = {}; // Core @@ -8511,7 +8715,14 @@ var Router = /*#__PURE__*/function () { // User // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState); // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState); - // this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState); + this.routes[hashPageUserAccount] = function () { + var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return _this.navigateToHash(hashPageUserAccount, isPopState); + }; + this.routes[hashPageUserAccounts] = function () { + var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return _this.navigateToHash(hashPageUserAccounts, isPopState); + }; this.initialize(); } return router_createClass(Router, [{ diff --git a/static/dist/js/main.bundle.js.map b/static/dist/js/main.bundle.js.map index 9c19444..f10f167 100644 --- a/static/dist/js/main.bundle.js.map +++ b/static/dist/js/main.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"js/main.bundle.js","mappings":"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","sources":["webpack://app/./static/js/lib/validation.js","webpack://app/./static/js/dom.js","webpack://app/./static/js/lib/events.js","webpack://app/./static/js/lib/local_storage.js","webpack://app/./static/js/api.js","webpack://app/./static/js/lib/utils.js","webpack://app/./static/js/components/common/temporary/overlay_confirm.js","webpack://app/./static/js/pages/base.js","webpack://app/./static/js/pages/core/home.js","webpack://app/./static/js/vendor/altcha.js","webpack://app/./static/js/pages/core/contact.js","webpack://app/./static/js/pages/core/contact-success.js","webpack://app/./static/js/pages/core/apply-founding-partner.js","webpack://app/./static/js/pages/core/apply-founding-partner-success.js","webpack://app/./static/js/pages/dog/home.js","webpack://app/./static/js/lib/business_objects/business_objects.js","webpack://app/./static/js/components/common/temporary/overlay_error.js","webpack://app/./static/js/pages/base_table.js","webpack://app/./static/js/pages/dog/mixin.js","webpack://app/./static/js/pages/dog/mixin_table.js","webpack://app/./static/js/pages/dog/command_categories.js","webpack://app/./static/js/pages/dog/commands.js","webpack://app/./static/js/pages/dog/dog_command_links.js","webpack://app/./static/js/pages/dog/locations.js","webpack://app/./static/js/pages/dog/button_icons.js","webpack://app/./static/js/pages/dog/command_button_links.js","webpack://app/./static/js/pages/dog/assessment.js","webpack://app/./static/js/pages/dog/assessments.js","webpack://app/./static/js/pages/dog/calendar_entries.js","webpack://app/./static/js/pages/legal/accessibility_report.js","webpack://app/./static/js/pages/legal/accessibility_statement.js","webpack://app/./static/js/pages/legal/license.js","webpack://app/./static/js/pages/legal/privacy_policy.js","webpack://app/./static/js/pages/legal/retention_schedule.js","webpack://app/./static/js/router.js","webpack://app/./static/js/app.js","webpack://app/./static/css/main.css?0a91","webpack://app/./static/css/components/button.css?0e0b","webpack://app/./static/css/components/card.css","webpack://app/./static/css/components/dialog.css","webpack://app/./static/css/components/form.css?94e1","webpack://app/./static/css/components/image.css?9f9c","webpack://app/./static/css/components/label.css?b78f","webpack://app/./static/css/components/modal.css","webpack://app/./static/css/components/navigation.css","webpack://app/./static/css/components/overlay.css?6dfd","webpack://app/./static/css/components/table.css?e553","webpack://app/./static/css/layouts/header.css?da75","webpack://app/./static/css/layouts/footer.css?65e3","webpack://app/./static/css/layouts/table-main.css?8c15","webpack://app/./static/css/lib/reset.css","webpack://app/./static/css/lib/typography.css","webpack://app/./static/css/lib/utils.css","webpack://app/./static/css/lib/variables.css","webpack://app/./static/css/themes/light.css?855e"],"sourcesContent":["\nexport default class Validation {\n /*\n isNullOrWhitespace(v) {\n let txt = JSON.stringify(v).replace('/\\s\\g', '');\n return (txt == '' || 'null');\n }\n */\n\n static isEmpty(object) {\n\n let isEmpty = true;\n\n if (object !== null && object !== \"null\" && object !== undefined && object !== \"undefined\") {\n\n if (object.length == undefined) {\n isEmpty = false; // object exists but isn't a collection\n }\n else if (typeof object === \"function\") {\n isEmpty = false; // object is reference\n }\n else { // string or collection\n\n let isString = (typeof object == \"string\");\n\n if (isString) object = object.trim();\n\n if (object.length > 0) {\n\n if (isString) {\n isEmpty = false; // String greater than length 0\n }\n else {\n\n if (typeof object[0] != \"string\") {\n isEmpty = false;\n }\n else {\n for(let i = 0; i < object.length; i++) {\n if (object[i] != \"\") {\n isEmpty = false;\n break\n }\n }\n }\n }\n }\n }\n }\n\n return isEmpty;\n }\n\n static isValidNumber(value, positiveOnly) {\n return !Validation.isEmpty(value) && !isNaN(value) && (!positiveOnly || parseFloat(value) > 0);\n }\n\n static getDataContentType(params) {\n\n var data = null;\n var contentType = '';\n\n if (!Validation.isEmpty(params)) {\n\n if (typeof params === \"string\") {\n data = params;\n contentType = \"application/x-www-form-urlencoded; charset=UTF-8\";\n }\n else {\n data = JSON.stringify(params);\n contentType = \"application/json; charset=UTF-8\";\n }\n }\n\n return { Data: data, ContentType: contentType };\n }\n\n static arrayContainsItem(array, itemValue) {\n\n var hasItem = false;\n\n if (!Validation.isEmpty(array) && !Validation.isEmpty(itemValue)) {\n\n var isJQueryElementArray = array[0] instanceof jQuery;\n\n if (isJQueryElementArray) {\n\n for (let i = 0; i < array.length; i++) {\n\n if (document.querySelectorAll(array[i]).is(itemValue)) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n var isDate = array[0] instanceof Date;\n\n if (isDate) {\n \n for (let i = 0; i < array.length; i++) {\n\n if (array[i].getTime() === itemValue.getTime()) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n for (let i = 0; i < array.length; i++) {\n\n if (array[i] == itemValue) {\n hasItem = true;\n break;\n }\n }\n }\n }\n }\n\n return hasItem;\n }\n\n static dictHasKey(d, k) {\n return (k in d);\n }\n static areEqualDicts(dict1, dict2) {\n const keys1 = Object.keys(dict1);\n const keys2 = Object.keys(dict2);\n \n if (keys1.length !== keys2.length) {\n return false;\n }\n \n for (let key of keys1) {\n if (dict1[key] !== dict2[key]) {\n return false;\n }\n }\n \n return true;\n }\n\n static imageExists(url, callback) {\n\n var img = new Image();\n\n img.onload = function() { callback(true); };\n img.onerror = function() { callback(false); };\n img.src = url;\n }\n\n static toFixedOrDefault(value, decimalPlaces, defaultValue = null) {\n return Validation.isValidNumber(value) ? parseFloat(value).toFixed(decimalPlaces) : defaultValue;\n }\n}\n","\nimport Utils from \"./lib/utils.js\";\nimport Validation from \"./lib/validation.js\";\n\nexport default class DOM {\n static setElementAttributesValuesCurrentAndPrevious(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementAttributeValueCurrent(element, data) {\n element.setAttribute(attrValueCurrent, data);\n }\n static setElementAttributeValuePrevious(element, data) {\n element.setAttribute(attrValuePrevious, data);\n }\n static setElementValuesCurrentAndPrevious(element, data) {\n DOM.setElementValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementValueCurrent(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n element.checked = data;\n }\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n element.value = data;\n }\n else {\n element.textContent = data;\n }\n }\n static setElementValueCurrentIfEmpty(element, data) {\n if (Validation.isEmpty(DOM.getElementValueCurrent(element))) {\n DOM.setElementValueCurrent(element, data);\n }\n }\n static getCellFromElement(element) {\n return element.closest('td');\n }\n static getRowFromElement(element, flagRow) {\n let selector = Validation.isEmpty(flagRow) ? 'tr' : 'tr.' + flagRow;\n return element.closest(selector);\n }\n static getClosestParent(element, parentSelector) {\n let parent = element.parentElement;\n while (parent) {\n if (parent.matches(parentSelector)) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n }\n static convertForm2JSON(elementForm) {\n let dataForm = {};\n if (Validation.isEmpty(elementForm)) {\n return dataForm;\n }\n let containersFilter = elementForm.querySelectorAll('.' + flagContainerInput + '.' + flagFilter);\n let containerFilter, labelFilter, keyFilter, filter;\n for (let indexFilter = 0; indexFilter < containersFilter.length; indexFilter++) {\n containerFilter = containersFilter[indexFilter];\n labelFilter = containerFilter.querySelector('label');\n keyFilter = labelFilter.getAttribute('for');\n filter = containerFilter.querySelector(`#${keyFilter}`);\n dataForm[keyFilter] = DOM.getElementValueCurrent(filter);\n }\n return dataForm;\n }\n static loadPageBody(contentNew) {\n let pageBody = document.querySelector(idPageBody);\n pageBody.innerHTML = contentNew;\n }\n static getHashPageCurrent() {\n const hashPageCurrent = document.body.dataset.page;\n return hashPageCurrent;\n }\n static updateAndCheckIsElementDirty(element) {\n element.setAttribute(attrValueCurrent, DOM.getElementValueCurrent(element));\n return DOM.isElementDirty(element);\n }\n static isElementDirty(element) {\n let isDirty = element.getAttribute(attrValuePrevious) != element.getAttribute(attrValueCurrent);\n DOM.handleDirtyElement(element, isDirty);\n return isDirty;\n }\n static handleDirtyElement(element, isDirty) {\n DOM.toggleElementHasClassnameFlag(element, isDirty, flagDirty);\n }\n static toggleElementHasClassnameFlag(element, elementHasFlag, flag) {\n let elementAlreadyHasFlag = element.classList.contains(flag);\n if (elementHasFlag == elementAlreadyHasFlag) return;\n if (elementHasFlag) {\n element.classList.add(flag);\n } else {\n element.classList.remove(flag);\n }\n }\n static hasDirtyChildrenContainer(container) {\n if (container == null) return false;\n return container.querySelector('.' + flagDirty) != null;\n }\n static hasDirtyChildrenNotDeletedContainer(container) {\n if (container == null || container.classList.contains(flagDelete)) return false;\n return container.querySelector('.' + flagDirty + ':not(.' + flagDelete + ', .' + flagDelete + ' *)') != null;\n }\n static getElementValueCurrent(element) {\n let returnVal = '';\n \n if (!Validation.isEmpty(element)) {\n \n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n returnVal = element.checked;\n }\n /*\n else if (element.classList.contains(flagIsDatePicker)) {\n returnVal = getDatePickerDate(element, adjust4DayLightSavings);\n }\n */\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n returnVal = element.value;\n }\n else if (element.classList.contains(flagButton) && element.classList.contains(flagActive)) { // tagName === 'BUTTON'\n returnVal = element.classList.contains(flagDelete);\n }\n else if (tagName === 'TD') {\n returnVal = DOM.getElementAttributeValueCurrent(element);\n }\n else if (tagName == 'SVG' && element.classList.contains(flagCheckbox)) {\n returnVal = (element.classList.contains(flagIsChecked))\n }\n else {\n returnVal = element.textContent;\n }\n }\n \n if (Validation.isEmpty(returnVal)) returnVal = '';\n \n return returnVal;\n }\n static getElementAttributeValueCurrent(element) {\n // debugger;\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValueCurrent);\n }\n static getElementAttributeValuePrevious(element) {\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValuePrevious);\n }\n /* base_table.handleChangeElementCellTable\n static updateAndCheckIsTableElementDirty(element) {\n let wasDirty = DOM.isElementDirty(element);\n let row = DOM.getRowFromElement(element);\n let wasDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n let isDirty = DOM.updateAndCheckIsElementDirty(element);\n let cell = DOM.getCellFromElement(element);\n Utils.consoleLogIfNotProductionEnvironment({element, row, cell, isDirty, wasDirty});\n if (isDirty != wasDirty) {\n DOM.handleDirtyElement(cell, isDirty);\n let isDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(row, isDirtyRow);\n }\n }\n }\n */\n static scrollToElement(parent, element) {\n // REQUIRED: parent has scroll-bar\n parent.scrollTop(parent.scrollTop() + (element.offset().top - parent.offset().top));\n }\n static isElementInContainer(container, element) {\n\n if (typeof jQuery === 'function') {\n if (container instanceof jQuery) container = container[0];\n if (element instanceof jQuery) element = element[0];\n }\n\n var containerBounds = container.getBoundingClientRect();\n var elementBounds = element.getBoundingClientRect();\n\n return (\n containerBounds.top <= elementBounds.top &&\n containerBounds.left <= elementBounds.left &&\n ((elementBounds.top + elementBounds.height) <= (containerBounds.top + containerBounds.height)) &&\n ((elementBounds.left + elementBounds.width) <= (containerBounds.left + containerBounds.width))\n );\n }\n static alertError(errorType, errorText) {\n alert(errorType + '\\n' + errorText);\n }\n static createOptionUnselectedProductVariation() {\n return {\n [flagProductVariationType]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariationType],\n [flagName]: 'Select Variation Type',\n [attrIdProductVariationType]: 0,\n },\n [flagProductVariation]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariation],\n [flagName]: 'Select Variation',\n [attrIdProductVariation]: 0,\n },\n };\n }\n static createOption(optionJson) {\n if (Validation.isEmpty(optionJson)) optionJson = {\n text: 'Select',\n value: 0,\n };\n let option = document.createElement('option');\n option.value = optionJson.value;\n option.textContent = optionJson.text;\n option.selected = optionJson.selected;\n return option;\n }\n\n static escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n static unescapeHtml(html) {\n const div = document.createElement('div');\n div.innerHTML = html;\n return div.textContent || div.innerText || '';\n }\n}\n","\nexport default class Events {\n static initialiseEventHandler(selectorElement, classInitialised, eventHandler) {\n document.querySelectorAll(selectorElement).forEach(function(element) {\n if (element.classList.contains(classInitialised)) return;\n eventHandler(element);\n element.classList.add(classInitialised);\n });\n }\n static hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n}","\nimport Validation from \"./validation.js\";\n\nexport default class LocalStorage {\n/*\nfunction getPageLocalStorage(pageHash) {\n\n let ls;\n try {\n ls = JSON.parse(localStorage.getItem(pageHash));\n } catch {\n\n }\n\n if (Validation.isEmpty(ls)) return {}\n\n return ls;\n}\nfunction getPageLocalStorageCurrent() {\n\n return JSON.parse(localStorage.getItem(hashPageCurrent));\n}\n\nfunction setPageLocalStorage(pageHash, newLS) {\n\n localStorage.setItem(pageHash, JSON.stringify(newLS));\n}\n\nfunction clearPageLocalStorage(pageHash) {\n localStorage.removeItem(pageHash);\n}\n\nfunction setupPageLocalStorage(pageHash) {\n\n let ls = getPageLocalStorage(pageHash);\n\n if (Validation.isEmpty(ls)) ls = {};\n\n setPageLocalStorage(pageHash, ls);\n}\n*/\n\n static getLocalStorage(key) {\n return JSON.parse(localStorage.getItem(key));\n }\n\n static setLocalStorage(key, newLS) {\n localStorage.setItem(key, JSON.stringify(newLS));\n }\n\n/*\nfunction setupPageLocalStorageNext(pageHashNext) {\n let lsOld = getPageLocalStorage(hashPageCurrent);\n hashPageCurrent = pageHashNext;\n clearPageLocalStorage(hashPageCurrent);\n setupPageLocalStorage(hashPageCurrent);\n let lsNew = getPageLocalStorage(hashPageCurrent);\n lsNew[keyBasket] = (keyBasket in lsOld) ? lsOld[keyBasket] : {'items': []};\n setPageLocalStorage(hashPageCurrent, lsNew);\n}\n*/\n}","import DOM from './dom.js';\n\nexport default class API {\n \n static getCsrfToken() {\n return document.querySelector(idCSRFToken).getAttribute('content');\n }\n \n static async request(hashEndpoint, method = 'GET', data = null, params = null) {\n const url = API.getUrlFromHash(hashEndpoint, params);\n const csrfToken = API.getCsrfToken();\n const options = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n [flagCsrfToken]: csrfToken,\n }\n };\n\n if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {\n data = { \n ...data, \n [flagCsrfToken]: csrfToken,\n };\n options.body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, options);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error('API request failed:', error);\n throw error;\n }\n }\n \n static getUrlFromHash(hash, params = null) {\n if (hash == null) hash = hashPageHome;\n let url = API.parameteriseUrl(_pathHost + hash, params);\n return url;\n }\n static parameteriseUrl(url, params) {\n if (params) {\n url += '?' + new URLSearchParams(params).toString();\n }\n return url;\n }\n static goToUrl(url) {\n window.location.href = url;\n }\n static goToHash(hash, params = null) {\n const url = API.getUrlFromHash(hash, params);\n API.goToUrl(url);\n }\n\n // specific api calls\n /* Example:\n getUsers: () => request('/users'),\n getUserById: (id) => request(`/users/${id}`),\n createUser: (userData) => request('/users', 'POST', userData),\n updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData),\n deleteUser: (id) => request(`/users/${id}`, 'DELETE'),\n */\n static async loginUser() {\n let callback = {};\n callback[flagCallback] = DOM.getHashPageCurrent();\n return await API.request(hashPageUserLogin, 'POST', callback);\n }\n\n // dog\n // Command categories\n static async saveCommandCategories(commandCategories, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandCategory] = commandCategories;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandCategory, 'POST', dataRequest);\n }\n \n // Commands\n static async saveCommands(commands, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommand] = commands;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommand, 'POST', dataRequest);\n }\n \n // Dog Command Links\n static async saveDogCommandLinks(dogCommandLinks, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagDogCommandLink] = dogCommandLinks;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogDogCommandLink, 'POST', dataRequest);\n }\n \n // Locations\n static async saveLocations(locations, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagLocation] = locations;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogLocation, 'POST', dataRequest);\n }\n \n // Button Icons\n static async saveButtonIcons(buttonIcons, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagButtonIcon] = buttonIcons;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogButtonIcon, 'POST', dataRequest);\n }\n \n // Command Button Links\n static async saveCommandButtonLinks(links, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandButtonLink] = links;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessments(assessments, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessment, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessmentsDistractionsAndResponses(assessments, formFilters, comment) {\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = null;\n let dataRequest = {};\n dataRequest[flagFormFilters] = filtersJson;\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest);\n }\n \n}\n","// Utility functions\n/*\nfunction $(selector) {\n return document.querySelector(selector);\n}\n\nfunction $$(selector) {\n return document.querySelectorAll(selector);\n}\n*/\nexport default class Utils {\n static getListFromDict(dict) {\n let list = [];\n for (let key in dict) {\n list.push(dict[key]);\n }\n return list;\n }\n static consoleLogIfNotProductionEnvironment(message) {\n if (environment.is_production != \"true\") {\n console.log(message);\n }\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayConfirm {\n static hookup(callbackSuccess) {\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.style.visibility = 'hidden';\n });\n });\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagSubmit, flagInitialised, (buttonConfirm) => {\n buttonConfirm.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n let textarea = overlay.querySelector('textarea');\n overlay.style.visibility = 'hidden';\n callbackSuccess(textarea.value);\n });\n });\n }\n static show() {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.classList.remove(flagIsCollapsed);\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\nimport Validation from \"../lib/validation.js\";\n\nexport default class BasePage {\n constructor(router) {\n if (!router) {\n throw new Error(\"Router is required\");\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"initialising with router: \", router);\n }\n this.router = router;\n this.title = titlePageCurrent;\n if (this.constructor === BasePage) {\n throw new Error(\"Cannot instantiate abstract class\");\n }\n \n if (!this.constructor.hash) {\n throw new Error(`Class ${this.constructor.name} must have a static hash attribute.`);\n }\n }\n\n initialize() {\n throw new Error(\"Method 'initialize()' must be implemented.\");\n }\n\n sharedInitialize() {\n this.logInitialisation();\n this.hookupCommonElements();\n }\n\n logInitialisation() {\n Utils.consoleLogIfNotProductionEnvironment('Initializing ' + this.title + ' page');\n }\n \n hookupCommonElements() {\n // hookupVideos();\n this.hookupLogos();\n this.hookupNavigation();\n this.hookupOverlays();\n }\n hookupLogos() {\n Events.hookupEventHandler(\"click\", \".\" + flagImageLogo + \",\" + \".\" + flagLogo, (event, element) => {\n Utils.consoleLogIfNotProductionEnvironment('clicking logo');\n this.router.navigateToHash(hashPageHome);\n });\n }\n /*\n hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n */\n hookupNavigation() {\n Events.hookupEventHandler(\"click\", idButtonHamburger, (event, element) => {\n let overlayHamburger = document.querySelector(idOverlayHamburger);\n if (overlayHamburger.classList.contains(flagIsCollapsed)) {\n overlayHamburger.classList.remove(flagIsCollapsed);\n overlayHamburger.classList.add(flagExpanded);\n } else {\n overlayHamburger.classList.remove(flagExpanded);\n overlayHamburger.classList.add(flagIsCollapsed);\n }\n });\n\n this.hookupButtonsNavUserAccount();\n this.hookupButtonsNavUserLogout();\n this.hookupButtonsNavUserLogin();\n }\n hookupButtonsNav(buttonSelector) {\n Events.hookupEventHandler(\"click\", buttonSelector, (event, button) => {\n let pageHash = buttonSelector.getAttribute('href');\n this.router.navigateToHash(pageHash); \n });\n }\n hookupButtonsNavUserAccount() {\n // this.hookupButtonsNav('.' + flagNavUserAccount);\n }\n hookupButtonsNavUserLogout() {\n // this.hookupButtonsNav('.' + flagNavUserLogout);\n }\n hookupButtonsNavUserLogin() {\n Events.hookupEventHandler(\"click\", '.' + flagNavUserLogin, (event, navigator) => { \n event.stopPropagation();\n this.leave();\n API.loginUser()\n .then((response) => {\n if (response.Success) {\n window.location.href = response[flagCallback];\n } else {\n DOM.alertError(\"Error\", response.Message);\n }\n });\n });\n }\n\n hookupOverlays() {\n this.hookupOverlayFromId(idOverlayConfirm);\n this.hookupOverlayFromId(idOverlayError);\n }\n\n hookupOverlayFromId(idOverlay) {\n Events.initialiseEventHandler(idOverlay, flagInitialised, (overlay) => {\n overlay.querySelector('button.' + flagCancel).addEventListener(\"click\", (event) => {\n event.stopPropagation();\n overlay.style.display = 'none';\n });\n });\n }\n\n hookupButtonSave() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagSave, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n Utils.consoleLogIfNotProductionEnvironment('saving page: ', this.title);\n OverlayConfirm.show();\n });\n });\n }\n\n leave() {\n Utils.consoleLogIfNotProductionEnvironment('Leaving ' + this.title + ' page');\n if (this.constructor === BasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n }\n setLocalStoragePage(dataPage) {\n LocalStorage.setLocalStorage(this.hash, dataPage);\n }\n getLocalStoragePage() {\n return LocalStorage.getLocalStorage(this.hash);\n }\n\n toggleShowButtonsSaveCancel(show, buttonContainerSelector = null) { // , buttonSave = null, buttonCancel = null\n if (Validation.isEmpty(buttonContainerSelector)) buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel;\n let buttonSave = document.querySelector(buttonContainerSelector + ' ' + idButtonSave);\n let buttonCancel = document.querySelector(buttonContainerSelector + ' ' + idButtonCancel);\n Utils.consoleLogIfNotProductionEnvironment({ show, buttonContainerSelector, buttonCancel, buttonSave });\n if (show) {\n buttonCancel.classList.remove(flagIsCollapsed);\n buttonSave.classList.remove(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('showing buttons');\n } else {\n buttonCancel.classList.add(flagIsCollapsed);\n buttonSave.classList.add(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('hiding buttons');\n }\n }\n\n static isDirtyFilter(filter) {\n let isDirty = DOM.updateAndCheckIsElementDirty(filter);\n if (isDirty) document.querySelectorAll(idTableMain + ' tbody tr').remove();\n return isDirty;\n }\n\n}","\n// internal\nimport BasePage from \"../base.js\";\n// external\n\n\nexport default class PageHome extends BasePage {\n static hash = hashPageHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n // this.hookupButtonsNav();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","var hi = Object.defineProperty;\nvar Or = (e) => {\n throw TypeError(e);\n};\nvar gi = (e, t, r) => t in e ? hi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;\nvar ne = (e, t, r) => gi(e, typeof t != \"symbol\" ? t + \"\" : t, r), zr = (e, t, r) => t.has(e) || Or(\"Cannot \" + r);\nvar H = (e, t, r) => (zr(e, t, \"read from private field\"), r ? r.call(e) : t.get(e)), Mt = (e, t, r) => t.has(e) ? Or(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Ut = (e, t, r, l) => (zr(e, t, \"write to private field\"), l ? l.call(e, r) : t.set(e, r), r);\nconst en = `(function(){\"use strict\";const d=new TextEncoder;function p(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}async function b(e,t,r){if(typeof crypto>\"u\"||!(\"subtle\"in crypto)||!(\"digest\"in crypto.subtle))throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");return p(await crypto.subtle.digest(r.toUpperCase(),d.encode(e+t)))}function w(e,t,r=\"SHA-256\",n=1e6,s=0){const o=new AbortController,a=Date.now();return{promise:(async()=>{for(let c=s;c<=n;c+=1){if(o.signal.aborted)return null;if(await b(t,c,r)===e)return{number:c,took:Date.now()-a}}return null})(),controller:o}}function h(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n{for(let u=n;u<=r;u+=1){if(o.signal.aborted||!c||!y)return null;try{const f=await crypto.subtle.decrypt({name:s,iv:g(u)},c,y);if(f)return{clearText:new TextDecoder().decode(f),took:Date.now()-a}}catch{}}return null};let c=null,y=null;try{y=h(e);const u=await crypto.subtle.digest(\"SHA-256\",d.encode(t));c=await crypto.subtle.importKey(\"raw\",u,s,!1,[\"decrypt\"])}catch{return{promise:Promise.reject(),controller:o}}return{promise:l(),controller:o}}let i;onmessage=async e=>{const{type:t,payload:r,start:n,max:s}=e.data;let o=null;if(t===\"abort\")i==null||i.abort(),i=void 0;else if(t===\"work\"){if(\"obfuscated\"in r){const{key:a,obfuscated:l}=r||{};o=await m(l,a,s,n)}else{const{algorithm:a,challenge:l,salt:c}=r||{};o=w(l,c,a,s,n)}i=o.controller,o.promise.then(a=>{self.postMessage(a&&{...a,worker:!0})})}}})();\n`, Fr = typeof self < \"u\" && self.Blob && new Blob([en], { type: \"text/javascript;charset=utf-8\" });\nfunction _i(e) {\n let t;\n try {\n if (t = Fr && (self.URL || self.webkitURL).createObjectURL(Fr), !t) throw \"\";\n const r = new Worker(t, {\n name: e == null ? void 0 : e.name\n });\n return r.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(t);\n }), r;\n } catch {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(en),\n {\n name: e == null ? void 0 : e.name\n }\n );\n } finally {\n t && (self.URL || self.webkitURL).revokeObjectURL(t);\n }\n}\nconst mi = \"5\";\nvar Qr;\ntypeof window < \"u\" && ((Qr = window.__svelte ?? (window.__svelte = {})).v ?? (Qr.v = /* @__PURE__ */ new Set())).add(mi);\nconst wi = 1, pi = 4, yi = 8, bi = 16, Ei = 1, xi = 2, Wt = \"[\", tn = \"[!\", rn = \"]\", Je = {}, W = Symbol(), $i = \"http://www.w3.org/1999/xhtml\", Mr = !1, oe = 2, nn = 4, It = 8, Yt = 16, pe = 32, ze = 64, yt = 128, re = 256, bt = 512, K = 1024, ye = 2048, et = 4096, Ke = 8192, St = 16384, ki = 32768, Zt = 65536, Ci = 1 << 19, ln = 1 << 20, ut = Symbol(\"$state\"), an = Symbol(\"legacy props\"), Ai = Symbol(\"\");\nvar on = Array.isArray, Ri = Array.prototype.indexOf, Ii = Array.from, Et = Object.keys, xt = Object.defineProperty, Pe = Object.getOwnPropertyDescriptor, Si = Object.getOwnPropertyDescriptors, Ti = Object.prototype, Ni = Array.prototype, sn = Object.getPrototypeOf;\nfunction fn(e) {\n for (var t = 0; t < e.length; t++)\n e[t]();\n}\nconst Li = typeof requestIdleCallback > \"u\" ? (e) => setTimeout(e, 1) : requestIdleCallback;\nlet dt = [], vt = [];\nfunction un() {\n var e = dt;\n dt = [], fn(e);\n}\nfunction cn() {\n var e = vt;\n vt = [], fn(e);\n}\nfunction Gt(e) {\n dt.length === 0 && queueMicrotask(un), dt.push(e);\n}\nfunction Di(e) {\n vt.length === 0 && Li(cn), vt.push(e);\n}\nfunction Ur() {\n dt.length > 0 && un(), vt.length > 0 && cn();\n}\nfunction dn(e) {\n return e === this.v;\n}\nfunction Pi(e, t) {\n return e != e ? t == t : e !== t || e !== null && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction vn(e) {\n return !Pi(e, this.v);\n}\nfunction Oi(e) {\n throw new Error(\"https://svelte.dev/e/effect_in_teardown\");\n}\nfunction zi() {\n throw new Error(\"https://svelte.dev/e/effect_in_unowned_derived\");\n}\nfunction Fi(e) {\n throw new Error(\"https://svelte.dev/e/effect_orphan\");\n}\nfunction Mi() {\n throw new Error(\"https://svelte.dev/e/effect_update_depth_exceeded\");\n}\nfunction Ui() {\n throw new Error(\"https://svelte.dev/e/hydration_failed\");\n}\nfunction ji(e) {\n throw new Error(\"https://svelte.dev/e/props_invalid_value\");\n}\nfunction Vi() {\n throw new Error(\"https://svelte.dev/e/state_descriptors_fixed\");\n}\nfunction Bi() {\n throw new Error(\"https://svelte.dev/e/state_prototype_fixed\");\n}\nfunction qi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_local_read\");\n}\nfunction Hi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_mutation\");\n}\nlet Wi = !1;\nfunction ue(e, t) {\n var r = {\n f: 0,\n // TODO ideally we could skip this altogether, but it causes type errors\n v: e,\n reactions: null,\n equals: dn,\n rv: 0,\n wv: 0\n };\n return r;\n}\nfunction He(e) {\n return /* @__PURE__ */ Yi(ue(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction hn(e, t = !1) {\n const r = ue(e);\n return t || (r.equals = vn), r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yi(e) {\n return k !== null && !ae && (k.f & oe) !== 0 && (ce === null ? Qi([e]) : ce.push(e)), e;\n}\nfunction P(e, t) {\n return k !== null && !ae && Dn() && (k.f & (oe | Yt)) !== 0 && // If the source was created locally within the current derived, then\n // we allow the mutation.\n (ce === null || !ce.includes(e)) && Hi(), Zi(e, t);\n}\nfunction Zi(e, t) {\n return e.equals(t) || (e.v, e.v = t, e.wv = En(), gn(e, ye), A !== null && (A.f & K) !== 0 && (A.f & (pe | ze)) === 0 && (ge === null ? el([e]) : ge.push(e))), t;\n}\nfunction gn(e, t) {\n var r = e.reactions;\n if (r !== null)\n for (var l = r.length, i = 0; i < l; i++) {\n var a = r[i], o = a.f;\n (o & ye) === 0 && (de(a, t), (o & (K | re)) !== 0 && ((o & oe) !== 0 ? gn(\n /** @type {Derived} */\n a,\n et\n ) : Lt(\n /** @type {Effect} */\n a\n )));\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction De(e) {\n var t = oe | ye, r = k !== null && (k.f & oe) !== 0 ? (\n /** @type {Derived} */\n k\n ) : null;\n return A === null || r !== null && (r.f & re) !== 0 ? t |= re : A.f |= ln, {\n ctx: B,\n deps: null,\n effects: null,\n equals: dn,\n f: t,\n fn: e,\n reactions: null,\n rv: 0,\n v: (\n /** @type {V} */\n null\n ),\n wv: 0,\n parent: r ?? A\n };\n}\nfunction _n(e) {\n var t = e.effects;\n if (t !== null) {\n e.effects = null;\n for (var r = 0; r < t.length; r += 1)\n we(\n /** @type {Effect} */\n t[r]\n );\n }\n}\nfunction Gi(e) {\n for (var t = e.parent; t !== null; ) {\n if ((t.f & oe) === 0)\n return (\n /** @type {Effect} */\n t\n );\n t = t.parent;\n }\n return null;\n}\nfunction Ji(e) {\n var t, r = A;\n Se(Gi(e));\n try {\n _n(e), t = $n(e);\n } finally {\n Se(r);\n }\n return t;\n}\nfunction mn(e) {\n var t = Ji(e), r = (Ce || (e.f & re) !== 0) && e.deps !== null ? et : K;\n de(e, r), e.equals(t) || (e.v = t, e.wv = En());\n}\nfunction Tt(e) {\n console.warn(\"https://svelte.dev/e/hydration_mismatch\");\n}\nlet D = !1;\nfunction Ge(e) {\n D = e;\n}\nlet O;\nfunction Re(e) {\n if (e === null)\n throw Tt(), Je;\n return O = e;\n}\nfunction Xe() {\n return Re(\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(O)\n );\n}\nfunction Z(e) {\n if (D) {\n if (/* @__PURE__ */ Te(O) !== null)\n throw Tt(), Je;\n O = e;\n }\n}\nfunction Ki() {\n for (var e = 0, t = O; ; ) {\n if (t.nodeType === 8) {\n var r = (\n /** @type {Comment} */\n t.data\n );\n if (r === rn) {\n if (e === 0) return t;\n e -= 1;\n } else (r === Wt || r === tn) && (e += 1);\n }\n var l = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(t)\n );\n t.remove(), t = l;\n }\n}\nfunction le(e, t = null, r) {\n if (typeof e != \"object\" || e === null || ut in e)\n return e;\n const l = sn(e);\n if (l !== Ti && l !== Ni)\n return e;\n var i = /* @__PURE__ */ new Map(), a = on(e), o = ue(0);\n a && i.set(\"length\", ue(\n /** @type {any[]} */\n e.length\n ));\n var f;\n return new Proxy(\n /** @type {any} */\n e,\n {\n defineProperty(s, c, v) {\n (!(\"value\" in v) || v.configurable === !1 || v.enumerable === !1 || v.writable === !1) && Vi();\n var h = i.get(c);\n return h === void 0 ? (h = ue(v.value), i.set(c, h)) : P(h, le(v.value, f)), !0;\n },\n deleteProperty(s, c) {\n var v = i.get(c);\n if (v === void 0)\n c in s && i.set(c, ue(W));\n else {\n if (a && typeof c == \"string\") {\n var h = (\n /** @type {Source} */\n i.get(\"length\")\n ), g = Number(c);\n Number.isInteger(g) && g < h.v && P(h, g);\n }\n P(v, W), jr(o);\n }\n return !0;\n },\n get(s, c, v) {\n var w;\n if (c === ut)\n return e;\n var h = i.get(c), g = c in s;\n if (h === void 0 && (!g || (w = Pe(s, c)) != null && w.writable) && (h = ue(le(g ? s[c] : W, f)), i.set(c, h)), h !== void 0) {\n var m = d(h);\n return m === W ? void 0 : m;\n }\n return Reflect.get(s, c, v);\n },\n getOwnPropertyDescriptor(s, c) {\n var v = Reflect.getOwnPropertyDescriptor(s, c);\n if (v && \"value\" in v) {\n var h = i.get(c);\n h && (v.value = d(h));\n } else if (v === void 0) {\n var g = i.get(c), m = g == null ? void 0 : g.v;\n if (g !== void 0 && m !== W)\n return {\n enumerable: !0,\n configurable: !0,\n value: m,\n writable: !0\n };\n }\n return v;\n },\n has(s, c) {\n var m;\n if (c === ut)\n return !0;\n var v = i.get(c), h = v !== void 0 && v.v !== W || Reflect.has(s, c);\n if (v !== void 0 || A !== null && (!h || (m = Pe(s, c)) != null && m.writable)) {\n v === void 0 && (v = ue(h ? le(s[c], f) : W), i.set(c, v));\n var g = d(v);\n if (g === W)\n return !1;\n }\n return h;\n },\n set(s, c, v, h) {\n var F;\n var g = i.get(c), m = c in s;\n if (a && c === \"length\")\n for (var w = v; w < /** @type {Source} */\n g.v; w += 1) {\n var z = i.get(w + \"\");\n z !== void 0 ? P(z, W) : w in s && (z = ue(W), i.set(w + \"\", z));\n }\n g === void 0 ? (!m || (F = Pe(s, c)) != null && F.writable) && (g = ue(void 0), P(g, le(v, f)), i.set(c, g)) : (m = g.v !== W, P(g, le(v, f)));\n var T = Reflect.getOwnPropertyDescriptor(s, c);\n if (T != null && T.set && T.set.call(h, v), !m) {\n if (a && typeof c == \"string\") {\n var Y = (\n /** @type {Source} */\n i.get(\"length\")\n ), M = Number(c);\n Number.isInteger(M) && M >= Y.v && P(Y, M + 1);\n }\n jr(o);\n }\n return !0;\n },\n ownKeys(s) {\n d(o);\n var c = Reflect.ownKeys(s).filter((g) => {\n var m = i.get(g);\n return m === void 0 || m.v !== W;\n });\n for (var [v, h] of i)\n h.v !== W && !(v in s) && c.push(v);\n return c;\n },\n setPrototypeOf() {\n Bi();\n }\n }\n );\n}\nfunction jr(e, t = 1) {\n P(e, e.v + t);\n}\nvar Vr, wn, pn, yn;\nfunction jt() {\n if (Vr === void 0) {\n Vr = window, wn = /Firefox/.test(navigator.userAgent);\n var e = Element.prototype, t = Node.prototype;\n pn = Pe(t, \"firstChild\").get, yn = Pe(t, \"nextSibling\").get, e.__click = void 0, e.__className = void 0, e.__attributes = null, e.__style = void 0, e.__e = void 0, Text.prototype.__t = void 0;\n }\n}\nfunction Jt(e = \"\") {\n return document.createTextNode(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction me(e) {\n return pn.call(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction Te(e) {\n return yn.call(e);\n}\nfunction G(e, t) {\n if (!D)\n return /* @__PURE__ */ me(e);\n var r = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(O)\n );\n return r === null && (r = O.appendChild(Jt())), Re(r), r;\n}\nfunction Br(e, t) {\n if (!D) {\n var r = (\n /** @type {DocumentFragment} */\n /* @__PURE__ */ me(\n /** @type {Node} */\n e\n )\n );\n return r instanceof Comment && r.data === \"\" ? /* @__PURE__ */ Te(r) : r;\n }\n return O;\n}\nfunction he(e, t = 1, r = !1) {\n let l = D ? O : e;\n for (var i; t--; )\n i = l, l = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l);\n if (!D)\n return l;\n var a = l == null ? void 0 : l.nodeType;\n if (r && a !== 3) {\n var o = Jt();\n return l === null ? i == null || i.after(o) : l.before(o), Re(o), o;\n }\n return Re(l), /** @type {TemplateNode} */\n l;\n}\nfunction Xi(e) {\n e.textContent = \"\";\n}\nlet wt = !1, $t = !1, kt = null, Oe = !1, Kt = !1;\nfunction qr(e) {\n Kt = e;\n}\nlet ct = [];\nlet k = null, ae = !1;\nfunction Ie(e) {\n k = e;\n}\nlet A = null;\nfunction Se(e) {\n A = e;\n}\nlet ce = null;\nfunction Qi(e) {\n ce = e;\n}\nlet V = null, J = 0, ge = null;\nfunction el(e) {\n ge = e;\n}\nlet bn = 1, Ct = 0, Ce = !1;\nfunction En() {\n return ++bn;\n}\nfunction ht(e) {\n var h;\n var t = e.f;\n if ((t & ye) !== 0)\n return !0;\n if ((t & et) !== 0) {\n var r = e.deps, l = (t & re) !== 0;\n if (r !== null) {\n var i, a, o = (t & bt) !== 0, f = l && A !== null && !Ce, s = r.length;\n if (o || f) {\n var c = (\n /** @type {Derived} */\n e\n ), v = c.parent;\n for (i = 0; i < s; i++)\n a = r[i], (o || !((h = a == null ? void 0 : a.reactions) != null && h.includes(c))) && (a.reactions ?? (a.reactions = [])).push(c);\n o && (c.f ^= bt), f && v !== null && (v.f & re) === 0 && (c.f ^= re);\n }\n for (i = 0; i < s; i++)\n if (a = r[i], ht(\n /** @type {Derived} */\n a\n ) && mn(\n /** @type {Derived} */\n a\n ), a.wv > e.wv)\n return !0;\n }\n (!l || A !== null && !Ce) && de(e, K);\n }\n return !1;\n}\nfunction tl(e, t) {\n for (var r = t; r !== null; ) {\n if ((r.f & yt) !== 0)\n try {\n r.fn(e);\n return;\n } catch {\n r.f ^= yt;\n }\n r = r.parent;\n }\n throw wt = !1, e;\n}\nfunction rl(e) {\n return (e.f & St) === 0 && (e.parent === null || (e.parent.f & yt) === 0);\n}\nfunction Nt(e, t, r, l) {\n if (wt) {\n if (r === null && (wt = !1), rl(t))\n throw e;\n return;\n }\n r !== null && (wt = !0);\n {\n tl(e, t);\n return;\n }\n}\nfunction xn(e, t, r = !0) {\n var l = e.reactions;\n if (l !== null)\n for (var i = 0; i < l.length; i++) {\n var a = l[i];\n (a.f & oe) !== 0 ? xn(\n /** @type {Derived} */\n a,\n t,\n !1\n ) : t === a && (r ? de(a, ye) : (a.f & K) !== 0 && de(a, et), Lt(\n /** @type {Effect} */\n a\n ));\n }\n}\nfunction $n(e) {\n var m;\n var t = V, r = J, l = ge, i = k, a = Ce, o = ce, f = B, s = ae, c = e.f;\n V = /** @type {null | Value[]} */\n null, J = 0, ge = null, Ce = (c & re) !== 0 && (ae || !Oe || k === null), k = (c & (pe | ze)) === 0 ? e : null, ce = null, Wr(e.ctx), ae = !1, Ct++;\n try {\n var v = (\n /** @type {Function} */\n (0, e.fn)()\n ), h = e.deps;\n if (V !== null) {\n var g;\n if (At(e, J), h !== null && J > 0)\n for (h.length = J + V.length, g = 0; g < V.length; g++)\n h[J + g] = V[g];\n else\n e.deps = h = V;\n if (!Ce)\n for (g = J; g < h.length; g++)\n ((m = h[g]).reactions ?? (m.reactions = [])).push(e);\n } else h !== null && J < h.length && (At(e, J), h.length = J);\n if (Dn() && ge !== null && !ae && h !== null && (e.f & (oe | et | ye)) === 0)\n for (g = 0; g < /** @type {Source[]} */\n ge.length; g++)\n xn(\n ge[g],\n /** @type {Effect} */\n e\n );\n return i !== null && Ct++, v;\n } finally {\n V = t, J = r, ge = l, k = i, Ce = a, ce = o, Wr(f), ae = s;\n }\n}\nfunction nl(e, t) {\n let r = t.reactions;\n if (r !== null) {\n var l = Ri.call(r, e);\n if (l !== -1) {\n var i = r.length - 1;\n i === 0 ? r = t.reactions = null : (r[l] = r[i], r.pop());\n }\n }\n r === null && (t.f & oe) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear\n // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n // allows us to skip the expensive work of disconnecting and immediately reconnecting it\n (V === null || !V.includes(t)) && (de(t, et), (t.f & (re | bt)) === 0 && (t.f ^= bt), _n(\n /** @type {Derived} **/\n t\n ), At(\n /** @type {Derived} **/\n t,\n 0\n ));\n}\nfunction At(e, t) {\n var r = e.deps;\n if (r !== null)\n for (var l = t; l < r.length; l++)\n nl(e, r[l]);\n}\nfunction Xt(e) {\n var t = e.f;\n if ((t & St) === 0) {\n de(e, K);\n var r = A, l = B, i = Oe;\n A = e, Oe = !0;\n try {\n (t & Yt) !== 0 ? hl(e) : An(e), Cn(e);\n var a = $n(e);\n e.teardown = typeof a == \"function\" ? a : null, e.wv = bn;\n var o = e.deps, f;\n Mr && Wi && e.f & ye;\n } catch (s) {\n Nt(s, e, r, l || e.ctx);\n } finally {\n Oe = i, A = r;\n }\n }\n}\nfunction il() {\n try {\n Mi();\n } catch (e) {\n if (kt !== null)\n Nt(e, kt, null);\n else\n throw e;\n }\n}\nfunction kn() {\n var e = Oe;\n try {\n var t = 0;\n for (Oe = !0; ct.length > 0; ) {\n t++ > 1e3 && il();\n var r = ct, l = r.length;\n ct = [];\n for (var i = 0; i < l; i++) {\n var a = al(r[i]);\n ll(a);\n }\n }\n } finally {\n $t = !1, Oe = e, kt = null;\n }\n}\nfunction ll(e) {\n var t = e.length;\n if (t !== 0)\n for (var r = 0; r < t; r++) {\n var l = e[r];\n if ((l.f & (St | Ke)) === 0)\n try {\n ht(l) && (Xt(l), l.deps === null && l.first === null && l.nodes_start === null && (l.teardown === null ? Rn(l) : l.fn = null));\n } catch (i) {\n Nt(i, l, null, l.ctx);\n }\n }\n}\nfunction Lt(e) {\n $t || ($t = !0, queueMicrotask(kn));\n for (var t = kt = e; t.parent !== null; ) {\n t = t.parent;\n var r = t.f;\n if ((r & (ze | pe)) !== 0) {\n if ((r & K) === 0) return;\n t.f ^= K;\n }\n }\n ct.push(t);\n}\nfunction al(e) {\n for (var t = [], r = e; r !== null; ) {\n var l = r.f, i = (l & (pe | ze)) !== 0, a = i && (l & K) !== 0;\n if (!a && (l & Ke) === 0) {\n if ((l & nn) !== 0)\n t.push(r);\n else if (i)\n r.f ^= K;\n else {\n var o = k;\n try {\n k = r, ht(r) && Xt(r);\n } catch (c) {\n Nt(c, r, null, r.ctx);\n } finally {\n k = o;\n }\n }\n var f = r.first;\n if (f !== null) {\n r = f;\n continue;\n }\n }\n var s = r.parent;\n for (r = r.next; r === null && s !== null; )\n r = s.next, s = s.parent;\n }\n return t;\n}\nfunction $(e) {\n var t;\n for (Ur(); ct.length > 0; )\n $t = !0, kn(), Ur();\n return (\n /** @type {T} */\n t\n );\n}\nasync function ol() {\n await Promise.resolve(), $();\n}\nfunction d(e) {\n var t = e.f, r = (t & oe) !== 0;\n if (k !== null && !ae) {\n ce !== null && ce.includes(e) && qi();\n var l = k.deps;\n e.rv < Ct && (e.rv = Ct, V === null && l !== null && l[J] === e ? J++ : V === null ? V = [e] : (!Ce || !V.includes(e)) && V.push(e));\n } else if (r && /** @type {Derived} */\n e.deps === null && /** @type {Derived} */\n e.effects === null) {\n var i = (\n /** @type {Derived} */\n e\n ), a = i.parent;\n a !== null && (a.f & re) === 0 && (i.f ^= re);\n }\n return r && (i = /** @type {Derived} */\n e, ht(i) && mn(i)), e.v;\n}\nfunction Qe(e) {\n var t = ae;\n try {\n return ae = !0, e();\n } finally {\n ae = t;\n }\n}\nconst sl = -7169;\nfunction de(e, t) {\n e.f = e.f & sl | t;\n}\nfunction fl(e) {\n A === null && k === null && Fi(), k !== null && (k.f & re) !== 0 && A === null && zi(), Kt && Oi();\n}\nfunction ul(e, t) {\n var r = t.last;\n r === null ? t.last = t.first = e : (r.next = e, e.prev = r, t.last = e);\n}\nfunction Fe(e, t, r, l = !0) {\n var i = A, a = {\n ctx: B,\n deps: null,\n nodes_start: null,\n nodes_end: null,\n f: e | ye,\n first: null,\n fn: t,\n last: null,\n next: null,\n parent: i,\n prev: null,\n teardown: null,\n transitions: null,\n wv: 0\n };\n if (r)\n try {\n Xt(a), a.f |= ki;\n } catch (s) {\n throw we(a), s;\n }\n else t !== null && Lt(a);\n var o = r && a.deps === null && a.first === null && a.nodes_start === null && a.teardown === null && (a.f & (ln | yt)) === 0;\n if (!o && l && (i !== null && ul(a, i), k !== null && (k.f & oe) !== 0)) {\n var f = (\n /** @type {Derived} */\n k\n );\n (f.effects ?? (f.effects = [])).push(a);\n }\n return a;\n}\nfunction cl(e) {\n const t = Fe(It, null, !1);\n return de(t, K), t.teardown = e, t;\n}\nfunction Vt(e) {\n fl();\n var t = A !== null && (A.f & pe) !== 0 && B !== null && !B.m;\n if (t) {\n var r = (\n /** @type {ComponentContext} */\n B\n );\n (r.e ?? (r.e = [])).push({\n fn: e,\n effect: A,\n reaction: k\n });\n } else {\n var l = Qt(e);\n return l;\n }\n}\nfunction dl(e) {\n const t = Fe(ze, e, !0);\n return () => {\n we(t);\n };\n}\nfunction vl(e) {\n const t = Fe(ze, e, !0);\n return (r = {}) => new Promise((l) => {\n r.outro ? Bt(t, () => {\n we(t), l(void 0);\n }) : (we(t), l(void 0));\n });\n}\nfunction Qt(e) {\n return Fe(nn, e, !1);\n}\nfunction er(e) {\n return Fe(It, e, !0);\n}\nfunction We(e, t = [], r = De) {\n const l = t.map(r);\n return tr(() => e(...l.map(d)));\n}\nfunction tr(e, t = 0) {\n return Fe(It | Yt | t, e, !0);\n}\nfunction Rt(e, t = !0) {\n return Fe(It | pe, e, !0, t);\n}\nfunction Cn(e) {\n var t = e.teardown;\n if (t !== null) {\n const r = Kt, l = k;\n qr(!0), Ie(null);\n try {\n t.call(null);\n } finally {\n qr(r), Ie(l);\n }\n }\n}\nfunction An(e, t = !1) {\n var r = e.first;\n for (e.first = e.last = null; r !== null; ) {\n var l = r.next;\n (r.f & ze) !== 0 ? r.parent = null : we(r, t), r = l;\n }\n}\nfunction hl(e) {\n for (var t = e.first; t !== null; ) {\n var r = t.next;\n (t.f & pe) === 0 && we(t), t = r;\n }\n}\nfunction we(e, t = !0) {\n var r = !1;\n if ((t || (e.f & Ci) !== 0) && e.nodes_start !== null) {\n for (var l = e.nodes_start, i = e.nodes_end; l !== null; ) {\n var a = l === i ? null : (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l)\n );\n l.remove(), l = a;\n }\n r = !0;\n }\n An(e, t && !r), At(e, 0), de(e, St);\n var o = e.transitions;\n if (o !== null)\n for (const s of o)\n s.stop();\n Cn(e);\n var f = e.parent;\n f !== null && f.first !== null && Rn(e), e.next = e.prev = e.teardown = e.ctx = e.deps = e.fn = e.nodes_start = e.nodes_end = null;\n}\nfunction Rn(e) {\n var t = e.parent, r = e.prev, l = e.next;\n r !== null && (r.next = l), l !== null && (l.prev = r), t !== null && (t.first === e && (t.first = l), t.last === e && (t.last = r));\n}\nfunction Bt(e, t) {\n var r = [];\n In(e, r, !0), gl(r, () => {\n we(e), t && t();\n });\n}\nfunction gl(e, t) {\n var r = e.length;\n if (r > 0) {\n var l = () => --r || t();\n for (var i of e)\n i.out(l);\n } else\n t();\n}\nfunction In(e, t, r) {\n if ((e.f & Ke) === 0) {\n if (e.f ^= Ke, e.transitions !== null)\n for (const o of e.transitions)\n (o.is_global || r) && t.push(o);\n for (var l = e.first; l !== null; ) {\n var i = l.next, a = (l.f & Zt) !== 0 || (l.f & pe) !== 0;\n In(l, t, a ? r : !1), l = i;\n }\n }\n}\nfunction Hr(e) {\n Sn(e, !0);\n}\nfunction Sn(e, t) {\n if ((e.f & Ke) !== 0) {\n e.f ^= Ke, (e.f & K) === 0 && (e.f ^= K), ht(e) && (de(e, ye), Lt(e));\n for (var r = e.first; r !== null; ) {\n var l = r.next, i = (r.f & Zt) !== 0 || (r.f & pe) !== 0;\n Sn(r, i ? t : !1), r = l;\n }\n if (e.transitions !== null)\n for (const a of e.transitions)\n (a.is_global || t) && a.in();\n }\n}\nfunction Tn(e) {\n throw new Error(\"https://svelte.dev/e/lifecycle_outside_component\");\n}\nlet B = null;\nfunction Wr(e) {\n B = e;\n}\nfunction Nn(e, t = !1, r) {\n B = {\n p: B,\n c: null,\n e: null,\n m: !1,\n s: e,\n x: null,\n l: null\n };\n}\nfunction Ln(e) {\n const t = B;\n if (t !== null) {\n e !== void 0 && (t.x = e);\n const o = t.e;\n if (o !== null) {\n var r = A, l = k;\n t.e = null;\n try {\n for (var i = 0; i < o.length; i++) {\n var a = o[i];\n Se(a.effect), Ie(a.reaction), Qt(a.fn);\n }\n } finally {\n Se(r), Ie(l);\n }\n }\n B = t.p, t.m = !0;\n }\n return e || /** @type {T} */\n {};\n}\nfunction Dn() {\n return !0;\n}\nconst _l = [\"touchstart\", \"touchmove\"];\nfunction ml(e) {\n return _l.includes(e);\n}\nlet Yr = !1;\nfunction Pn() {\n Yr || (Yr = !0, document.addEventListener(\n \"reset\",\n (e) => {\n Promise.resolve().then(() => {\n var t;\n if (!e.defaultPrevented)\n for (\n const r of\n /**@type {HTMLFormElement} */\n e.target.elements\n )\n (t = r.__on_r) == null || t.call(r);\n });\n },\n // In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)\n { capture: !0 }\n ));\n}\nfunction On(e) {\n var t = k, r = A;\n Ie(null), Se(null);\n try {\n return e();\n } finally {\n Ie(t), Se(r);\n }\n}\nfunction wl(e, t, r, l = r) {\n e.addEventListener(t, () => On(r));\n const i = e.__on_r;\n i ? e.__on_r = () => {\n i(), l(!0);\n } : e.__on_r = () => l(!0), Pn();\n}\nconst zn = /* @__PURE__ */ new Set(), qt = /* @__PURE__ */ new Set();\nfunction pl(e, t, r, l = {}) {\n function i(a) {\n if (l.capture || ft.call(t, a), !a.cancelBubble)\n return On(() => r == null ? void 0 : r.call(this, a));\n }\n return e.startsWith(\"pointer\") || e.startsWith(\"touch\") || e === \"wheel\" ? Gt(() => {\n t.addEventListener(e, i, l);\n }) : t.addEventListener(e, i, l), i;\n}\nfunction yl(e, t, r, l, i) {\n var a = { capture: l, passive: i }, o = pl(e, t, r, a);\n (t === document.body || t === window || t === document) && cl(() => {\n t.removeEventListener(e, o, a);\n });\n}\nfunction bl(e) {\n for (var t = 0; t < e.length; t++)\n zn.add(e[t]);\n for (var r of qt)\n r(e);\n}\nfunction ft(e) {\n var M;\n var t = this, r = (\n /** @type {Node} */\n t.ownerDocument\n ), l = e.type, i = ((M = e.composedPath) == null ? void 0 : M.call(e)) || [], a = (\n /** @type {null | Element} */\n i[0] || e.target\n ), o = 0, f = e.__root;\n if (f) {\n var s = i.indexOf(f);\n if (s !== -1 && (t === document || t === /** @type {any} */\n window)) {\n e.__root = t;\n return;\n }\n var c = i.indexOf(t);\n if (c === -1)\n return;\n s <= c && (o = s);\n }\n if (a = /** @type {Element} */\n i[o] || e.target, a !== t) {\n xt(e, \"currentTarget\", {\n configurable: !0,\n get() {\n return a || r;\n }\n });\n var v = k, h = A;\n Ie(null), Se(null);\n try {\n for (var g, m = []; a !== null; ) {\n var w = a.assignedSlot || a.parentNode || /** @type {any} */\n a.host || null;\n try {\n var z = a[\"__\" + l];\n if (z != null && (!/** @type {any} */\n a.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n // -> the target could not have been disabled because it emits the event in the first place\n e.target === a))\n if (on(z)) {\n var [T, ...Y] = z;\n T.apply(a, [e, ...Y]);\n } else\n z.call(a, e);\n } catch (F) {\n g ? m.push(F) : g = F;\n }\n if (e.cancelBubble || w === t || w === null)\n break;\n a = w;\n }\n if (g) {\n for (let F of m)\n queueMicrotask(() => {\n throw F;\n });\n throw g;\n }\n } finally {\n e.__root = t, delete e.currentTarget, Ie(v), Se(h);\n }\n }\n}\nfunction rr(e) {\n var t = document.createElement(\"template\");\n return t.innerHTML = e, t.content;\n}\nfunction Ae(e, t) {\n var r = (\n /** @type {Effect} */\n A\n );\n r.nodes_start === null && (r.nodes_start = e, r.nodes_end = t);\n}\n// @__NO_SIDE_EFFECTS__\nfunction ve(e, t) {\n var r = (t & Ei) !== 0, l = (t & xi) !== 0, i, a = !e.startsWith(\"\");\n return () => {\n if (D)\n return Ae(O, null), O;\n i === void 0 && (i = rr(a ? e : \"\" + e), r || (i = /** @type {Node} */\n /* @__PURE__ */ me(i)));\n var o = (\n /** @type {TemplateNode} */\n l || wn ? document.importNode(i, !0) : i.cloneNode(!0)\n );\n if (r) {\n var f = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(o)\n ), s = (\n /** @type {TemplateNode} */\n o.lastChild\n );\n Ae(f, s);\n } else\n Ae(o, o);\n return o;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction El(e, t, r = \"svg\") {\n var l = !e.startsWith(\"\"), i = `<${r}>${l ? e : \"\" + e}`, a;\n return () => {\n if (D)\n return Ae(O, null), O;\n if (!a) {\n var o = (\n /** @type {DocumentFragment} */\n rr(i)\n ), f = (\n /** @type {Element} */\n /* @__PURE__ */ me(o)\n );\n a = /** @type {Element} */\n /* @__PURE__ */ me(f);\n }\n var s = (\n /** @type {TemplateNode} */\n a.cloneNode(!0)\n );\n return Ae(s, s), s;\n };\n}\nfunction ee(e, t) {\n if (D) {\n A.nodes_end = O, Xe();\n return;\n }\n e !== null && e.before(\n /** @type {Node} */\n t\n );\n}\nfunction Fn(e, t) {\n return Mn(e, t);\n}\nfunction xl(e, t) {\n jt(), t.intro = t.intro ?? !1;\n const r = t.target, l = D, i = O;\n try {\n for (var a = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(r)\n ); a && (a.nodeType !== 8 || /** @type {Comment} */\n a.data !== Wt); )\n a = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(a);\n if (!a)\n throw Je;\n Ge(!0), Re(\n /** @type {Comment} */\n a\n ), Xe();\n const o = Mn(e, { ...t, anchor: a });\n if (O === null || O.nodeType !== 8 || /** @type {Comment} */\n O.data !== rn)\n throw Tt(), Je;\n return Ge(!1), /** @type {Exports} */\n o;\n } catch (o) {\n if (o === Je)\n return t.recover === !1 && Ui(), jt(), Xi(r), Ge(!1), Fn(e, t);\n throw o;\n } finally {\n Ge(l), Re(i);\n }\n}\nconst Ye = /* @__PURE__ */ new Map();\nfunction Mn(e, { target: t, anchor: r, props: l = {}, events: i, context: a, intro: o = !0 }) {\n jt();\n var f = /* @__PURE__ */ new Set(), s = (h) => {\n for (var g = 0; g < h.length; g++) {\n var m = h[g];\n if (!f.has(m)) {\n f.add(m);\n var w = ml(m);\n t.addEventListener(m, ft, { passive: w });\n var z = Ye.get(m);\n z === void 0 ? (document.addEventListener(m, ft, { passive: w }), Ye.set(m, 1)) : Ye.set(m, z + 1);\n }\n }\n };\n s(Ii(zn)), qt.add(s);\n var c = void 0, v = vl(() => {\n var h = r ?? t.appendChild(Jt());\n return Rt(() => {\n if (a) {\n Nn({});\n var g = (\n /** @type {ComponentContext} */\n B\n );\n g.c = a;\n }\n i && (l.$$events = i), D && Ae(\n /** @type {TemplateNode} */\n h,\n null\n ), c = e(h, l) || {}, D && (A.nodes_end = O), a && Ln();\n }), () => {\n var w;\n for (var g of f) {\n t.removeEventListener(g, ft);\n var m = (\n /** @type {number} */\n Ye.get(g)\n );\n --m === 0 ? (document.removeEventListener(g, ft), Ye.delete(g)) : Ye.set(g, m);\n }\n qt.delete(s), h !== r && ((w = h.parentNode) == null || w.removeChild(h));\n };\n });\n return Ht.set(c, v), c;\n}\nlet Ht = /* @__PURE__ */ new WeakMap();\nfunction $l(e, t) {\n const r = Ht.get(e);\n return r ? (Ht.delete(e), r(t)) : Promise.resolve();\n}\nfunction ke(e, t, [r, l] = [0, 0]) {\n D && r === 0 && Xe();\n var i = e, a = null, o = null, f = W, s = r > 0 ? Zt : 0, c = !1;\n const v = (g, m = !0) => {\n c = !0, h(m, g);\n }, h = (g, m) => {\n if (f === (f = g)) return;\n let w = !1;\n if (D && l !== -1) {\n if (r === 0) {\n const T = (\n /** @type {Comment} */\n i.data\n );\n T === Wt ? l = 0 : T === tn ? l = 1 / 0 : (l = parseInt(T.substring(1)), l !== l && (l = f ? 1 / 0 : -1));\n }\n const z = l > r;\n !!f === z && (i = Ki(), Re(i), Ge(!1), w = !0, l = -1);\n }\n f ? (a ? Hr(a) : m && (a = Rt(() => m(i))), o && Bt(o, () => {\n o = null;\n })) : (o ? Hr(o) : m && (o = Rt(() => m(i, [r + 1, l]))), a && Bt(a, () => {\n a = null;\n })), w && Ge(!0);\n };\n tr(() => {\n c = !1, t(v), c || h(null, null);\n }, s), D && (i = O);\n}\nfunction Ze(e, t, r, l, i) {\n var a = e, o = \"\", f;\n tr(() => {\n if (o === (o = t() ?? \"\")) {\n D && Xe();\n return;\n }\n f !== void 0 && (we(f), f = void 0), o !== \"\" && (f = Rt(() => {\n if (D) {\n O.data;\n for (var s = Xe(), c = s; s !== null && (s.nodeType !== 8 || /** @type {Comment} */\n s.data !== \"\"); )\n c = s, s = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(s);\n if (s === null)\n throw Tt(), Je;\n Ae(O, c), a = Re(s);\n return;\n }\n var v = o + \"\", h = rr(v);\n Ae(\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(h),\n /** @type {TemplateNode} */\n h.lastChild\n ), a.before(h);\n }));\n });\n}\nfunction kl(e, t, r, l, i) {\n var f;\n D && Xe();\n var a = (f = t.$$slots) == null ? void 0 : f[r], o = !1;\n a === !0 && (a = t.children, o = !0), a === void 0 || a(e, o ? () => l : l);\n}\nfunction Cl(e, t) {\n Gt(() => {\n var r = e.getRootNode(), l = (\n /** @type {ShadowRoot} */\n r.host ? (\n /** @type {ShadowRoot} */\n r\n ) : (\n /** @type {Document} */\n r.head ?? /** @type {Document} */\n r.ownerDocument.head\n )\n );\n if (!l.querySelector(\"#\" + t.hash)) {\n const i = document.createElement(\"style\");\n i.id = t.hash, i.textContent = t.code, l.appendChild(i);\n }\n });\n}\nconst Zr = [...` \t\n\\r\\f \\v\\uFEFF`];\nfunction Al(e, t, r) {\n var l = \"\" + e;\n if (r) {\n for (var i in r)\n if (r[i])\n l = l ? l + \" \" + i : i;\n else if (l.length)\n for (var a = i.length, o = 0; (o = l.indexOf(i, o)) >= 0; ) {\n var f = o + a;\n (o === 0 || Zr.includes(l[o - 1])) && (f === l.length || Zr.includes(l[f])) ? l = (o === 0 ? \"\" : l.substring(0, o)) + l.substring(f + 1) : o = f;\n }\n }\n return l === \"\" ? null : l;\n}\nfunction Rl(e, t, r, l, i, a) {\n var o = e.__className;\n if (D || o !== r) {\n var f = Al(r, l, a);\n (!D || f !== e.getAttribute(\"class\")) && (f == null ? e.removeAttribute(\"class\") : e.className = f), e.__className = r;\n } else if (a && i !== a)\n for (var s in a) {\n var c = !!a[s];\n (i == null || c !== !!i[s]) && e.classList.toggle(s, c);\n }\n return a;\n}\nconst Il = Symbol(\"is custom element\"), Sl = Symbol(\"is html\");\nfunction Gr(e) {\n if (D) {\n var t = !1, r = () => {\n if (!t) {\n if (t = !0, e.hasAttribute(\"value\")) {\n var l = e.value;\n ie(e, \"value\", null), e.value = l;\n }\n if (e.hasAttribute(\"checked\")) {\n var i = e.checked;\n ie(e, \"checked\", null), e.checked = i;\n }\n }\n };\n e.__on_r = r, Di(r), Pn();\n }\n}\nfunction Tl(e, t) {\n var r = Un(e);\n r.value === (r.value = // treat null and undefined the same for the initial value\n t ?? void 0) || // @ts-expect-error\n // `progress` elements always need their value set when it's `0`\n e.value === t && (t !== 0 || e.nodeName !== \"PROGRESS\") || (e.value = t ?? \"\");\n}\nfunction ie(e, t, r, l) {\n var i = Un(e);\n D && (i[t] = e.getAttribute(t), t === \"src\" || t === \"srcset\" || t === \"href\" && e.nodeName === \"LINK\") || i[t] !== (i[t] = r) && (t === \"loading\" && (e[Ai] = r), r == null ? e.removeAttribute(t) : typeof r != \"string\" && Nl(e).includes(t) ? e[t] = r : e.setAttribute(t, r));\n}\nfunction Un(e) {\n return (\n /** @type {Record} **/\n // @ts-expect-error\n e.__attributes ?? (e.__attributes = {\n [Il]: e.nodeName.includes(\"-\"),\n [Sl]: e.namespaceURI === $i\n })\n );\n}\nvar Jr = /* @__PURE__ */ new Map();\nfunction Nl(e) {\n var t = Jr.get(e.nodeName);\n if (t) return t;\n Jr.set(e.nodeName, t = []);\n for (var r, l = e, i = Element.prototype; i !== l; ) {\n r = Si(l);\n for (var a in r)\n r[a].set && t.push(a);\n l = sn(l);\n }\n return t;\n}\nfunction Ll(e, t, r = t) {\n wl(e, \"change\", (l) => {\n var i = l ? e.defaultChecked : e.checked;\n r(i);\n }), // If we are hydrating and the value has since changed,\n // then use the update value from the input instead.\n (D && e.defaultChecked !== e.checked || // If defaultChecked is set, then checked == defaultChecked\n Qe(t) == null) && r(e.checked), er(() => {\n var l = t();\n e.checked = !!l;\n });\n}\nfunction Kr(e, t) {\n return e === t || (e == null ? void 0 : e[ut]) === t;\n}\nfunction Xr(e = {}, t, r, l) {\n return Qt(() => {\n var i, a;\n return er(() => {\n i = a, a = [], Qe(() => {\n e !== r(...a) && (t(e, ...a), i && Kr(r(...i), e) && t(null, ...i));\n });\n }), () => {\n Gt(() => {\n a && Kr(r(...a), e) && t(null, ...a);\n });\n };\n }), e;\n}\nfunction jn(e) {\n B === null && Tn(), Vt(() => {\n const t = Qe(e);\n if (typeof t == \"function\") return (\n /** @type {() => void} */\n t\n );\n });\n}\nfunction Dl(e) {\n B === null && Tn(), jn(() => () => Qe(e));\n}\nlet mt = !1;\nfunction Pl(e) {\n var t = mt;\n try {\n return mt = !1, [e(), mt];\n } finally {\n mt = t;\n }\n}\nfunction C(e, t, r, l) {\n var be;\n var i = (r & wi) !== 0, a = !0, o = (r & yi) !== 0, f = (r & bi) !== 0, s = !1, c;\n o ? [c, s] = Pl(() => (\n /** @type {V} */\n e[t]\n )) : c = /** @type {V} */\n e[t];\n var v = ut in e || an in e, h = o && (((be = Pe(e, t)) == null ? void 0 : be.set) ?? (v && t in e && ((N) => e[t] = N))) || void 0, g = (\n /** @type {V} */\n l\n ), m = !0, w = !1, z = () => (w = !0, m && (m = !1, f ? g = Qe(\n /** @type {() => V} */\n l\n ) : g = /** @type {V} */\n l), g);\n c === void 0 && l !== void 0 && (h && a && ji(), c = z(), h && h(c));\n var T;\n if (T = () => {\n var N = (\n /** @type {V} */\n e[t]\n );\n return N === void 0 ? z() : (m = !0, w = !1, N);\n }, (r & pi) === 0)\n return T;\n if (h) {\n var Y = e.$$legacy;\n return function(N, X) {\n return arguments.length > 0 ? ((!X || Y || s) && h(X ? T() : N), N) : T();\n };\n }\n var M = !1, F = /* @__PURE__ */ hn(c), se = /* @__PURE__ */ De(() => {\n var N = T(), X = d(F);\n return M ? (M = !1, X) : F.v = N;\n });\n return i || (se.equals = vn), function(N, X) {\n if (arguments.length > 0) {\n const U = X ? d(se) : o ? le(N) : N;\n return se.equals(U) || (M = !0, P(F, U), w && g !== void 0 && (g = U), Qe(() => d(se))), N;\n }\n return d(se);\n };\n}\nfunction Ol(e) {\n return new zl(e);\n}\nvar _e, te;\nclass zl {\n /**\n * @param {ComponentConstructorOptions & {\n * component: any;\n * }} options\n */\n constructor(t) {\n /** @type {any} */\n Mt(this, _e);\n /** @type {Record} */\n Mt(this, te);\n var a;\n var r = /* @__PURE__ */ new Map(), l = (o, f) => {\n var s = /* @__PURE__ */ hn(f);\n return r.set(o, s), s;\n };\n const i = new Proxy(\n { ...t.props || {}, $$events: {} },\n {\n get(o, f) {\n return d(r.get(f) ?? l(f, Reflect.get(o, f)));\n },\n has(o, f) {\n return f === an ? !0 : (d(r.get(f) ?? l(f, Reflect.get(o, f))), Reflect.has(o, f));\n },\n set(o, f, s) {\n return P(r.get(f) ?? l(f, s), s), Reflect.set(o, f, s);\n }\n }\n );\n Ut(this, te, (t.hydrate ? xl : Fn)(t.component, {\n target: t.target,\n anchor: t.anchor,\n props: i,\n context: t.context,\n intro: t.intro ?? !1,\n recover: t.recover\n })), (!((a = t == null ? void 0 : t.props) != null && a.$$host) || t.sync === !1) && $(), Ut(this, _e, i.$$events);\n for (const o of Object.keys(H(this, te)))\n o === \"$set\" || o === \"$destroy\" || o === \"$on\" || xt(this, o, {\n get() {\n return H(this, te)[o];\n },\n /** @param {any} value */\n set(f) {\n H(this, te)[o] = f;\n },\n enumerable: !0\n });\n H(this, te).$set = /** @param {Record} next */\n (o) => {\n Object.assign(i, o);\n }, H(this, te).$destroy = () => {\n $l(H(this, te));\n };\n }\n /** @param {Record} props */\n $set(t) {\n H(this, te).$set(t);\n }\n /**\n * @param {string} event\n * @param {(...args: any[]) => any} callback\n * @returns {any}\n */\n $on(t, r) {\n H(this, _e)[t] = H(this, _e)[t] || [];\n const l = (...i) => r.call(this, ...i);\n return H(this, _e)[t].push(l), () => {\n H(this, _e)[t] = H(this, _e)[t].filter(\n /** @param {any} fn */\n (i) => i !== l\n );\n };\n }\n $destroy() {\n H(this, te).$destroy();\n }\n}\n_e = new WeakMap(), te = new WeakMap();\nlet Vn;\ntypeof HTMLElement == \"function\" && (Vn = class extends HTMLElement {\n /**\n * @param {*} $$componentCtor\n * @param {*} $$slots\n * @param {*} use_shadow_dom\n */\n constructor(t, r, l) {\n super();\n /** The Svelte component constructor */\n ne(this, \"$$ctor\");\n /** Slots */\n ne(this, \"$$s\");\n /** @type {any} The Svelte component instance */\n ne(this, \"$$c\");\n /** Whether or not the custom element is connected */\n ne(this, \"$$cn\", !1);\n /** @type {Record} Component props data */\n ne(this, \"$$d\", {});\n /** `true` if currently in the process of reflecting component props back to attributes */\n ne(this, \"$$r\", !1);\n /** @type {Record} Props definition (name, reflected, type etc) */\n ne(this, \"$$p_d\", {});\n /** @type {Record} Event listeners */\n ne(this, \"$$l\", {});\n /** @type {Map} Event listener unsubscribe functions */\n ne(this, \"$$l_u\", /* @__PURE__ */ new Map());\n /** @type {any} The managed render effect for reflecting attributes */\n ne(this, \"$$me\");\n this.$$ctor = t, this.$$s = r, l && this.attachShadow({ mode: \"open\" });\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n addEventListener(t, r, l) {\n if (this.$$l[t] = this.$$l[t] || [], this.$$l[t].push(r), this.$$c) {\n const i = this.$$c.$on(t, r);\n this.$$l_u.set(r, i);\n }\n super.addEventListener(t, r, l);\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n removeEventListener(t, r, l) {\n if (super.removeEventListener(t, r, l), this.$$c) {\n const i = this.$$l_u.get(r);\n i && (i(), this.$$l_u.delete(r));\n }\n }\n async connectedCallback() {\n if (this.$$cn = !0, !this.$$c) {\n let t = function(i) {\n return (a) => {\n const o = document.createElement(\"slot\");\n i !== \"default\" && (o.name = i), ee(a, o);\n };\n };\n if (await Promise.resolve(), !this.$$cn || this.$$c)\n return;\n const r = {}, l = Fl(this);\n for (const i of this.$$s)\n i in l && (i === \"default\" && !this.$$d.children ? (this.$$d.children = t(i), r.default = !0) : r[i] = t(i));\n for (const i of this.attributes) {\n const a = this.$$g_p(i.name);\n a in this.$$d || (this.$$d[a] = pt(a, i.value, this.$$p_d, \"toProp\"));\n }\n for (const i in this.$$p_d)\n !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]);\n this.$$c = Ol({\n component: this.$$ctor,\n target: this.shadowRoot || this,\n props: {\n ...this.$$d,\n $$slots: r,\n $$host: this\n }\n }), this.$$me = dl(() => {\n er(() => {\n var i;\n this.$$r = !0;\n for (const a of Et(this.$$c)) {\n if (!((i = this.$$p_d[a]) != null && i.reflect)) continue;\n this.$$d[a] = this.$$c[a];\n const o = pt(\n a,\n this.$$d[a],\n this.$$p_d,\n \"toAttribute\"\n );\n o == null ? this.removeAttribute(this.$$p_d[a].attribute || a) : this.setAttribute(this.$$p_d[a].attribute || a, o);\n }\n this.$$r = !1;\n });\n });\n for (const i in this.$$l)\n for (const a of this.$$l[i]) {\n const o = this.$$c.$on(i, a);\n this.$$l_u.set(a, o);\n }\n this.$$l = {};\n }\n }\n // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n // and setting attributes through setAttribute etc, this is helpful\n /**\n * @param {string} attr\n * @param {string} _oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(t, r, l) {\n var i;\n this.$$r || (t = this.$$g_p(t), this.$$d[t] = pt(t, l, this.$$p_d, \"toProp\"), (i = this.$$c) == null || i.$set({ [t]: this.$$d[t] }));\n }\n disconnectedCallback() {\n this.$$cn = !1, Promise.resolve().then(() => {\n !this.$$cn && this.$$c && (this.$$c.$destroy(), this.$$me(), this.$$c = void 0);\n });\n }\n /**\n * @param {string} attribute_name\n */\n $$g_p(t) {\n return Et(this.$$p_d).find(\n (r) => this.$$p_d[r].attribute === t || !this.$$p_d[r].attribute && r.toLowerCase() === t\n ) || t;\n }\n});\nfunction pt(e, t, r, l) {\n var a;\n const i = (a = r[e]) == null ? void 0 : a.type;\n if (t = i === \"Boolean\" && typeof t != \"boolean\" ? t != null : t, !l || !r[e])\n return t;\n if (l === \"toAttribute\")\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t == null ? null : JSON.stringify(t);\n case \"Boolean\":\n return t ? \"\" : null;\n case \"Number\":\n return t ?? null;\n default:\n return t;\n }\n else\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t && JSON.parse(t);\n case \"Boolean\":\n return t;\n // conversion already handled above\n case \"Number\":\n return t != null ? +t : t;\n default:\n return t;\n }\n}\nfunction Fl(e) {\n const t = {};\n return e.childNodes.forEach((r) => {\n t[\n /** @type {Element} node */\n r.slot || \"default\"\n ] = !0;\n }), t;\n}\nfunction Ml(e, t, r, l, i, a) {\n let o = class extends Vn {\n constructor() {\n super(e, r, i), this.$$p_d = t;\n }\n static get observedAttributes() {\n return Et(t).map(\n (f) => (t[f].attribute || f).toLowerCase()\n );\n }\n };\n return Et(t).forEach((f) => {\n xt(o.prototype, f, {\n get() {\n return this.$$c && f in this.$$c ? this.$$c[f] : this.$$d[f];\n },\n set(s) {\n var h;\n s = pt(f, s, t), this.$$d[f] = s;\n var c = this.$$c;\n if (c) {\n var v = (h = Pe(c, f)) == null ? void 0 : h.get;\n v ? c[f] = s : c.$set({ [f]: s });\n }\n }\n });\n }), l.forEach((f) => {\n xt(o.prototype, f, {\n get() {\n var s;\n return (s = this.$$c) == null ? void 0 : s[f];\n }\n });\n }), e.element = /** @type {any} */\n o, o;\n}\nconst Bn = new TextEncoder();\nfunction Ul(e) {\n return [...new Uint8Array(e)].map((t) => t.toString(16).padStart(2, \"0\")).join(\"\");\n}\nasync function jl(e, t = \"SHA-256\", r = 1e5) {\n const l = Date.now().toString(16);\n e || (e = Math.round(Math.random() * r));\n const i = await qn(l, e, t);\n return {\n algorithm: t,\n challenge: i,\n salt: l,\n signature: \"\"\n };\n}\nasync function qn(e, t, r) {\n if (typeof crypto > \"u\" || !(\"subtle\" in crypto) || !(\"digest\" in crypto.subtle))\n throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");\n return Ul(\n await crypto.subtle.digest(\n r.toUpperCase(),\n Bn.encode(e + t)\n )\n );\n}\nfunction Vl(e, t, r = \"SHA-256\", l = 1e6, i = 0) {\n const a = new AbortController(), o = Date.now();\n return {\n promise: (async () => {\n for (let s = i; s <= l; s += 1) {\n if (a.signal.aborted)\n return null;\n if (await qn(t, s, r) === e)\n return {\n number: s,\n took: Date.now() - o\n };\n }\n return null;\n })(),\n controller: a\n };\n}\nfunction Bl() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n}\nfunction ql(e) {\n const t = atob(e), r = new Uint8Array(t.length);\n for (let l = 0; l < t.length; l++)\n r[l] = t.charCodeAt(l);\n return r;\n}\nfunction Hl(e, t = 12) {\n const r = new Uint8Array(t);\n for (let l = 0; l < t; l++)\n r[l] = e % 256, e = Math.floor(e / 256);\n return r;\n}\nasync function Wl(e, t = \"\", r = 1e6, l = 0) {\n const i = \"AES-GCM\", a = new AbortController(), o = Date.now(), f = async () => {\n for (let v = l; v <= r; v += 1) {\n if (a.signal.aborted || !s || !c)\n return null;\n try {\n const h = await crypto.subtle.decrypt(\n {\n name: i,\n iv: Hl(v)\n },\n s,\n c\n );\n if (h)\n return {\n clearText: new TextDecoder().decode(h),\n took: Date.now() - o\n };\n } catch {\n }\n }\n return null;\n };\n let s = null, c = null;\n try {\n c = ql(e);\n const v = await crypto.subtle.digest(\n \"SHA-256\",\n Bn.encode(t)\n );\n s = await crypto.subtle.importKey(\n \"raw\",\n v,\n i,\n !1,\n [\"decrypt\"]\n );\n } catch {\n return {\n promise: Promise.reject(),\n controller: a\n };\n }\n return {\n promise: f(),\n controller: a\n };\n}\nvar E = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.VERIFIED = \"verified\", e.VERIFYING = \"verifying\", e.UNVERIFIED = \"unverified\", e.EXPIRED = \"expired\", e))(E || {}), Yl = /* @__PURE__ */ El(''), Zl = /* @__PURE__ */ ve(' ', 1), Gl = /* @__PURE__ */ ve(''), Jl = /* @__PURE__ */ ve(''), Kl = /* @__PURE__ */ ve('
'), Xl = /* @__PURE__ */ ve('
'), Ql = /* @__PURE__ */ ve('
'), ea = /* @__PURE__ */ ve('
'), ta = /* @__PURE__ */ ve(''), ra = /* @__PURE__ */ ve('
'), na = /* @__PURE__ */ ve('
', 1);\nconst ia = {\n hash: \"svelte-ddsc3z\",\n code: `.altcha.svelte-ddsc3z {background:var(--altcha-color-base, transparent);border:var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0);border-radius:var(--altcha-border-radius, 3px);color:var(--altcha-color-text, currentColor);display:flex;flex-direction:column;max-width:var(--altcha-max-width, 260px);position:relative;text-align:left;}.altcha.svelte-ddsc3z:focus-within {border-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z {background:var(--altcha-color-base, white);display:none;filter:drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.2));left:-100%;position:fixed;top:-100%;width:var(--altcha-max-width, 260px);z-index:999999;}.altcha[data-floating=top].svelte-ddsc3z .altcha-anchor-arrow:where(.svelte-ddsc3z) {border-bottom-color:transparent;border-top-color:var(--altcha-color-border, #a0a0a0);bottom:-12px;top:auto;}.altcha[data-floating=bottom].svelte-ddsc3z:focus-within::after {border-bottom-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating=top].svelte-ddsc3z:focus-within::after {border-top-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z:not([data-state=unverified]) {display:block;}.altcha-anchor-arrow.svelte-ddsc3z {border:6px solid transparent;border-bottom-color:var(--altcha-color-border, #a0a0a0);content:\"\";height:0;left:12px;position:absolute;top:-12px;width:0;}.altcha-main.svelte-ddsc3z {align-items:center;display:flex;gap:0.4rem;padding:0.7rem;}.altcha-label.svelte-ddsc3z {flex-grow:1;}.altcha-label.svelte-ddsc3z label:where(.svelte-ddsc3z) {cursor:pointer;}.altcha-logo.svelte-ddsc3z {color:currentColor;opacity:0.3;}.altcha-logo.svelte-ddsc3z:hover {opacity:1;}.altcha-error.svelte-ddsc3z {color:var(--altcha-color-error-text, #f23939);display:flex;font-size:0.85rem;gap:0.3rem;padding:0 0.7rem 0.7rem;}.altcha-footer.svelte-ddsc3z {align-items:center;background-color:var(--altcha-color-footer-bg, transparent);display:flex;font-size:0.75rem;opacity:0.4;padding:0.2rem 0.7rem;text-align:right;}.altcha-footer.svelte-ddsc3z:hover {opacity:1;}.altcha-footer.svelte-ddsc3z > :where(.svelte-ddsc3z):first-child {flex-grow:1;}.altcha-footer.svelte-ddsc3z a {color:currentColor;}.altcha-checkbox.svelte-ddsc3z {display:flex;align-items:center;height:24px;width:24px;}.altcha-checkbox.svelte-ddsc3z input:where(.svelte-ddsc3z) {width:18px;height:18px;margin:0;}.altcha-hidden.svelte-ddsc3z {display:none;}.altcha-spinner.svelte-ddsc3z {\n animation: svelte-ddsc3z-altcha-spinner 0.75s infinite linear;transform-origin:center;}\n\n@keyframes svelte-ddsc3z-altcha-spinner {\n 100% {\n transform: rotate(360deg);\n }\n}`\n};\nfunction la(e, t) {\n var Lr, Dr;\n Nn(t, !0), Cl(e, ia);\n let r = C(t, \"auto\", 7, void 0), l = C(t, \"blockspam\", 7, void 0), i = C(t, \"challengeurl\", 7, void 0), a = C(t, \"challengejson\", 7, void 0), o = C(t, \"customfetch\", 7, void 0), f = C(t, \"debug\", 7, !1), s = C(t, \"delay\", 7, 0), c = C(t, \"expire\", 7, void 0), v = C(t, \"floating\", 7, void 0), h = C(t, \"floatinganchor\", 7, void 0), g = C(t, \"floatingoffset\", 7, void 0), m = C(t, \"hidefooter\", 7, !1), w = C(t, \"hidelogo\", 7, !1), z = C(t, \"id\", 7, void 0), T = C(t, \"name\", 7, \"altcha\"), Y = C(t, \"maxnumber\", 7, 1e6), M = C(t, \"mockerror\", 7, !1), F = C(t, \"obfuscated\", 7, void 0), se = C(t, \"plugins\", 7, void 0), be = C(t, \"refetchonexpire\", 7, !0), N = C(t, \"spamfilter\", 7, !1), X = C(t, \"strings\", 7, void 0), U = C(t, \"test\", 7, !1), Ee = C(t, \"verifyurl\", 7, void 0), Me = C(t, \"workers\", 23, () => Math.min(16, navigator.hardwareConcurrency || 8)), tt = C(t, \"workerurl\", 7, void 0);\n const nr = [\"SHA-256\", \"SHA-384\", \"SHA-512\"], ir = \"Visit Altcha.org\", lr = \"https://altcha.org/\", rt = (n, u) => {\n t.$$host.dispatchEvent(new CustomEvent(n, { detail: u }));\n }, ar = (Dr = (Lr = document.documentElement.lang) == null ? void 0 : Lr.split(\"-\")) == null ? void 0 : Dr[0], Dt = /* @__PURE__ */ De(() => {\n var n;\n return i() && new URL(i(), location.origin).host.endsWith(\".altcha.org\") && !!((n = i()) != null && n.includes(\"apiKey=ckey_\"));\n }), Pt = /* @__PURE__ */ De(() => a() ? wr(a()) : void 0), or = /* @__PURE__ */ De(() => X() ? wr(X()) : {}), Q = /* @__PURE__ */ De(() => {\n var n;\n return {\n ariaLinkLabel: ir,\n error: \"Verification failed. Try again later.\",\n expired: \"Verification expired. Try again.\",\n footer: `Protected by ALTCHA`,\n label: \"I'm not a robot\",\n verified: \"Verified\",\n verifying: \"Verifying...\",\n waitAlert: \"Verifying... please wait.\",\n ...d(or)\n };\n }), sr = /* @__PURE__ */ De(() => z() || `${T()}_checkbox`);\n let Ue = He(!1), R = He(le(E.UNVERIFIED)), j = He(void 0), nt = He(null), je = null, y = null, Ve = He(null), fe = null, xe = [], Ne = He(null);\n Vt(() => {\n Xn(d(Ve));\n }), Vt(() => {\n Qn(d(R));\n }), Dl(() => {\n Hn(), y && (y.removeEventListener(\"submit\", hr), y.removeEventListener(\"reset\", gr), y.removeEventListener(\"focusin\", vr), y = null), fe && (clearTimeout(fe), fe = null), document.removeEventListener(\"click\", cr), document.removeEventListener(\"scroll\", dr), window.removeEventListener(\"resize\", mr);\n }), jn(() => {\n var n;\n I(\"mounted\", \"1.3.0\"), I(\"workers\", Me()), Jn(), I(\"plugins\", xe.length ? xe.map((u) => u.constructor.pluginName).join(\", \") : \"none\"), U() && I(\"using test mode\"), c() && Ot(c()), r() !== void 0 && I(\"auto\", r()), v() !== void 0 && pr(v()), y = (n = d(j)) == null ? void 0 : n.closest(\"form\"), y && (y.addEventListener(\"submit\", hr, { capture: !0 }), y.addEventListener(\"reset\", gr), r() === \"onfocus\" && y.addEventListener(\"focusin\", vr)), r() === \"onload\" && (F() ? it() : $e()), d(Dt) && (m() || w()) && I(\"Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution.\"), requestAnimationFrame(() => {\n rt(\"load\");\n });\n });\n function fr(n, u) {\n return btoa(JSON.stringify({\n algorithm: n.algorithm,\n challenge: n.challenge,\n number: u.number,\n salt: n.salt,\n signature: n.signature,\n test: U() ? !0 : void 0,\n took: u.took\n }));\n }\n function Hn() {\n for (const n of xe)\n n.destroy();\n }\n function ur() {\n i() && be() && d(R) === E.VERIFIED ? $e() : lt(E.EXPIRED, d(Q).expired);\n }\n async function Wn() {\n var n;\n if (M())\n throw I(\"mocking error\"), new Error(\"Mocked error.\");\n if (d(Pt))\n return I(\"using provided json data\"), d(Pt);\n if (U())\n return I(\"generating test challenge\", { test: U() }), jl(typeof U() != \"boolean\" ? +U() : void 0);\n {\n if (!i() && y) {\n const L = y.getAttribute(\"action\");\n L != null && L.includes(\"/form/\") && i(L + \"/altcha\");\n }\n if (!i())\n throw new Error(\"Attribute challengeurl not set.\");\n I(\"fetching challenge from\", i());\n let u = null, _ = null;\n if (o())\n if (I(\"using customfetch\"), typeof o() == \"string\") {\n if (u = globalThis[o()] || null, !u)\n throw new Error(`Custom fetch function not found: ${o()}`);\n } else\n u = o();\n const b = {\n headers: N() !== !1 ? { \"x-altcha-spam-filter\": \"1\" } : {}\n };\n if (u) {\n if (_ = await u(i(), b), !_ || !(_ instanceof Response))\n throw new Error(\"Custom fetch function did not return a response.\");\n } else\n _ = await fetch(i(), b);\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const S = _.headers.get(\"X-Altcha-Config\"), x = await _.json(), p = new URLSearchParams((n = x.salt.split(\"?\")) == null ? void 0 : n[1]), q = p.get(\"expires\") || p.get(\"expire\");\n if (q) {\n const L = new Date(+q * 1e3), qe = isNaN(L.getTime()) ? 0 : L.getTime() - Date.now();\n qe > 0 && Ot(qe);\n }\n if (S)\n try {\n const L = JSON.parse(S);\n L && typeof L == \"object\" && (L.verifyurl && (L.verifyurl = new URL(L.verifyurl, new URL(i())).toString()), Er(L));\n } catch (L) {\n I(\"unable to configure from X-Altcha-Config\", L);\n }\n return x;\n }\n }\n function Yn(n) {\n var _;\n const u = y == null ? void 0 : y.querySelector(typeof n == \"string\" ? `input[name=\"${n}\"]` : 'input[type=\"email\"]:not([data-no-spamfilter])');\n return ((_ = u == null ? void 0 : u.value) == null ? void 0 : _.slice(u.value.indexOf(\"@\"))) || void 0;\n }\n function Zn() {\n return N() === \"ipAddress\" ? {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: !1,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: !1,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n } : typeof N() == \"object\" ? N() : {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: void 0,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: void 0,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n };\n }\n function Gn(n) {\n return [\n ...(y == null ? void 0 : y.querySelectorAll(n != null && n.length ? n.map((_) => `input[name=\"${_}\"]`).join(\", \") : 'input[type=\"text\"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])')) || []\n ].reduce(\n (_, b) => {\n const S = b.name, x = b.value;\n return S && x && (_[S] = /\\n/.test(x) ? x.replace(new RegExp(\"(? u instanceof Error)) && console[n[0] instanceof Error ? \"error\" : \"log\"](\"ALTCHA\", `[name=${T()}]`, ...n);\n }\n function Kn() {\n [E.UNVERIFIED, E.ERROR, E.EXPIRED].includes(d(R)) ? N() !== !1 && (y == null ? void 0 : y.reportValidity()) === !1 ? P(Ue, !1) : F() ? it() : $e() : P(Ue, !0);\n }\n function cr(n) {\n const u = n.target;\n v() && u && !d(j).contains(u) && (d(R) === E.VERIFIED || r() === \"off\" && d(R) === E.UNVERIFIED) && (d(j).style.display = \"none\");\n }\n function dr() {\n v() && d(R) !== E.UNVERIFIED && gt();\n }\n function Xn(n) {\n for (const u of xe)\n typeof u.onErrorChange == \"function\" && u.onErrorChange(d(Ve));\n }\n function vr(n) {\n d(R) === E.UNVERIFIED && $e();\n }\n function hr(n) {\n y && r() === \"onsubmit\" ? d(R) === E.UNVERIFIED ? (n.preventDefault(), n.stopPropagation(), $e().then(() => {\n y == null || y.requestSubmit();\n })) : d(R) !== E.VERIFIED && (n.preventDefault(), n.stopPropagation(), d(R) === E.VERIFYING && _r()) : y && v() && r() === \"off\" && d(R) === E.UNVERIFIED && (n.preventDefault(), n.stopPropagation(), d(j).style.display = \"block\", gt());\n }\n function gr() {\n lt();\n }\n function _r() {\n d(R) === E.VERIFYING && d(Q).waitAlert && alert(d(Q).waitAlert);\n }\n function Qn(n) {\n for (const u of xe)\n typeof u.onStateChange == \"function\" && u.onStateChange(d(R));\n v() && d(R) !== E.UNVERIFIED && requestAnimationFrame(() => {\n gt();\n }), P(Ue, d(R) === E.VERIFIED);\n }\n function mr() {\n v() && gt();\n }\n function wr(n) {\n return JSON.parse(n);\n }\n function gt(n = 20) {\n if (d(j))\n if (je || (je = (h() ? document.querySelector(h()) : y == null ? void 0 : y.querySelector('input[type=\"submit\"], button[type=\"submit\"], button:not([type=\"button\"]):not([type=\"reset\"])')) || y), je) {\n const u = parseInt(g(), 10) || 12, _ = je.getBoundingClientRect(), b = d(j).getBoundingClientRect(), S = document.documentElement.clientHeight, x = document.documentElement.clientWidth, p = v() === \"auto\" ? _.bottom + b.height + u + n > S : v() === \"top\", q = Math.max(n, Math.min(x - n - b.width, _.left + _.width / 2 - b.width / 2));\n if (p ? d(j).style.top = `${_.top - (b.height + u)}px` : d(j).style.top = `${_.bottom + u}px`, d(j).style.left = `${q}px`, d(j).setAttribute(\"data-floating\", p ? \"top\" : \"bottom\"), d(nt)) {\n const L = d(nt).getBoundingClientRect();\n d(nt).style.left = _.left - q + _.width / 2 - L.width / 2 + \"px\";\n }\n } else\n I(\"unable to find floating anchor element\");\n }\n async function ei(n) {\n if (!Ee())\n throw new Error(\"Attribute verifyurl not set.\");\n I(\"requesting server verification from\", Ee());\n const u = { payload: n };\n if (N() !== !1) {\n const {\n blockedCountries: S,\n classifier: x,\n disableRules: p,\n email: q,\n expectedLanguages: L,\n expectedCountries: qe,\n fields: ot,\n ipAddress: st,\n text: vi,\n timeZone: Pr\n } = Zn();\n u.blockedCountries = S, u.classifier = x, u.disableRules = p, u.email = q === !1 ? void 0 : Yn(q), u.expectedCountries = qe, u.expectedLanguages = L || (ar ? [ar] : void 0), u.fields = ot === !1 ? void 0 : Gn(ot), u.ipAddress = st === !1 ? void 0 : st || \"auto\", u.text = vi, u.timeZone = Pr === !1 ? void 0 : Pr || Bl();\n }\n const _ = await fetch(Ee(), {\n body: JSON.stringify(u),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\"\n });\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const b = await _.json();\n if (b != null && b.payload && P(Ne, le(b.payload)), rt(\"serververification\", b), l() && b.classification === \"BAD\")\n throw new Error(\"SpamFilter returned negative classification.\");\n }\n function Ot(n) {\n I(\"expire\", n), fe && (clearTimeout(fe), fe = null), n < 1 ? ur() : fe = setTimeout(ur, n);\n }\n function pr(n) {\n I(\"floating\", n), v() !== n && (d(j).style.left = \"\", d(j).style.top = \"\"), v(n === !0 || n === \"\" ? \"auto\" : n === !1 || n === \"false\" ? void 0 : v()), v() ? (r() || r(\"onsubmit\"), document.addEventListener(\"scroll\", dr), document.addEventListener(\"click\", cr), window.addEventListener(\"resize\", mr)) : r() === \"onsubmit\" && r(void 0);\n }\n function yr(n) {\n if (!n.algorithm)\n throw new Error(\"Invalid challenge. Property algorithm is missing.\");\n if (n.signature === void 0)\n throw new Error(\"Invalid challenge. Property signature is missing.\");\n if (!nr.includes(n.algorithm.toUpperCase()))\n throw new Error(`Unknown algorithm value. Allowed values: ${nr.join(\", \")}`);\n if (!n.challenge || n.challenge.length < 40)\n throw new Error(\"Challenge is too short. Min. 40 chars.\");\n if (!n.salt || n.salt.length < 10)\n throw new Error(\"Salt is too short. Min. 10 chars.\");\n }\n async function br(n) {\n let u = null;\n if (\"Worker\" in window) {\n try {\n u = await ti(n, n.maxnumber);\n } catch (_) {\n I(_);\n }\n if ((u == null ? void 0 : u.number) !== void 0 || \"obfuscated\" in n)\n return { data: n, solution: u };\n }\n if (\"obfuscated\" in n) {\n const _ = await Wl(n.obfuscated, n.key, n.maxnumber);\n return { data: n, solution: await _.promise };\n }\n return {\n data: n,\n solution: await Vl(n.challenge, n.salt, n.algorithm, n.maxnumber || Y()).promise\n };\n }\n async function ti(n, u = typeof U() == \"number\" ? U() : Y(), _ = Math.ceil(Me())) {\n const b = [];\n _ = Math.min(16, Math.max(1, _));\n for (let p = 0; p < _; p++)\n b.push(altchaCreateWorker(tt()));\n const S = Math.ceil(u / _), x = await Promise.all(b.map((p, q) => {\n const L = q * S;\n return new Promise((qe) => {\n p.addEventListener(\"message\", (ot) => {\n if (ot.data)\n for (const st of b)\n st !== p && st.postMessage({ type: \"abort\" });\n qe(ot.data);\n }), p.postMessage({\n payload: n,\n max: L + S,\n start: L,\n type: \"work\"\n });\n });\n }));\n for (const p of b)\n p.terminate();\n return x.find((p) => !!p) || null;\n }\n async function it() {\n if (!F()) {\n Le(E.ERROR);\n return;\n }\n const n = xe.find((u) => u.constructor.pluginName === \"obfuscation\");\n if (!n || !(\"clarify\" in n)) {\n Le(E.ERROR), I(\"Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.\");\n return;\n }\n if (\"clarify\" in n && typeof n.clarify == \"function\")\n return n.clarify();\n }\n function Er(n) {\n n.obfuscated !== void 0 && F(n.obfuscated), n.auto !== void 0 && (r(n.auto), r() === \"onload\" && (F() ? it() : $e())), n.blockspam !== void 0 && l(!!n.blockspam), n.customfetch !== void 0 && o(n.customfetch), n.floatinganchor !== void 0 && h(n.floatinganchor), n.delay !== void 0 && s(n.delay), n.floatingoffset !== void 0 && g(n.floatingoffset), n.floating !== void 0 && pr(n.floating), n.expire !== void 0 && (Ot(n.expire), c(n.expire)), n.challenge && (a(typeof n.challenge == \"string\" ? n.challenge : JSON.stringify(n.challenge)), yr(d(Pt))), n.challengeurl !== void 0 && i(n.challengeurl), n.debug !== void 0 && f(!!n.debug), n.hidefooter !== void 0 && m(!!n.hidefooter), n.hidelogo !== void 0 && w(!!n.hidelogo), n.maxnumber !== void 0 && Y(+n.maxnumber), n.mockerror !== void 0 && M(!!n.mockerror), n.name !== void 0 && T(n.name), n.refetchonexpire !== void 0 && be(!!n.refetchonexpire), n.spamfilter !== void 0 && N(typeof n.spamfilter == \"object\" ? n.spamfilter : !!n.spamfilter), n.strings && X(typeof n.strings == \"string\" ? n.strings : JSON.stringify(n.strings)), n.test !== void 0 && U(typeof n.test == \"number\" ? n.test : !!n.test), n.verifyurl !== void 0 && Ee(n.verifyurl), n.workers !== void 0 && Me(+n.workers), n.workerurl !== void 0 && tt(n.workerurl);\n }\n function xr() {\n return {\n auto: r(),\n blockspam: l(),\n challengeurl: i(),\n debug: f(),\n delay: s(),\n expire: c(),\n floating: v(),\n floatinganchor: h(),\n floatingoffset: g(),\n hidefooter: m(),\n hidelogo: w(),\n name: T(),\n maxnumber: Y(),\n mockerror: M(),\n obfuscated: F(),\n refetchonexpire: be(),\n spamfilter: N(),\n strings: d(Q),\n test: U(),\n verifyurl: Ee(),\n workers: Me(),\n workerurl: tt()\n };\n }\n function $r() {\n return je;\n }\n function ri(n) {\n return xe.find((u) => u.constructor.pluginName === n);\n }\n function kr() {\n return d(R);\n }\n function lt(n = E.UNVERIFIED, u = null) {\n fe && (clearTimeout(fe), fe = null), P(Ue, !1), P(Ne, null), Le(n, u);\n }\n function Cr(n) {\n je = n;\n }\n function Le(n, u = null) {\n P(R, le(n)), P(Ve, le(u)), rt(\"statechange\", {\n payload: d(Ne),\n state: d(R)\n });\n }\n async function $e() {\n return lt(E.VERIFYING), await new Promise((n) => setTimeout(n, s() || 0)), Wn().then((n) => (yr(n), I(\"challenge\", n), br(n))).then(({ data: n, solution: u }) => {\n if (I(\"solution\", u), \"challenge\" in n && u && !(\"clearText\" in u))\n if ((u == null ? void 0 : u.number) !== void 0) {\n if (Ee())\n return ei(fr(n, u));\n P(Ne, le(fr(n, u))), I(\"payload\", d(Ne));\n } else\n throw I(\"Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number.\"), new Error(\"Unexpected result returned.\");\n }).then(() => {\n Le(E.VERIFIED), I(\"verified\"), ol().then(() => {\n rt(\"verified\", { payload: d(Ne) });\n });\n }).catch((n) => {\n I(n), Le(E.ERROR, n.message);\n });\n }\n var Ar = na(), Rr = Br(Ar);\n kl(Rr, t, \"default\", {});\n var at = he(Rr, 2), zt = G(at), Ir = G(zt);\n {\n var ni = (n) => {\n var u = Yl();\n ee(n, u);\n };\n ke(Ir, (n) => {\n d(R) === E.VERIFYING && n(ni);\n });\n }\n var _t = he(Ir, 2);\n let Sr;\n var Be = G(_t);\n Gr(Be), Be.__change = Kn, Z(_t);\n var Ft = he(_t, 2), ii = G(Ft);\n {\n var li = (n) => {\n var u = Zl(), _ = Br(u), b = G(_);\n Ze(b, () => d(Q).verified), Z(_);\n var S = he(_, 2);\n Gr(S), We(() => {\n ie(S, \"name\", T()), Tl(S, d(Ne));\n }), ee(n, u);\n }, ai = (n, u) => {\n {\n var _ = (S) => {\n var x = Gl(), p = G(x);\n Ze(p, () => d(Q).verifying), Z(x), ee(S, x);\n }, b = (S) => {\n var x = Jl(), p = G(x);\n Ze(p, () => d(Q).label), Z(x), We(() => ie(x, \"for\", d(sr))), ee(S, x);\n };\n ke(\n n,\n (S) => {\n d(R) === E.VERIFYING ? S(_) : S(b, !1);\n },\n u\n );\n }\n };\n ke(ii, (n) => {\n d(R) === E.VERIFIED ? n(li) : n(ai, !1);\n });\n }\n Z(Ft);\n var oi = he(Ft, 2);\n {\n var si = (n) => {\n var u = Kl(), _ = G(u);\n ie(_, \"href\", lr), Z(u), We(() => ie(_, \"aria-label\", d(Q).ariaLinkLabel)), ee(n, u);\n };\n ke(oi, (n) => {\n (w() !== !0 || d(Dt)) && n(si);\n });\n }\n Z(zt);\n var Tr = he(zt, 2);\n {\n var fi = (n) => {\n var u = ea(), _ = he(G(u), 2);\n {\n var b = (x) => {\n var p = Xl(), q = G(p);\n Ze(q, () => d(Q).expired), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n }, S = (x) => {\n var p = Ql(), q = G(p);\n Ze(q, () => d(Q).error), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n };\n ke(_, (x) => {\n d(R) === E.EXPIRED ? x(b) : x(S, !1);\n });\n }\n Z(u), ee(n, u);\n };\n ke(Tr, (n) => {\n (d(Ve) || d(R) === E.EXPIRED) && n(fi);\n });\n }\n var Nr = he(Tr, 2);\n {\n var ui = (n) => {\n var u = ta(), _ = G(u), b = G(_);\n Ze(b, () => d(Q).footer), Z(_), Z(u), ee(n, u);\n };\n ke(Nr, (n) => {\n d(Q).footer && (m() !== !0 || d(Dt)) && n(ui);\n });\n }\n var ci = he(Nr, 2);\n {\n var di = (n) => {\n var u = ra();\n Xr(u, (_) => P(nt, _), () => d(nt)), ee(n, u);\n };\n ke(ci, (n) => {\n v() && n(di);\n });\n }\n return Z(at), Xr(at, (n) => P(j, n), () => d(j)), We(\n (n) => {\n ie(at, \"data-state\", d(R)), ie(at, \"data-floating\", v()), Sr = Rl(_t, 1, \"altcha-checkbox svelte-ddsc3z\", null, Sr, n), ie(Be, \"id\", d(sr)), Be.required = r() !== \"onsubmit\" && (!v() || r() !== \"off\");\n },\n [\n () => ({\n \"altcha-hidden\": d(R) === E.VERIFYING\n })\n ]\n ), yl(\"invalid\", Be, _r), Ll(Be, () => d(Ue), (n) => P(Ue, n)), ee(e, Ar), Ln({\n clarify: it,\n configure: Er,\n getConfiguration: xr,\n getFloatingAnchor: $r,\n getPlugin: ri,\n getState: kr,\n reset: lt,\n setFloatingAnchor: Cr,\n setState: Le,\n verify: $e,\n get auto() {\n return r();\n },\n set auto(n = void 0) {\n r(n), $();\n },\n get blockspam() {\n return l();\n },\n set blockspam(n = void 0) {\n l(n), $();\n },\n get challengeurl() {\n return i();\n },\n set challengeurl(n = void 0) {\n i(n), $();\n },\n get challengejson() {\n return a();\n },\n set challengejson(n = void 0) {\n a(n), $();\n },\n get customfetch() {\n return o();\n },\n set customfetch(n = void 0) {\n o(n), $();\n },\n get debug() {\n return f();\n },\n set debug(n = !1) {\n f(n), $();\n },\n get delay() {\n return s();\n },\n set delay(n = 0) {\n s(n), $();\n },\n get expire() {\n return c();\n },\n set expire(n = void 0) {\n c(n), $();\n },\n get floating() {\n return v();\n },\n set floating(n = void 0) {\n v(n), $();\n },\n get floatinganchor() {\n return h();\n },\n set floatinganchor(n = void 0) {\n h(n), $();\n },\n get floatingoffset() {\n return g();\n },\n set floatingoffset(n = void 0) {\n g(n), $();\n },\n get hidefooter() {\n return m();\n },\n set hidefooter(n = !1) {\n m(n), $();\n },\n get hidelogo() {\n return w();\n },\n set hidelogo(n = !1) {\n w(n), $();\n },\n get id() {\n return z();\n },\n set id(n = void 0) {\n z(n), $();\n },\n get name() {\n return T();\n },\n set name(n = \"altcha\") {\n T(n), $();\n },\n get maxnumber() {\n return Y();\n },\n set maxnumber(n = 1e6) {\n Y(n), $();\n },\n get mockerror() {\n return M();\n },\n set mockerror(n = !1) {\n M(n), $();\n },\n get obfuscated() {\n return F();\n },\n set obfuscated(n = void 0) {\n F(n), $();\n },\n get plugins() {\n return se();\n },\n set plugins(n = void 0) {\n se(n), $();\n },\n get refetchonexpire() {\n return be();\n },\n set refetchonexpire(n = !0) {\n be(n), $();\n },\n get spamfilter() {\n return N();\n },\n set spamfilter(n = !1) {\n N(n), $();\n },\n get strings() {\n return X();\n },\n set strings(n = void 0) {\n X(n), $();\n },\n get test() {\n return U();\n },\n set test(n = !1) {\n U(n), $();\n },\n get verifyurl() {\n return Ee();\n },\n set verifyurl(n = void 0) {\n Ee(n), $();\n },\n get workers() {\n return Me();\n },\n set workers(n = Math.min(16, navigator.hardwareConcurrency || 8)) {\n Me(n), $();\n },\n get workerurl() {\n return tt();\n },\n set workerurl(n = void 0) {\n tt(n), $();\n }\n });\n}\nbl([\"change\"]);\ncustomElements.define(\"altcha-widget\", Ml(\n la,\n {\n blockspam: { type: \"Boolean\" },\n debug: { type: \"Boolean\" },\n delay: { type: \"Number\" },\n expire: { type: \"Number\" },\n floatingoffset: { type: \"Number\" },\n hidefooter: { type: \"Boolean\" },\n hidelogo: { type: \"Boolean\" },\n maxnumber: { type: \"Number\" },\n mockerror: { type: \"Boolean\" },\n refetchonexpire: { type: \"Boolean\" },\n test: { type: \"Boolean\" },\n workers: { type: \"Number\" },\n auto: {},\n challengeurl: {},\n challengejson: {},\n customfetch: {},\n floating: {},\n floatinganchor: {},\n id: {},\n name: {},\n obfuscated: {},\n plugins: {},\n spamfilter: {},\n strings: {},\n verifyurl: {},\n workerurl: {}\n },\n [\"default\"],\n [\n \"clarify\",\n \"configure\",\n \"getConfiguration\",\n \"getFloatingAnchor\",\n \"getPlugin\",\n \"getState\",\n \"reset\",\n \"setFloatingAnchor\",\n \"setState\",\n \"verify\"\n ],\n !1\n));\nglobalThis.altchaCreateWorker = (e) => e ? new Worker(new URL(e)) : new _i();\nglobalThis.altchaPlugins = globalThis.altchaPlugins || [];\nexport {\n la as Altcha\n};","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContact extends BasePage {\n static hash = hashPageContact;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormContactUs();\n }\n\n hookupButtonSubmitFormContactUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContactSuccess extends BasePage {\n static hash = hashPageContactSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageApplyFoundingPartner extends BasePage {\n static hash = hashPageApplyFoundingPartner;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormApplyFoundingPartnerUs();\n }\n\n hookupButtonSubmitFormApplyFoundingPartnerUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageApplyFoundingPartnerSuccess extends BasePage {\n static hash = hashPageApplyFoundingPartnerSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageDogHome extends BasePage {\n static hash = hashPageDogHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupDogHome();\n }\n hookupDogHome() {\n \n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport Utils from '../utils.js';\n\nexport default class BusinessObjects {\n static getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected = null) {\n return {\n text: objectJson[keyText],\n value: objectJson[keyValue],\n selected: (objectJson[keyValue] == valueSelected),\n };\n }\n static getOptionJsonFromObjectJson(objectJson, valueSelected = null) {\n let keyText = objectJson[flagNameAttrOptionText];\n let keyValue = objectJson[flagNameAttrOptionValue];\n // Utils.consoleLogIfNotProductionEnvironment({objectJson, keyText, keyValue});\n return BusinessObjects.getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected);\n }\n static getObjectText(objectJson) {\n return objectJson == null ? '' : objectJson[objectJson[flagNameAttrOptionText]];\n }\n static getListObjectsFromIdDictAndCsv(idDict, idCsv) {\n let listObjects = [];\n let ids = idCsv.split(',');\n for (let id of ids) {\n listObjects.push(idDict[id]);\n }\n return listObjects;\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayError {\n static hookup() {\n Events.initialiseEventHandler(idOverlayError + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayError);\n overlay.style.visibility = 'hidden';\n });\n });\n }\n static show(msgError) {\n let overlay = document.querySelector(idOverlayError);\n let labelError = overlay.querySelector(idLabelError);\n labelError.innerText = msgError;\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport Validation from \"../lib/validation.js\";\nimport BasePage from \"./base.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\n\nexport default class TableBasePage extends BasePage {\n // static hash\n // static attrIdRowObject\n // callSaveTableContent\n\n constructor(router) {\n super(router);\n this.cursorYInitial = null;\n this.rowInitial = null;\n this.placeholder = null;\n this.dragSrcEl = null;\n this.dragSrcRow = null;\n\n this.hookupTableCellDdls = this.hookupTableCellDdls.bind(this);\n }\n \n initialize(isPopState = false) {\n throw new Error(\"Must implement initialize() method.\");\n }\n sharedInitialize(isPopState = false, isSinglePageApp = false) {\n if (!isPopState) {\n super.sharedInitialize();\n this.hookupFilters();\n this.hookupButtonsSaveCancel();\n this.hookupTableMain();\n OverlayConfirm.hookup(() => {\n if (isSinglePageApp) {\n this.saveRecordsTableDirtySinglePageApp();\n }\n else {\n this.saveRecordsTableDirty();\n }\n });\n } else {\n let dataPage = this.getLocalStoragePage();\n let filters = dataPage[flagFormFilters];\n let formFilters = TableBasePage.getFormFilters();\n let filtersDefault = DOM.convertForm2JSON(formFilters);\n if (!Validation.areEqualDicts(filters, filtersDefault)) {\n this.callFilterTableContent();\n }\n }\n }\n hookupFilters() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method hookupFilters().\");\n }\n }\n sharedHookupFilters() {\n this.hookupButtonApplyFilters();\n this.hookupSearchTextFilter();\n }\n hookupFilterActive() {\n let filterSelector = idFormFilters + ' #' + flagActiveOnly;\n let filterActiveOld = document.querySelector(filterSelector);\n filterActiveOld.removeAttribute('id');\n let parentDiv = filterActiveOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterActiveNew = document.querySelector(idFormFilters + ' div.' + flagActiveOnly + '.' + flagContainerInput + ' svg.' + flagActiveOnly);\n filterActiveNew.setAttribute('id', flagActiveOnly);\n if (isChecked) filterActiveNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterActive) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterActive });\n Utils.consoleLogIfNotProductionEnvironment({ [filterActive.tagName]: filterActive.tagName });\n let svgElement = (filterActive.tagName.toUpperCase() == 'SVG') ? filterActive : filterActive.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterActive);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n hookupFilter(filterFlag, handler = (event, filter) => { return this.handleChangeFilter(event, filter); }) {\n let filterSelector = idFormFilters + ' #' + filterFlag;\n Events.hookupEventHandler(\"change\", filterSelector, handler);\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n handleChangeFilter(event, filter) {\n let isDirtyFilter = DOM.updateAndCheckIsElementDirty(filter);\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = isDirtyFilter || DOM.hasDirtyChildrenContainer(formFilters);\n let tbody = document.querySelector(idTableMain + ' tbody');\n let rows = tbody.querySelectorAll(':scope > tr');\n rows.forEach((row) => {\n if (areDirtyFilters && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);\n if (!areDirtyFilters && row.classList.contains(flagIsCollapsed)) {\n row.classList.remove(flagIsCollapsed);\n let dirtyInputs = row.querySelectorAll('input.' + flagDirty);\n dirtyInputs.forEach((dirtyInput) => {\n dirtyInput.value = DOM.getElementAttributeValueCurrent(dirtyInput);\n });\n }\n });\n if (areDirtyFilters) {\n /*\n tbody.querySelectorAll('tr').forEach((tr) => { \n if (!DOM.hasDirtyChildrenContainer(tr)) tr.remove(); \n });\n */\n tbody.innerHTML = '
Press \"Apply Filters\" to refresh the table.
' + tbody.innerHTML;\n if (!tbody.classList.contains(flagIsCollapsed)) tbody.classList.add(flagIsCollapsed);\n }\n else {\n let isDirtyLabel = tbody.querySelector(\":scope > div\");\n if (isDirtyLabel != null) isDirtyLabel.remove();\n if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);\n let initialisedElements = tbody.querySelectorAll('.' + flagInitialised);\n initialisedElements.forEach((initialisedElement) => {\n initialisedElement.classList.remove(flagInitialised);\n });\n this.hookupTableMain();\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupFilterIsNotEmpty() {\n this.hookupFilter(flagIsNotEmpty);\n }\n hookupButtonApplyFilters() {\n Events.hookupEventHandler(\"click\", idButtonApplyFilters, (event, button) => {\n event.stopPropagation();\n this.callFilterTableContent();\n });\n }\n hookupSearchTextFilter() {\n this.hookupFilter(flagSearch);\n }\n hookupFilterDog() {\n this.hookupFilter(attrIdDog); \n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory, (event, filterCommandCategory) => {\n this.handleChangeFilter();\n let isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);\n let idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);\n console.log(\"filter commands unsorted\");\n console.log(Utils.getListFromDict(filterCommands));\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => command[attrIdCommandCategory] == idCommandCategory);\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);\n let idCommandPrevious = DOM.getElementAttributeValuePrevious(filterCommand);\n filterCommand.innerHTML = '';\n let optionJson, option;\n option = DOM.createOption(null);\n filterCommand.appendChild(option);\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command, idCommandPrevious);\n option = DOM.createOption(optionJson);\n filterCommand.appendChild(option);\n });\n filterCommand.dispatchEvent(new Event('change'));\n return isDirtyFilter;\n });\n }\n hookupFilterCommand() {\n this.hookupFilter(attrIdCommand);\n }\n hookupFilterLocation() {\n this.hookupFilter(attrIdLocation);\n }\n /*\n getAndLoadFilteredTableContent = () => {\n this.callFilterTableContent()\n .catch(error => console.error('Error:', error));\n }\n */\n static getFormFilters() {\n return document.querySelector(idFormFilters);\n }\n callFilterTableContent() {\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"callFilterTableContent\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(this.constructor.hash, filtersJson);\n }\n callbackLoadTableContent(response) {\n let table = TableBasePage.getTableMain();\n let bodyTable = table.querySelector('tbody');\n bodyTable.querySelectorAll('tr').forEach(function(row) { row.remove(); });\n let rowsJson = response.data[flagRows];\n if (!Validation.isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {\n rowsJson = rowsJson.sort((a, b) => a.display_order - b.display_order);\n }\n rowsJson.forEach(this.loadRowTable.bind(this));\n this.hookupTableMain();\n }\n static getTableMain() {\n return document.querySelector(idTableMain);\n }\n loadRowTable(rowJson) {\n throw new Error(\"Subclass of TableBasePage must implement method loadRowTable().\");\n }\n getAndLoadFilteredTableContentSinglePageApp() {\n this.callFilterTableContent()\n .then(data => {\n Utils.consoleLogIfNotProductionEnvironment('Table data received:', data);\n this.callbackLoadTableContent(data);\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonsSaveCancel() {\n this.hookupButtonSave();\n this.hookupButtonCancel();\n this.toggleShowButtonsSaveCancel(false);\n }\n saveRecordsTableDirty() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n /*\n Utils.consoleLogIfNotProductionEnvironment({ formElement, comment, records });\n Utils.consoleLogIfNotProductionEnvironment('records');\n Utils.consoleLogIfNotProductionEnvironment(records);\n debugger;\n */\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callFilterTableContent();\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n getTableRecords(dirtyOnly = false) {\n let records = [];\n let record;\n document.querySelectorAll(idTableMain + ' > tbody > tr').forEach((row) => {\n if (dirtyOnly && !DOM.hasDirtyChildrenContainer(row)) return;\n record = this.getJsonRow(row);\n records.push(record);\n });\n return records;\n }\n getJsonRow(row) {\n throw new Error(\"Subclass of TableBasePage must implement method getJsonRow().\");\n }\n saveRecordsTableDirtySinglePageApp() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callbackLoadTableContent(data);\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonCancel() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagCancel, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n this.callFilterTableContent();\n });\n button.classList.add(flagIsCollapsed);\n });\n }\n handleClickAddRowTable(event, button) {\n event.stopPropagation();\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - _rowBlank.getAttribute(this.constructor.attrIdRowObject));\n let tbody = document.querySelector(idTableMain + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlank.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n row.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n this.initialiseRowNew(tbody, row);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableMain();\n this.postInitialiseRowNewCallback(tbody);\n }\n initialiseRowNew(tbody, row) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method initialiseRowNew().\");\n }\n // row.classList.remove(flagRowNew);\n }\n hookupTableMain() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement hookupTableMain() method.\");\n }\n Events.initialiseEventHandler(idTableMain, flagInitialised, (table) => {\n this.cacheRowBlank();\n });\n }\n cacheRowBlank() {\n let selectorRowNew = idTableMain + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n _rowBlank = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n }\n postInitialiseRowNewCallback(tbody) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method postInitialiseRowNewCallback(tbody).\");\n }\n }\n initialiseSliderDisplayOrderRowNew(tbody, row) {\n // let tdSelector = ':scope > tr > td.' + flagDisplayOrder;\n // let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');\n let slidersDisplayOrder = tbody.querySelectorAll(':scope > tr > td.' + flagDisplayOrder + ' input.' + flagSlider);\n let maxDisplayOrder = 0;\n slidersDisplayOrder.forEach((slider) => {\n maxDisplayOrder = Math.max(maxDisplayOrder, parseFloat(DOM.getElementValueCurrent(slider)));\n });\n let sliderDisplayOrder = row.querySelector('td.' + flagDisplayOrder + ' .' + flagSlider);\n DOM.setElementValuesCurrentAndPrevious(sliderDisplayOrder, maxDisplayOrder + 1);\n }\n hookupSlidersDisplayOrderTable() {\n let selectorDisplayOrder = idTableMain + ' tbody tr td.' + flagDisplayOrder + ' input.' + flagSlider + '.' + flagDisplayOrder;\n this.hookupChangeHandlerTableCells(selectorDisplayOrder);\n }\n hookupChangeHandlerTableCells(inputSelector, handler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.initialiseEventHandler(inputSelector, flagInitialised, (input) => {\n input.addEventListener(\"change\", (event) => {\n handler(event, input);\n });\n handler(null, input);\n });\n }\n handleChangeNestedElementCellTable(event, element) {\n let wasDirtyParentRows = this.getAllIsDirtyRowsInParentTree(element);\n let wasDirtyElement = element.classList.contains(flagDirty);\n let isDirtyElement = DOM.updateAndCheckIsElementDirty(element);\n // Utils.consoleLogIfNotProductionEnvironment({isDirtyElement, wasDirtyElement, wasDirtyParentRows});\n // let td = DOM.getCellFromElement(element);\n // DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));\n if (isDirtyElement != wasDirtyElement) {\n // DOM.handleDirtyElement(td, isDirtyElement);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows);\n }\n }\n getAllIsDirtyRowsInParentTree(element) {\n let rows = [];\n let parent = element;\n let isDirty;\n while (parent) {\n if (parent.tagName.toUpperCase() == 'TR') {\n isDirty = parent.classList.contains(flagDirty)\n rows.push(isDirty);\n }\n parent = parent.parentElement;\n }\n return rows;\n }\n cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows) {\n if (Validation.isEmpty(wasDirtyParentRows)) return;\n let tr = DOM.getRowFromElement(element);\n let isDirtyRow = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);\n let wasDirtyRow = wasDirtyParentRows.shift();\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(tr, isDirtyRow);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(tr.parentElement, isDirtyRow, wasDirtyParentRows);\n }\n }\n hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector, handler = (event, element) => {\n if (!element.classList.contains(flagIsCollapsed)) this.handleChangeNestedElementCellTable(event, element);\n }) {\n Events.hookupEventHandler(\"change\", inputSelector, handler);\n }\n hookupFieldsCodeTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagCode + ' > .' + flagCode);\n }\n hookupFieldsNameTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagName + ' > .' + flagName);\n }\n hookupFieldsDescriptionTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagDescription + ' > .' + flagDescription);\n }\n hookupFieldsNotesTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagNotes + ' > .' + flagNotes);\n }\n hookupFieldsActive(flagTable = '', handleClickRowNew = (event, element) => { this.handleClickAddRowTable(event, element); }) {\n let selectorButton = 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;\n let selectorButtonDelete = selectorButton + '.' + flagDelete;\n let selectorButtonUndelete = selectorButton + ':not(.' + flagDelete + ')';\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsActive: \", selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete);\n Events.hookupEventHandler(\n \"click\"\n , 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' .' + flagButton + '.' + flagActive\n , (event, button) => { handleClickRowNew(event, button); }\n );\n }\n hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonDelete, (event, element) => {\n this.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = element.classList.contains(flagDirty);\n let row = DOM.getRowFromElement(element);\n if (row.classList.contains(flagRowNew) && !DOM.hasDirtyChildrenContainer(row)) {\n row.parentNode.removeChild(row);\n }\n else {\n let buttonAddTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagAdd);\n let buttonAdd = buttonAddTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonAdd, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonAdd, false);\n if (wasDirty) buttonAdd.classList.add(flagDirty);\n element.replaceWith(buttonAdd);\n changeHandler(null, buttonAdd);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonUndelete, (event, element) => {\n this.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = DOM.isElementDirty(element);\n let buttonDeleteTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagDelete);\n let buttonDelete = buttonDeleteTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonDelete, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonDelete, true);\n if (wasDirty) buttonDelete.classList.add(flagDirty);\n element.replaceWith(buttonDelete);\n changeHandler(null, buttonDelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupTdsAccessLevel() {\n this.hookupTableCellDdlPreviews(flagAccessLevel, Utils.getListFromDict(accessLevels));\n }\n hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n if (cellSelector == null) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + fieldFlag, (event, div) => {\n this.handleClickTableCellDdlPreview(\n event\n , div\n , fieldFlag\n , optionList\n , cellSelector\n , (ddlSelector) => { ddlHookup(\n ddlSelector\n , (event, element) => { changeHandler(event, element); }\n ); }\n );\n });\n ddlHookup(cellSelector + ' select.' + fieldFlag);\n }\n hookupTableCellDdls(ddlSelector, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { changeHandler(event, element); });\n }\n handleClickTableCellDdlPreview(event, div, fieldFlag, optionObjectList, cellSelector = null, ddlHookup = (cellSelector) => { this.hookupTableCellDdls(cellSelector); }) {\n if (Validation.isEmpty(cellSelector)) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n let idSelected = DOM.getElementAttributeValueCurrent(div);\n let td = DOM.getCellFromElement(div);\n td.innerHTML = '';\n let ddl = document.createElement('select');\n ddl.classList.add(fieldFlag);\n DOM.setElementValuesCurrentAndPrevious(ddl, idSelected);\n let optionJson, option;\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"click table cell ddl preview\");\n Utils.consoleLogIfNotProductionEnvironment({optionObjectList, cellSelector});\n }\n option = DOM.createOption(null);\n ddl.appendChild(option);\n optionObjectList.forEach((optionObjectJson) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(optionObjectJson, idSelected);\n option = DOM.createOption(optionJson);\n ddl.appendChild(option);\n });\n td.appendChild(ddl);\n let ddlSelector = cellSelector + ' select.' + fieldFlag;\n ddlHookup(ddlSelector);\n }\n /*\n hookupTableCellDDlPreviewsWhenNotCollapsed(cellSelector, optionList, ddlHookup = (event, element) => { this.hookupTableCellDdls(event, element); }) {\n Events.hookupEventHandler(\"click\", cellSelector + ' div', (event, div) => {\n this.handleClickTableCellDdlPreview(event, div, optionList, cellSelector, (event, element) => { ddlHookup(event, element); });\n });\n }\n */\n toggleColumnCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n toggleColumnHeaderCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n\n hookupFieldsCommandCategory(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , idTable + ' > tbody > tr > td.' + flagCommandCategory // + ' .' + flagCommandCategory\n , (cellSelector) => { this.hookupCommandCategoryDdls(cellSelector); }\n );\n }\n hookupCommandCategoryDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeCommandCategoryDdl(event, element); });\n }\n handleChangeCommandCategoryDdl(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (\n idCommandCategoryRowOld == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n ) return;\n console.log({ idCommandCategoryRowNew, idCommandCategoryRowOld });\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let tdCommand = row.querySelector('td.' + flagCommand);\n tdCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n hookupFieldsCommand(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n Events.hookupEventHandler(\"click\", idTable + ' > tbody > tr > td.' + flagCommand + ' div.' + flagCommand, (event, div) => {\n Utils.consoleLogIfNotProductionEnvironment(div);\n let parentTr = DOM.getRowFromElement(div);\n Utils.consoleLogIfNotProductionEnvironment({ div, parentTr });\n let tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);\n let idCommandCategoryRow = this.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let filterCommandList = Utils.getListFromDict(filterCommands);\n let commandsInCategory = filterCommandList.filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRow\n || idCommandCategoryRow == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n Utils.consoleLogIfNotProductionEnvironment({ tdCommandCategory, idCommandCategoryRow, idCommandCategoryFilter, filterCommandList, commandsInCategory });\n Utils.consoleLogIfNotProductionEnvironment(filterCommandList);\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagCommand // fieldFlag\n , sortedCommands // optionList\n , idTable + ' > tbody > tr > td.' + flagCommand // cellSelector\n , (cellSelector) => { this.hookupTableCellDdls(\n cellSelector\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n idTable + ' > tbody > tr > td.' + flagCommand + ' select.' + flagCommand\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n );\n }\n handleChangeCommandDdl(event, ddlCommand) {\n // console.log(\"handle change command ddl\");\n let row = DOM.getRowFromElement(ddlCommand);\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row);\n let idCommandNew = this.getIdCommandRow(row);\n let commandNew = filterCommands[idCommandNew];\n // console.log({ idCommandCategoryRowOld, commandNew });\n if (commandNew == null || idCommandCategoryRowOld == commandNew[attrIdCommandCategory]) return;\n let divCommandCategory = row.querySelector('td.' + flagCommandCategory + ' div');\n if (divCommandCategory) divCommandCategory.dispatchEvent(new Event('click'));\n let ddlCommandCategory = row.querySelector('td.' + flagCommandCategory + ' select.' + flagCommandCategory);\n DOM.setElementValueCurrent(ddlCommandCategory, commandNew[attrIdCommandCategory]);\n // console.log({ ddlCommandCategory, commandNew });\n this.handleChangeNestedElementCellTable(event, ddlCommandCategory);\n }\n getIdCommandCategoryRow(tr) {\n let elementCommandCategory = tr.querySelector('td.' + flagCommandCategory + ' .' + flagCommandCategory);\n return DOM.getElementAttributeValueCurrent(elementCommandCategory);\n }\n getIdCommandCategoryFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let idCommandCategory = 0;\n if (formFilters == null) return idCommandCategory;\n let commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandCategoryFilter = DOM.getElementAttributeValueCurrent(commandCategoryFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandCategoryFilter });\n if (valueCurrentCommandCategoryFilter == \"\") {\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandFilter });\n if (valueCurrentCommandFilter != \"\") {\n let command = filterCommands[valueCurrentCommandFilter];\n idCommandCategory = command[attrIdCommandCategory];\n }\n } else {\n idCommandCategory = Number(valueCurrentCommandCategoryFilter);\n }\n return idCommandCategory;\n }\n getHasCommandCategoryFilter() {\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n return !(Validation.isEmpty(idCommandCategoryFilter) || idCommandCategoryFilter == 0);\n }\n getIdCommandRow(tr) {\n let elementCommand = tr.querySelector('td.' + flagCommand + ' .' + flagCommand);\n return DOM.getElementAttributeValueCurrent(elementCommand);\n }\n getIdCommandFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n let idCommand = Number(valueCurrentCommandFilter);\n return idCommand;\n }\n getHasCommandFilter() {\n let idCommandFilter = this.getIdCommandFilter();\n return !(Validation.isEmpty(idCommandFilter) || idCommandFilter == 0);\n }\n hookupFieldsDog() {\n this.hookupTableCellDdlPreviews(flagDog, Utils.getListFromDict(filterDogs));\n }\n getIdDogRow(tr) {\n let elementDog = tr.querySelector('td.' + flagDog + ' .' + flagDog);\n return DOM.getElementAttributeValueCurrent(elementDog);\n }\n /*\n createTdActive(isActive) {\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive);\n let buttonActive = document.createElement(\"button\");\n buttonActive.classList.add(flagActive);\n buttonActive.classList.add(isActive ? flagDelete : flagAdd);\n buttonActive.textContent = isActive ? 'x' : '+';\n DOM.setElementAttributesValuesCurrentAndPrevious(buttonActive, isActive);\n tdActive.appendChild(buttonActive);\n return tdActive;\n }\n */\n leave() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n super.leave();\n let formFilters = TableBasePage.getFormFilters();\n let dataPage = {};\n dataPage[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n this.setLocalStoragePage(dataPage);\n }\n\n toggleColumnHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n let columnThHasFlag = columnTh.classList.contains(classnameFlag);\n if (isRequiredFlag == columnThHasFlag) return;\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n toggleColumnHeaderHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n\n updateAndToggleShowButtonsSaveCancel() {\n let records = this.getTableRecords(true);\n let isDirtyMainTable = records.length > 0;\n\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters);\n\n console.log({ records, isDirtyMainTable, formFilters, areDirtyFilters });\n\n this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters);\n }\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport TableBasePage from \"../base_table.js\";\n\nexport default class DogMixinPage {\n constructor(pageCurrent) {\n this.page = pageCurrent;\n }\n\n initialize() {\n Utils.consoleLogIfNotProductionEnvironment('hookup dog start for ', this.page.hash);\n this.hookupFilters();\n this.hookupLocalStorageDog();\n }\n hookupFilters() {\n }\n hookupLocalStorageDog() {\n \n }\n\n /*\n hookupDogCardsProduct() {\n \n let d; // , lsShared;\n let selectorCardProduct = '.card.subcard';\n Events.initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"initialising product card: \", cardProduct); }\n cardProduct.addEventListener(\"click\", function(event) {\n // d = { keyIdProduct: product.getAttribute(attrIdProduct) }\n var elemClicked = event.target;\n if (elemClicked.id != 'submit') { // disable for submit buttons\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"product click: \" + cardProduct.getAttribute(attrIdProduct));\n Utils.consoleLogIfNotProductionEnvironment(\"permutation click: \" + cardProduct.getAttribute(attrIdPermutation));\n }\n var d = {}\n d[keyIdProduct] = cardProduct.getAttribute(attrIdProduct)\n d[keyIdPermutation] = cardProduct.getAttribute(attrIdPermutation)\n // send quantity requested\n goToPage(hashPageDogProduct, d);\n }\n });\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"click method added for product ID: \" + cardProduct.getAttribute(attrIdProduct) + ', permutation ID: ', cardProduct.getAttribute(attrIdPermutation)); }\n });\n }\n */\n \n leave() {}\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport DogMixinPage from \"./mixin.js\";\nimport Utils from \"../../lib/utils.js\";\n\nexport default class DogTableMixinPage extends DogMixinPage {\n constructor(pageCurrent) {\n super(pageCurrent);\n }\n initialize() {\n super.initialize();\n this.hookupFilters();\n this.hookupTable();\n }\n hookupFilters() {\n // Implement filter-specific functionality here\n }\n hookupTable() {\n // Implement table-specific functionality here\n }\n hookupFieldsLocation() {\n this.page.hookupTableCellDdlPreviews(\n flagLocation\n , Utils.getListFromDict(filterLocations) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n}","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandCategories extends TableBasePage {\n static hash = hashPageDogCommandCategories;\n static attrIdRowObject = attrIdCommandCategory;\n callSaveTableContent = API.saveCommandCategories;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCommandCategory] = row.getAttribute(attrIdCommandCategory);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommands extends TableBasePage {\n static hash = hashPageDogCommands;\n static attrIdRowObject = attrIdCommand;\n callSaveTableContent = API.saveCommands;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterActive();\n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let inputHandSignalDefaultDescription = row.querySelector('td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n let inputCanHaveButton = row.querySelector('td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n /*\n Utils.consoleLogIfNotProductionEnvironment({ inputName, inputHandSignalDefaultDescription, inputCanHaveButton, inputNotes, buttonActive });\n debugger;\n */\n\n let jsonRow = {};\n jsonRow[attrIdCommand] = row.getAttribute(attrIdCommand);\n jsonRow[attrIdCommandCategory] = this.getIdCommandCategoryRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagHandSignalDefaultDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDefaultDescription);\n jsonRow[flagCanHaveButton] = (DOM.getElementAttributeValueCurrent(inputCanHaveButton) == \"true\");\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsNameTable();\n this.hookupTextareasHandSignalDefaultDescription();\n this.hookupFieldsCanHaveButton();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsCommandCategory() {\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories)\n );\n }\n hookupTextareasHandSignalDefaultDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n }\n hookupFieldsCanHaveButton() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogDogCommandLinks extends TableBasePage {\n static hash = hashPageDogDogCommandLinks;\n static attrIdRowObject = attrIdDogCommandLink;\n callSaveTableContent = API.saveDogCommandLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterDog();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDog();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupTextareasHandSignalDescription();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupTextareasHandSignalDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDescription + ' .' + flagHandSignalDescription);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogLocations extends TableBasePage {\n static hash = hashPageDogLocations;\n static attrIdRowObject = attrIdLocation;\n callSaveTableContent = API.saveLocations;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdLocation] = row.getAttribute(attrIdLocation);\n jsonRow[flagLocationParent] = this.getIdLocationParentRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdLocationParentRow(row) {\n let elementLocationParent = row.querySelector('td.' + flagLocationParent + ' .' + flagLocationParent);\n return DOM.getElementAttributeValueCurrent(elementLocationParent);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagLocationParent + ' div.' + flagLocationParent\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsLocationParent();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsLocationParent() {\n /*\n this.hookupTableCellDdlPreviews(\n flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] == idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , null // cellSelector\n , (cellSelector) => { this.hookupLocationParentDdls(cellSelector); }\n ,\n );\n\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n\n */\n let cellSelector = idTableMain + ' > tbody > tr > td.' + flagLocationParent;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + flagLocationParent, (event, div) => {\n let row = DOM.getRowFromElement(div);\n let idLocationRow = Number(row.getAttribute(attrIdLocation));\n Utils.consoleLogIfNotProductionEnvironment({ idLocationRow });\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] != idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , cellSelector\n , (ddlSelector) => { this.hookupTableCellDdls(\n ddlSelector\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n cellSelector + ' select.' + flagLocationParent\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n );\n }\n /*\n hookupLocationParentDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeNestedElementCellTable(event, element); });\n }\n */\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogButtonIcons extends TableBasePage {\n static hash = hashPageDogButtonIcons;\n static attrIdRowObject = attrIdButtonIcon;\n callSaveTableContent = API.saveButtonIcons;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdButtonIcon] = row.getAttribute(attrIdButtonIcon);\n jsonRow[flagImage] = this.getIdImageRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdImageRow(row) {\n let elementImage = row.querySelector('td.' + flagImage + ' .' + flagImage);\n return DOM.getElementAttributeValueCurrent(elementImage);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagImage + ' div.' + flagImage\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsImage();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsImage() {\n this.hookupTableCellDdlPreviews(\n flagImage\n , Utils.getListFromDict(buttonicons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandButtonLinks extends TableBasePage {\n static hash = hashPageDogCommandButtonLinks;\n static attrIdRowObject = attrIdCommandButtonLink;\n callSaveTableContent = API.saveCommandButtonLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterButtonShape();\n this.hookupFilterColour();\n this.hookupFilterButtonIcon();\n this.hookupFilterLocation();\n this.hookupFilterActive();\n }\n hookupFilterButtonShape() {\n this.hookupFilter(attrIdButtonShape);\n }\n hookupFilterColour() {\n this.hookupFilter(attrIdColour);\n }\n hookupFilterButtonIcon() {\n this.hookupFilter(attrIdButtonIcon);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdCommandButtonLink] = row.getAttribute(attrIdCommandButtonLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupFieldsButtonShape();\n this.hookupFieldsColour();\n this.hookupFieldsButtonIcon();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsActive();\n }\n hookupFieldsButtonShape() {\n this.hookupTableCellDdlPreviews(\n flagButtonShape\n , Utils.getListFromDict(filterButtonShapes) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsColour() {\n this.hookupTableCellDdlPreviews(\n flagColour\n , Utils.getListFromDict(filterColours) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsButtonIcon() {\n this.hookupTableCellDdlPreviews(\n flagButtonIcon\n , Utils.getListFromDict(filterButtonIcons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nvar _rowBlankDistraction;\nvar _rowBlankAssessmentCommandModalityLink;\n\nexport default class PageDogAssessment extends TableBasePage {\n static hash = hashPageDogAssessment;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessmentsDistractionsAndResponses;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getTableRecords(dirtyOnly = false) {\n dirtyOnly = true;\n let row = document.querySelector(idTableAssessment + ' tbody tr.' + flagAssessment);\n return [this.getJsonRow(row)];\n }\n getJsonRow(row) {\n console.log(\"getJsonRow: \", row);\n if (row == null) return;\n let inputWeather = row.querySelector(idTableAssessment + ' td.' + flagWeather + ' .' + flagWeather);\n let inputLightingLevel = row.querySelector(idTableAssessment + ' td.' + flagLightingLevel + ' .' + flagLightingLevel);\n let inputTemeratureCelcius = row.querySelector(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n let inputLocation = row.querySelector(idTableAssessment + ' td.' + flagLocation + ' .' + flagLocation);\n let inputUserHandler = row.querySelector(idTableAssessment + ' td.' + flagUserHandler + ' .' + flagUserHandler);\n let inputNotes = row.querySelector(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n // let buttonActive = row.querySelector(idTableAssessment + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n let idAssessment = row.getAttribute(attrIdAssessment);\n let jsonRow = {};\n jsonRow[attrIdAssessment] = idAssessment;\n jsonRow[attrIdWeather] = DOM.getElementAttributeValueCurrent(inputWeather);\n jsonRow[attrIdLightingLevel] = DOM.getElementAttributeValueCurrent(inputLightingLevel);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemeratureCelcius);\n jsonRow[attrIdLocation] = DOM.getElementAttributeValueCurrent(inputLocation);\n jsonRow[flagUserHandler] = DOM.getElementAttributeValueCurrent(inputUserHandler);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = true; // buttonActive.classList.contains(flagDelete);\n jsonRow[flagDistraction] = this.getDirtyDistractions(idAssessment);\n jsonRow[flagAssessmentCommandModalityLink] = this.getDirtyAssessmentCommandModalityLinks(idAssessment);\n console.log({ jsonRow });\n return jsonRow;\n }\n getDirtyDistractions(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableDistractions + ' tbody tr.' + flagDistraction + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n // dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputDistractionType, distractionType,\n inputIntensityLevelEmotional, intensityLevelEmotional,\n inputIntensityLevelScent, intensityLevelScent,\n inputIntensityLevelSight, intensityLevelSight,\n inputIntensityLevelSound, intensityLevelSound,\n inputIntensityLevelTouch, intensityLevelTouch,\n inputQuantity, quantity,\n inputProximityMetres, proximityMetres,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyDistractions');\n console.log({ dirtyRows });\n let dirtyDistractions = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputDistractionType = dirtyRow.querySelector('td.' + flagDistractionType + ' .' + flagDistractionType);\n distractionType = DOM.getElementAttributeValueCurrent(inputDistractionType);\n inputIntensityLevelEmotional = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelEmotional + ' .' + flagDistractionIntensityLevelEmotional);\n intensityLevelEmotional = DOM.getElementAttributeValueCurrent(inputIntensityLevelEmotional);\n inputIntensityLevelScent = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelScent + ' .' + flagDistractionIntensityLevelScent);\n intensityLevelScent = DOM.getElementAttributeValueCurrent(inputIntensityLevelScent);\n inputIntensityLevelSight = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSight + ' .' + flagDistractionIntensityLevelSight);\n intensityLevelSight = DOM.getElementAttributeValueCurrent(inputIntensityLevelSight);\n inputIntensityLevelSound = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSound + ' .' + flagDistractionIntensityLevelSound);\n intensityLevelSound = DOM.getElementAttributeValueCurrent(inputIntensityLevelSound);\n inputIntensityLevelTouch = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelTouch + ' .' + flagDistractionIntensityLevelTouch);\n intensityLevelTouch = DOM.getElementAttributeValueCurrent(inputIntensityLevelTouch);\n inputQuantity = dirtyRow.querySelector('td.' + flagQuantity + ' .' + flagQuantity);\n quantity = DOM.getElementAttributeValueCurrent(inputQuantity);\n inputProximityMetres = dirtyRow.querySelector('td.' + flagProximityMetres + ' .' + flagProximityMetres);\n proximityMetres = DOM.getElementAttributeValueCurrent(inputProximityMetres);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableDistractions + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyDistractions.push({\n [attrIdDistraction]: dirtyRow.getAttribute(attrIdDistraction)\n , [attrIdAssessment]: idAssessment\n , [attrIdDistractionType]: distractionType\n , [flagDistractionIntensityLevelEmotional]: intensityLevelEmotional\n , [flagDistractionIntensityLevelScent]: intensityLevelScent\n , [flagDistractionIntensityLevelSight]: intensityLevelSight\n , [flagDistractionIntensityLevelSound]: intensityLevelSound\n , [flagDistractionIntensityLevelTouch]: intensityLevelTouch\n , [flagQuantity]: quantity\n , [flagProximityMetres]: proximityMetres\n , [flagNotes]: notes\n , [flagActive]: active\n });\n };\n return dirtyDistractions;\n }\n getDirtyAssessmentCommandModalityLinks(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr.' + flagAssessmentCommandModalityLink + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow, idAssessmentCommandModalityLink,\n inputCommand, command,\n inputCommandModality, commandModality,\n inputBribe, bribe,\n inputDistanceFromHandler, distanceFromhandler,\n inputIsInHearingRangeOfHandler, isInHearingRangeOfHandler,\n inputIsInScentRangeOfHandler, isInScentRangeOfHandler,\n inputIsInSightOfHandler, isInSightOfHandler,\n inputIsOnLead, isOnLead,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentCommandModalityLinks');\n console.log({ dirtyRows });\n let dirtyLinks = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n idAssessmentCommandModalityLink = dirtyRow.getAttribute(attrIdAssessmentCommandModalityLink);\n inputCommand = dirtyRow.querySelector('td.' + flagCommand + ' .' + flagCommand);\n command = DOM.getElementAttributeValueCurrent(inputCommand);\n inputCommandModality = dirtyRow.querySelector('td.' + flagCommandModality + ' .' + flagCommandModality);\n commandModality = DOM.getElementAttributeValueCurrent(inputCommandModality);\n inputBribe = dirtyRow.querySelector('td.' + flagBribe + ' .' + flagBribe);\n bribe = DOM.getElementAttributeValueCurrent(inputBribe);\n inputDistanceFromHandler = dirtyRow.querySelector('td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n distanceFromhandler = DOM.getElementAttributeValueCurrent(inputDistanceFromHandler);\n inputIsInHearingRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n isInHearingRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInHearingRangeOfHandler);\n inputIsInScentRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n isInScentRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInScentRangeOfHandler);\n inputIsInSightOfHandler = dirtyRow.querySelector('td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n isInSightOfHandler = DOM.getElementAttributeValueCurrent(inputIsInSightOfHandler);\n inputIsOnLead = dirtyRow.querySelector('td.' + flagIsOnLead + ' .' + flagIsOnLead);\n isOnLead = DOM.getElementAttributeValueCurrent(inputIsOnLead);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentCommandModalityLinks + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyLinks.push({\n [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdAssessment]: idAssessment\n , [attrIdCommand]: command\n , [attrIdCommandModality]: commandModality\n , [attrIdBribe]: bribe\n , [flagDistanceFromHandlerMetres]: distanceFromhandler\n , [flagIsInHearingRangeOfHandler]: isInHearingRangeOfHandler\n , [flagIsInScentRangeOfHandler]: isInScentRangeOfHandler\n , [flagIsInSightOfHandler]: isInSightOfHandler\n , [flagIsOnLead]: isOnLead\n , [flagNotes]: notes\n , [flagActive]: active\n , [flagAssessmentResponse]: this.getDirtyAssessmentResponses(dirtyRow, idAssessmentCommandModalityLink)\n });\n }\n return dirtyLinks;\n }\n getDirtyAssessmentResponses(rowAssessmentCommandModalityLink, idAssessmentCommandModalityLink) {\n let dirtyRows = rowAssessmentCommandModalityLink.querySelectorAll(idTableAssessmentResponses + ' tbody tr.' + flagAssessmentResponse + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputResponseQualityMetric, responseQualityMetric,\n inputObedienceLevel, obedienceLevel,\n inputValueMeasured, valueMeasured,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentResponses');\n console.log({ dirtyRows });\n let dirtyResponses = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputResponseQualityMetric = dirtyRow.querySelector('td.' + flagResponseQualityMetric + ' .' + flagResponseQualityMetric);\n responseQualityMetric = DOM.getElementAttributeValueCurrent(inputResponseQualityMetric);\n inputObedienceLevel = dirtyRow.querySelector('td.' + flagObedienceLevel + ' .' + flagObedienceLevel);\n obedienceLevel = DOM.getElementAttributeValueCurrent(inputObedienceLevel);\n inputValueMeasured = dirtyRow.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n valueMeasured = DOM.getElementAttributeValueCurrent(inputValueMeasured);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentResponses + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyResponses.push({\n [attrIdAssessmentResponse]: dirtyRow.getAttribute(attrIdAssessmentResponse)\n , [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdResponseQualityMetric]: responseQualityMetric\n , [attrIdObedienceLevel]: obedienceLevel\n , [flagValueMeasured]: valueMeasured\n , [flagNotes]: notes\n , [flagActive]: active\n });\n }\n return dirtyResponses;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagWeather + ' div.' + flagWeather\n , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel\n , ',td.' + flagLocation + ' div.' + flagLocation\n , ',td.' + flagUserHandler + ' div.' + flagUserHandler\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n callFilterTableContent() {\n if (assessment[attrIdAssessment] < 1) {\n let formFilters = TableBasePage.getFormFilters();\n let filterAssessment = formFilters.querySelector('#' + attrIdAssessment);\n DOM.setElementValueCurrent(filterAssessment, '');\n }\n super.callFilterTableContent();\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupTableAssessmentHeader();\n this.hookupTableDistractions();\n this.hookupTableAssessmentCommandModalityLinks();\n }\n hookupTableAssessmentHeader() {\n this.hookupTableAssessmentFieldWeather();\n this.hookupTableAssessmentFieldLightingLevel();\n this.hookupTableAssessmentFieldTemperature();\n this.hookupTableAssessmentFieldLocation();\n this.hookupTableAssessmentFieldUserHandler();\n this.hookupTableAssessmentFieldNotes();\n if (assessment[attrIdAssessment] < 1) {\n let tbody = document.querySelector(idTableAssessment + ' tbody');\n let row = tbody.querySelector('tr');\n row.classList.add(flagRowNew);\n this.postInitialiseRowNewCallback(tbody);\n }\n }\n hookupTableAssessmentFieldWeather() {\n let fieldFlag = flagWeather;\n let optionList = Utils.getListFromDict(filterWeathers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagWeather;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldLightingLevel() {\n let fieldFlag = flagLightingLevel;\n let optionList = Utils.getListFromDict(filterLightingLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLightingLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldTemperature() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n }\n hookupTableAssessmentFieldLocation() {\n let fieldFlag = flagLocation;\n let optionList = Utils.getListFromDict(filterLocations); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLocation;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldUserHandler() {\n let fieldFlag = flagUserHandler;\n let optionList = Utils.getListFromDict(filterUserHandlers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessment + ' td.' + flagUserHandler;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractions() {\n Events.initialiseEventHandler(idTableDistractions, flagInitialised, (table) => {\n let selectorRowNew = idTableDistractions + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n _rowBlankDistraction = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - countRows);\n });\n\n this.hookupTableDistractionsFieldsDistractionType();\n this.hookupTableDistractionsFieldsIntensityLevelEmotional();\n this.hookupTableDistractionsFieldsIntensityLevelScent();\n this.hookupTableDistractionsFieldsIntensityLevelSight();\n this.hookupTableDistractionsFieldsIntensityLevelSound();\n this.hookupTableDistractionsFieldsIntensityLevelTouch();\n this.hookupTableDistractionsFieldsQuantity();\n this.hookupTableDistractionsFieldsProximityMetres();\n this.hookupTableDistractionsFieldsNotes();\n this.hookupTableDistractionsFieldsActive();\n }\n hookupTableDistractionsFieldsDistractionType() {\n let fieldFlag = flagDistractionType;\n let optionList = Utils.getListFromDict(filterDistractionTypes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionType;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelEmotional() {\n let fieldFlag = flagDistractionIntensityLevelEmotional;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelEmotional;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelScent() {\n let fieldFlag = flagDistractionIntensityLevelScent;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelScent;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSight() {\n let fieldFlag = flagDistractionIntensityLevelSight;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSight;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSound() {\n let fieldFlag = flagDistractionIntensityLevelSound;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSound;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelTouch() {\n let fieldFlag = flagDistractionIntensityLevelTouch;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelTouch;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsQuantity() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagQuantity + ' .' + flagQuantity);\n }\n hookupTableDistractionsFieldsProximityMetres() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagProximityMetres + ' .' + flagProximityMetres);\n }\n hookupTableDistractionsFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractionsFieldsActive() {\n this.hookupFieldsActive(flagDistraction, (event, element) => { this.handleClickAddRowTableDistractions(event, element); });\n }\n handleClickAddRowTableDistractions(event, button) {\n event.stopPropagation();\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - _rowBlankDistraction.getAttribute(attrIdDistraction));\n let tbody = document.querySelector(idTableDistractions + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankDistraction.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n row.setAttribute(attrIdDistraction, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableDistractions();\n this.postInitialiseDistractionRowNewCallback(tbody);\n }\n postInitialiseDistractionRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDistractionType + ' div.' + flagDistractionType\n , ',td.' + flagDistractionIntensityLevelEmotional + ' div.' + flagDistractionIntensityLevelEmotional\n , ',td.' + flagDistractionIntensityLevelScent + ' div.' + flagDistractionIntensityLevelScent\n , ',td.' + flagDistractionIntensityLevelSight + ' div.' + flagDistractionIntensityLevelSight\n , ',td.' + flagDistractionIntensityLevelSound + ' div.' + flagDistractionIntensityLevelSound\n , ',td.' + flagDistractionIntensityLevelTouch + ' div.' + flagDistractionIntensityLevelTouch\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n hookupTableAssessmentCommandModalityLinks() {\n Events.initialiseEventHandler(idTableAssessmentCommandModalityLinks, flagInitialised, (table) => {\n let selectorRowNew = idTableAssessmentCommandModalityLinks + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n _rowBlankAssessmentCommandModalityLink = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n });\n\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandCategory();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommand();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality();\n this.hookupTableAssessmentCommandModalityLinksFieldsBribe();\n this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsOnLead();\n this.hookupTableAssessmentCommandModalityLinksFieldsTrialCount();\n this.hookupTableAssessmentCommandModalityLinksFieldsNotes();\n this.hookupTableAssessmentCommandModalityLinksFieldsResponses();\n this.hookupTableAssessmentCommandModalityLinksFieldsActive();\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandCategory() {\n this.hookupFieldsCommandCategory(idTableAssessmentCommandModalityLinks);\n /*\n let fieldFlag = flagCommandCategory;\n let optionList = Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandCategory;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n , (tdSelector) => { this.hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(tdSelector); }\n , (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); }\n );\n */\n }\n /*\n hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); });\n }\n handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (idCommandCategoryRowOld == idCommandCategoryRowNew) return;\n let divCommand = row.querySelector('td.' + flagCommand + ' div');\n if (divCommand) divCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n */\n hookupTableAssessmentCommandModalityLinksFieldsCommand() {\n this.hookupFieldsCommand(idTableAssessmentCommandModalityLinks);\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandModality() {\n let fieldFlag = flagCommandModality;\n let optionList = Utils.getListFromDict(filterCommandModalities); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandModality;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsBribe() {\n let fieldFlag = flagBribe;\n let optionList = Utils.getListFromDict(filterBribes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagBribe;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsOnLead() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsOnLead + ' .' + flagIsOnLead);\n }\n hookupTableAssessmentCommandModalityLinksFieldsTrialCount() {\n // this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagTrialCount + ' .' + flagTrialCount);\n }\n hookupTableAssessmentCommandModalityLinksFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' > tbody > tr > td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentCommandModalityLinksFieldsResponses() {\n let eventType = \"click\";\n let selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse;\n let handler = (event, element) => {\n let parentTd = DOM.getCellFromElement(element);\n let rowAssessmentCommandModalityLink = parentTd.closest('tr.' + flagAssessmentCommandModalityLink);\n let idAssessmentCommandModalityLink = rowAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink);\n let responsesTable = document.createElement(\"table\");\n responsesTable.id = idTableAssessmentResponses.replace(\"#\", \"\");\n responsesTable.classList.add(flagTableMain, flagAssessmentResponse);\n\n let head = document.createElement(\"thead\");\n let headRow = document.createElement(\"tr\");\n let thResponseQualityMetric = document.createElement(\"th\");\n thResponseQualityMetric.classList.add(flagResponseQualityMetric);\n thResponseQualityMetric.innerText = 'Response Quality Metric';\n headRow.appendChild(thResponseQualityMetric);\n let thObedienceLevel = document.createElement(\"th\");\n thObedienceLevel.classList.add(flagObedienceLevel);\n thObedienceLevel.innerText = 'Obedience Level';\n headRow.appendChild(thObedienceLevel);\n let thValueMeasured = document.createElement(\"th\");\n thValueMeasured.classList.add(flagValueMeasured);\n thValueMeasured.innerText = 'Value Measured';\n headRow.appendChild(thValueMeasured);\n let thNotes = document.createElement(\"th\");\n thNotes.classList.add(flagNotes);\n thNotes.innerText = 'Notes';\n headRow.appendChild(thNotes);\n let thActive = document.createElement(\"th\");\n thActive.classList.add(flagActive);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n thActive.appendChild(templateAddIcon.cloneNode(true));\n headRow.appendChild(thActive);\n head.appendChild(headRow);\n responsesTable.appendChild(head);\n\n let body = document.createElement(\"tbody\");\n \n let assessmentCommandModalityLinks = assessment[flagAssessmentCommandModalityLink].filter(link => link[attrIdAssessmentCommandModalityLink] == idAssessmentCommandModalityLink);\n let assessmentCommandModalityLink = (assessmentCommandModalityLinks == null || assessmentCommandModalityLinks.length == 0) ? null : assessmentCommandModalityLinks[0];\n let responses = (assessmentCommandModalityLink == null) ? null : assessmentCommandModalityLink[flagAssessmentResponse];\n \n console.log({ assessmentCommandModalityLinks, responses });\n if (responses != null && responses.length > 0) {\n for (let responseKey in Object.keys(responses)) {\n let response = responses[responseKey];\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(response);\n body.appendChild(row);\n }\n }\n responsesTable.appendChild(body);\n\n parentTd.innerHTML = responsesTable.outerHTML;\n\n let responseRows = parentTd.querySelectorAll('tbody tr.' + flagAssessmentResponse);\n if (responseRows != null && responseRows.length > 0) {\n for (let indexRow = 0; indexRow < responseRows.length; indexRow++) {\n let row = responseRows[indexRow];\n // let idAssessmentResponse = row.getAttribute(attrIdAssessmentResponse);\n \n let response = responses[indexRow]; // idAssessmentResponse];\n console.log({ indexRow, row, response }); // idAssessmentResponse,\n let inputValueMeasured = row.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n DOM.setElementValueCurrent(inputValueMeasured, response[flagValueMeasured]);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n DOM.setElementValueCurrent(inputNotes, response[flagNotes]);\n }\n }\n\n this.hookupTablesAssessmentResponses();\n };\n Events.hookupEventHandler(\n eventType\n , selector\n , handler\n );\n this.hookupTablesAssessmentResponses();\n }\n static createNewRowTableAssessmentResponses(response) {\n if (response == null) response = {\n [attrIdAssessmentResponse]: null\n , [attrIdResponseQualityMetric]: {\n [attrIdResponseQualityMetric]: 0\n }\n , [attrIdObedienceLevel]: {\n [attrIdObedienceLevel]: 0\n }\n , [flagValueMeasured]: ''\n , [flagNotes]: ''\n , [flagActive]: true\n };\n console.log({ response });\n let isNew = (response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1);\n let row = document.createElement(\"tr\");\n row.classList.add(flagAssessmentResponse);\n if (isNew) row.classList.add(flagRowNew);\n row.setAttribute(attrIdAssessmentResponse, response[attrIdAssessmentResponse]);\n\n let tdResponseQualityMetric = document.createElement(\"td\");\n tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview);\n let divResponseQualityMetric = document.createElement(\"div\");\n divResponseQualityMetric.classList.add(flagResponseQualityMetric);\n let idResponseQualityMetric = response[attrIdResponseQualityMetric][attrIdResponseQualityMetric];\n let responseQualityMetric = filterResponseQualityMetrics[idResponseQualityMetric];\n DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, idResponseQualityMetric);\n divResponseQualityMetric.innerText = (responseQualityMetric == null) ? '' : responseQualityMetric[flagName];\n tdResponseQualityMetric.appendChild(divResponseQualityMetric);\n row.appendChild(tdResponseQualityMetric);\n\n let tdObedienceLevel = document.createElement(\"td\");\n tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview);\n let divObedienceLevel = document.createElement(\"div\");\n divObedienceLevel.classList.add(flagObedienceLevel);\n let idObedienceLevel = response[attrIdObedienceLevel][attrIdObedienceLevel];\n let obedienceLevel = filterObedienceLevels[idObedienceLevel];\n DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, idObedienceLevel);\n divObedienceLevel.innerText = (obedienceLevel == null) ? '' : obedienceLevel[flagName];\n tdObedienceLevel.appendChild(divObedienceLevel);\n row.appendChild(tdObedienceLevel);\n\n let tdValueMeasured = document.createElement(\"td\");\n tdValueMeasured.classList.add(flagValueMeasured, flagDdlPreview);\n let inputValueMeasured = document.createElement(\"input\");\n inputValueMeasured.type = \"number\";\n inputValueMeasured.classList.add(flagValueMeasured);\n let valueMeasured = response[flagValueMeasured];\n DOM.setElementValueCurrent(inputValueMeasured, valueMeasured);\n DOM.setElementAttributeValuePrevious(inputValueMeasured, valueMeasured);\n tdValueMeasured.appendChild(inputValueMeasured);\n row.appendChild(tdValueMeasured);\n\n let tdNotes = document.createElement(\"td\");\n tdNotes.classList.add(flagNotes, flagDdlPreview);\n let inputNotes = document.createElement(\"textarea\");\n inputNotes.classList.add(flagNotes);\n let notes = response[flagNotes];\n DOM.setElementValueCurrent(inputNotes, notes);\n DOM.setElementAttributeValuePrevious(inputNotes, notes);\n tdNotes.appendChild(inputNotes);\n row.appendChild(tdNotes);\n\n console.log(inputValueMeasured.tagName);\n console.log(inputNotes.tagName);\n console.log({ valueMeasured, notes });\n\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive, flagDdlPreview);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n let templateDeleteIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete);\n let buttonActive = (response[flagActive]) ? templateDeleteIcon.cloneNode(true) : templateAddIcon.cloneNode(true);\n tdActive.appendChild(buttonActive);\n row.appendChild(tdActive);\n\n return row;\n }\n hookupTablesAssessmentResponses() {\n this.hookupTableAssessmentResponsesFieldsResponseQualityMetric();\n this.hookupTableAssessmentResponsesFieldsObedienceLevel();\n this.hookupTableAssessmentResponsesFieldsValueMeasured();\n this.hookupTableAssessmentResponsesFieldsNotes();\n this.hookupTableAssessmentResponsesFieldsActive();\n }\n hookupTableAssessmentResponsesFieldsResponseQualityMetric() {\n let fieldFlag = flagResponseQualityMetric;\n let optionList = Utils.getListFromDict(filterResponseQualityMetrics); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagResponseQualityMetric;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsObedienceLevel() {\n let fieldFlag = flagObedienceLevel;\n let optionList = Utils.getListFromDict(filterObedienceLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagObedienceLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsValueMeasured() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagValueMeasured + ' .' + flagValueMeasured);\n }\n hookupTableAssessmentResponsesFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentResponsesFieldsActive() {\n this.hookupFieldsActive(flagAssessmentResponse, (event, element) => { this.handleClickAddRowTableAssessmentResponses(event, element); });\n }\n handleClickAddRowTableAssessmentResponses(event, button) {\n event.stopPropagation();\n let tableResponses = DOM.getClosestParent(button, \"table\");\n let tbody = tableResponses.querySelector(\":scope > tbody\");\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(null);\n if (tbody.classList.contains(flagIsCollapsed)) return;\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentResponses + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentResponse, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTablesAssessmentResponses();\n this.postInitialiseAssessmentResponseRowNewCallback(tbody);\n }\n postInitialiseAssessmentResponseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagResponseQualityMetric + ' div.' + flagResponseQualityMetric\n , ',td.' + flagObedienceLevel + ' div.' + flagObedienceLevel\n , ',td.' + flagValueMeasured + ' div.' + flagValueMeasured\n , ',td.' + flagNotes + ' div.' + flagNotes\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n let countActiveRows = tbody.querySelectorAll('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete).length;\n /*\n newRows.filter(row => {\n let activeButton = row.querySelector('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n return activeButton.classList.contains(flagDelete);\n }).length;\n */\n let rowAssessmentCommandModalityLink = DOM.getRowFromElement(tbody);\n let divTrialCount = rowAssessmentCommandModalityLink.querySelector('td.' + flagTrialCount + ' div.' + flagTrialCount);\n divTrialCount.innerText = countActiveRows;\n }\n\n hookupTableAssessmentCommandModalityLinksFieldsActive() {\n this.hookupFieldsActive(flagAssessmentCommandModalityLink, (event, element) => { this.handleClickAddRowTableAssessmentCommandModalityLinks(event, element); });\n }\n handleClickAddRowTableAssessmentCommandModalityLinks(event, button) {\n event.stopPropagation();\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - _rowBlankAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink));\n let tbody = document.querySelector(idTableAssessmentCommandModalityLinks + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankAssessmentCommandModalityLink.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableAssessmentCommandModalityLinks();\n this.postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody);\n }\n postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n , ',td.' + flagCommandModality + ' div.' + flagCommandModality\n , ',td.' + flagBribe + ' div.' + flagBribe\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogAssessments extends TableBasePage {\n static hash = hashPageDogAssessments;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessments;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterWeather();\n this.hookupFilterLightingLevel();\n this.hookupFilterLocation();\n this.hookupFilterHandler();\n this.hookupFilterActive();\n }\n hookupFilterWeather() {\n this.hookupFilter(attrIdWeather);\n }\n hookupFilterLightingLevel() {\n this.hookupFilter(attrIdLightingLevel);\n }\n hookupFilterHandler() {\n this.hookupFilter(flagUserHandler);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment);\n jsonRow[attrIdWeather] = this.getIdWeatherRow(row);\n jsonRow[attrIdLightingLevel] = this.getIdLightingLevelRow(row);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemperatureCelcius);\n jsonRow[attrIdLocation] = this.getIdLocationRow(row);\n jsonRow[flagUserHandler] = this.getIdUserHandlerRow(row);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n getIdWeatherRow(tr) {\n let elementWeather = tr.querySelector('td.' + flagWeather + ' .' + flagWeather);\n return DOM.getElementAttributeValueCurrent(elementWeather);\n }\n getIdLightingLevelRow(tr) {\n let elementLightingLevel = tr.querySelector('td.' + flagLightingLevel + ' .' + flagLightingLevel);\n return DOM.getElementAttributeValueCurrent(elementLightingLevel);\n }\n getIdLocationRow(tr) {\n let elementLocation = tr.querySelector('td.' + flagLocation + ' .' + flagLocation);\n return DOM.getElementAttributeValueCurrent(elementLocation);\n }\n getIdUserHandlerRow(tr) {\n let elementUserHandler = tr.querySelector('td.' + flagUserHandler + ' .' + flagUserHandler);\n return DOM.getElementAttributeValueCurrent(elementUserHandler);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDetail + ' .' + flagDetail\n ].join('');\n let detailButton = newestRow.querySelector('td.' + flagDetail + ' .' + flagDetail); /*.forEach((clickableElement) => {\n clickableElement.\n clickableElement.click();\n });\n */\n newestRow.classList.add(flagIsCollapsed);\n detailButton.click();\n // console.log({ newestRow, detailButton });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDetail();\n this.hookupFieldsWeather();\n this.hookupFieldsLightingLevel();\n this.hookupFieldsTemperature();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsHandler();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsDetail() {\n Events.hookupEventHandler(\n \"click\" // eventType\n , idTableMain + ' td.' + flagDetail + ' button.' + flagDetail // selector\n , (event, element) => {\n let parentTr = DOM.getRowFromElement(element);\n let idAssessment = parentTr.getAttribute(attrIdAssessment);\n /*\n console.log(\"click detail\");\n console.log({ element, parentTr, idAssessment });\n const data = {};\n const params = {\n [attrIdAssessment]: idAssessment\n };\n API.request(\n hashPageDogAssessment // hashEndpoint\n , 'GET' // method\n , data\n , params\n );\n */\n\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = idAssessment;\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsDetail\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(hashPageDogAssessment, filtersJson);\n }\n );\n }\n hookupFieldsWeather() {\n this.hookupTableCellDdlPreviews(\n flagWeather\n , Utils.getListFromDict(filterWeathers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsLightingLevel() {\n this.hookupTableCellDdlPreviews(\n flagLightingLevel\n , Utils.getListFromDict(filterLightingLevels) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsTemperature() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagTemperatureCelcius + ' input.' + flagTemperatureCelcius);\n }\n hookupFieldsHandler() {\n this.hookupTableCellDdlPreviews(\n flagUserHandler\n , Utils.getListFromDict(filterUserHandlers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCalendarEntries extends TableBasePage {\n static hash = hashPageDogCalendarEntries;\n static attrIdRowObject = attrIdCalendarEntry;\n callSaveTableContent = API.saveCalendarEntries;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n // this.hookupFilterCalendarEntryType();\n this.hookupFilterActive();\n }\n /*\n hookupFilterCalendarEntryType() {\n let filterSelector = idFormFilters + ' #' + attrIdCalendarEntryType;\n let filterCalendarEntryTypeOld = document.querySelector(filterSelector);\n filterCalendarEntryTypeOld.removeAttribute('id');\n let parentDiv = filterCalendarEntryTypeOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterCalendarEntryTypeNew = document.querySelector(idFormFilters + ' div.' + flagCalendarEntryTypeOnly + '.' + flagContainerInput + ' svg.' + flagCalendarEntryTypeOnly);\n filterCalendarEntryTypeNew.setAttribute('id', flagCalendarEntryTypeOnly);\n if (isChecked) filterCalendarEntryTypeNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterCalendarEntryType) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterCalendarEntryType });\n Utils.consoleLogIfNotProductionEnvironment({ [filterCalendarEntryType.tagName]: filterCalendarEntryType.tagName });\n let svgElement = (filterCalendarEntryType.tagName.toUpperCase() == 'SVG') ? filterCalendarEntryType : filterCalendarEntryType.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterCalendarEntryType);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n */\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCalendarEntry] = row.getAttribute(attrIdCalendarEntry);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityReport extends BasePage {\n static hash = hashPageAccessibilityReport;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityStatement extends BasePage {\n static hash = hashPageAccessibilityStatement;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageLicense extends BasePage {\n static hash = hashPageLicense;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","\nimport BasePage from \"../base.js\";\n\nexport default class PagePrivacyPolicy extends BasePage {\n static hash = hashPagePrivacyPolicy;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","import BasePage from \"../base.js\";\n\nexport default class PageRetentionSchedule extends BasePage {\n static hash = hashPageDataRetentionSchedule;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\n// Pages\n// Core\nimport PageHome from './pages/core/home.js';\nimport PageContact from './pages/core/contact.js';\nimport PageContactSuccess from './pages/core/contact-success.js';\nimport PageApplyFoundingPartner from './pages/core/apply-founding-partner.js';\nimport PageApplyFoundingPartnerSuccess from './pages/core/apply-founding-partner-success.js';\n// Dog\nimport PageDogHome from './pages/dog/home.js';\nimport PageDogCommandCategories from './pages/dog/command_categories.js';\nimport PageDogCommands from './pages/dog/commands.js';\nimport PageDogDogCommandLinks from './pages/dog/dog_command_links.js';\n// import PageDogDogs from './pages/dog/dogs.js';\nimport PageDogLocations from './pages/dog/locations.js';\nimport PageDogButtonIcons from './pages/dog/button_icons.js';\nimport PageDogCommandButtonLinks from './pages/dog/command_button_links.js';\nimport PageDogAssessment from './pages/dog/assessment.js';\nimport PageDogAssessments from './pages/dog/assessments.js';\nimport PageDogCalendarEntries from './pages/dog/calendar_entries.js'\n// Legal\nimport PageAccessibilityReport from './pages/legal/accessibility_report.js';\nimport PageAccessibilityStatement from './pages/legal/accessibility_statement.js';\nimport PageLicense from './pages/legal/license.js';\nimport PagePrivacyPolicy from './pages/legal/privacy_policy.js';\nimport PageRetentionSchedule from './pages/legal/retention_schedule.js';\n// User\n// import PageUserLogin from './pages/user/login.js';\n// import PageUserLogout from './pages/user/logout.js';\n// import PageUserAccount from './pages/user/account.js';\n\nimport API from './api.js';\nimport DOM from './dom.js';\nimport Utils from './lib/utils.js';\n\n\nexport default class Router {\n constructor() {\n // Pages\n this.pages = {};\n // Core\n this.pages[hashPageHome] = { name: 'PageHome', module: PageHome };\n this.pages[hashPageContact] = { name: 'PageContact', module: PageContact };\n this.pages[hashPageContactSuccess] = { name: 'PageContactSuccess', module: PageContactSuccess };\n this.pages[hashPageApplyFoundingPartner] = { name: 'PageApplyFoundingPartner', module: PageApplyFoundingPartner };\n this.pages[hashPageApplyFoundingPartnerSuccess] = { name: 'PageApplyFoundingPartnerSuccess', module: PageApplyFoundingPartnerSuccess };\n // Dog\n this.pages[hashPageDogHome] = { name: 'PageDogHome', module: PageDogHome };\n this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories };\n this.pages[hashPageDogCommands] = { name: 'PageDogCommands', module: PageDogCommands };\n this.pages[hashPageDogDogCommandLinks] = { name: 'PageDogDogCommandLinks', module: PageDogDogCommandLinks };\n // this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };\n this.pages[hashPageDogLocations] = { name: 'PageDogLocations', module: PageDogLocations };\n this.pages[hashPageDogButtonIcons] = { name: 'PageDogButtonIcons', module: PageDogButtonIcons };\n this.pages[hashPageDogCommandButtonLinks] = { name: 'PageDogCommandButtonLinks', module: PageDogCommandButtonLinks };\n this.pages[hashPageDogAssessment] = { name: 'PageDogAssessment', module: PageDogAssessment };\n this.pages[hashPageDogAssessments] = { name: 'PageDogAssessments', module: PageDogAssessments };\n this.pages[hashPageDogCalendarEntries] = { name: 'PageDogCalendarEntries', module: PageDogCalendarEntries };\n // Legal\n this.pages[hashPageAccessibilityStatement] = { name: 'PageAccessibilityStatement', module: PageAccessibilityStatement };\n this.pages[hashPageDataRetentionSchedule] = { name: 'PageDataRetentionSchedule', module: PageRetentionSchedule };\n this.pages[hashPageLicense] = { name: 'PageLicense', module: PageLicense };\n this.pages[hashPagePrivacyPolicy] = { name: 'PagePrivacyPolicy', module: PagePrivacyPolicy };\n // User\n // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' };\n // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' };\n // this.pages[hashPageUserAccount] = { name: 'PageUserAccount', module: PageUserAccount }; // pathModule: './pages/user/account.js' };\n // Routes\n this.routes = {};\n // Core\n this.routes[hashPageHome] = (isPopState = false) => this.navigateToHash(hashPageHome, isPopState);\n this.routes[hashPageContact] = (isPopState = false) => this.navigateToHash(hashPageContact, isPopState);\n this.routes[hashPageContactSuccess] = (isPopState = false) => this.navigateToHash(hashPageContactSuccess, isPopState);\n this.routes[hashPageApplyFoundingPartner] = (isPopState = false) => this.navigateToHash(hashPageApplyFoundingPartner, isPopState);\n this.routes[hashPageApplyFoundingPartnerSuccess] = (isPopState = false) => this.navigateToHash(hashPageApplyFoundingPartnerSuccess, isPopState);\n // Dog\n this.routes[hashPageDogHome] = (isPopState = false) => this.navigateToHash(hashPageDogHome, isPopState);\n this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState);\n this.routes[hashPageDogCommands] = (isPopState = false) => this.navigateToHash(hashPageDogCommands, isPopState);\n this.routes[hashPageDogDogCommandLinks] = (isPopState = false) => this.navigateToHash(hashPageDogDogCommandLinks, isPopState);\n // this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);\n this.routes[hashPageDogLocations] = (isPopState = false) => this.navigateToHash(hashPageDogLocations, isPopState);\n this.routes[hashPageDogButtonIcons] = (isPopState = false) => this.navigateToHash(hashPageDogButtonIcons, isPopState);\n this.routes[hashPageDogCommandButtonLinks] = (isPopState = false) => this.navigateToHash(hashPageDogCommandButtonLinks, isPopState);\n this.routes[hashPageDogAssessment] = (isPopState = false) => this.navigateToHash(hashPageDogAssessment, isPopState);\n this.routes[hashPageDogAssessments] = (isPopState = false) => this.navigateToHash(hashPageDogAssessments, isPopState);\n this.routes[hashPageDogCalendarEntries] = (isPopState = false) => this.navigateToHash(hashPageDogCalendarEntries, isPopState);\n // Legal\n this.routes[hashPageAccessibilityStatement] = (isPopState = false) => this.navigateToHash(hashPageAccessibilityStatement, isPopState);\n this.routes[hashPageDataRetentionSchedule] = (isPopState = false) => this.navigateToHash(hashPageDataRetentionSchedule, isPopState);\n this.routes[hashPageLicense] = (isPopState = false) => this.navigateToHash(hashPageLicense, isPopState);\n this.routes[hashPagePrivacyPolicy] = (isPopState = false) => this.navigateToHash(hashPagePrivacyPolicy, isPopState);\n // User\n // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState);\n // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState);\n // this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState);\n this.initialize();\n }\n loadPage(hashPage, isPopState = false) {\n const PageClass = this.getClassPageFromHash(hashPage);\n this.currentPage = new PageClass(this);\n this.currentPage.initialize(isPopState);\n window.addEventListener('beforeunload', () => this.currentPage.leave());\n }\n getClassPageFromHash(hashPage) {\n \n let pageJson = this.pages[hashPage];\n try {\n const module = pageJson.module;\n return module; \n }\n catch (error) {\n Utils.consoleLogIfNotProductionEnvironment(\"this.pages: \", this.pages);\n console.error('Page not found:', hashPage);\n throw error;\n }\n }\n initialize() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n }\n handlePopState(event) {\n this.loadPageCurrent();\n }\n loadPageCurrent() {\n const hashPageCurrent = DOM.getHashPageCurrent();\n this.loadPage(hashPageCurrent);\n }\n navigateToHash(hash, data = null, params = null, isPopState = false) {\n let url = API.getUrlFromHash(hash, params);\n history.pushState({data: data, params: params}, '', hash);\n API.goToUrl(url, data);\n }\n \n navigateToUrl(url, data = null, appendHistory = true) {\n // this.beforeLeave();\n if (appendHistory) history.pushState(data, '', url);\n url = API.parameteriseUrl(url, data);\n API.goToUrl(url);\n }\n\n static loadPageBodyFromResponse(response) {\n DOM.loadPageBody(response.data);\n }\n}\n\nexport const router = new Router();\n","\n'use strict';\n\nimport DOM from './dom.js';\nimport Router from './router.js';\n\n\nclass App {\n constructor() {\n this.dom = new DOM();\n this.router = new Router();\n }\n\n initialize() {\n this.setupEventListeners();\n this.start();\n }\n\n setupEventListeners() {\n // document.addEventListener('click', this.handleGlobalClick.bind(this));\n }\n\n handleGlobalClick(event) {\n }\n\n start() {\n this.initPageCurrent();\n }\n\n initPageCurrent() {\n this.router.loadPageCurrent();\n }\n \n}\n\nconst app = new App();\n\nfunction domReady(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n}\n\ndomReady(() => {\n app.initialize();\n});\n\nwindow.app = app;\n\nexport default app;","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":["Validation","_classCallCheck","_createClass","key","value","isEmpty","object","undefined","length","isString","trim","i","isValidNumber","positiveOnly","isNaN","parseFloat","getDataContentType","params","data","contentType","JSON","stringify","Data","ContentType","arrayContainsItem","array","itemValue","hasItem","isJQueryElementArray","jQuery","document","querySelectorAll","is","isDate","Date","getTime","dictHasKey","d","k","areEqualDicts","dict1","dict2","keys1","Object","keys","keys2","_i3","_keys","imageExists","url","callback","img","Image","onload","onerror","src","toFixedOrDefault","decimalPlaces","defaultValue","arguments","toFixed","default","Utils","DOM","setElementAttributesValuesCurrentAndPrevious","element","setElementAttributeValueCurrent","setElementAttributeValuePrevious","setAttribute","attrValueCurrent","attrValuePrevious","setElementValuesCurrentAndPrevious","setElementValueCurrent","tagName","toUpperCase","type","checked","textContent","setElementValueCurrentIfEmpty","getElementValueCurrent","getCellFromElement","closest","getRowFromElement","flagRow","selector","getClosestParent","parentSelector","parent","parentElement","matches","convertForm2JSON","elementForm","dataForm","containersFilter","flagContainerInput","flagFilter","containerFilter","labelFilter","keyFilter","filter","indexFilter","querySelector","getAttribute","concat","loadPageBody","contentNew","pageBody","idPageBody","innerHTML","getHashPageCurrent","hashPageCurrent","body","dataset","page","updateAndCheckIsElementDirty","isElementDirty","isDirty","handleDirtyElement","toggleElementHasClassnameFlag","flagDirty","elementHasFlag","flag","elementAlreadyHasFlag","classList","contains","add","remove","hasDirtyChildrenContainer","container","hasDirtyChildrenNotDeletedContainer","flagDelete","returnVal","flagButton","flagActive","getElementAttributeValueCurrent","flagCheckbox","flagIsChecked","getElementAttributeValuePrevious","scrollToElement","scrollTop","offset","top","isElementInContainer","containerBounds","getBoundingClientRect","elementBounds","left","height","width","alertError","errorType","errorText","alert","createOptionUnselectedProductVariation","_defineProperty","flagProductVariationType","flagNameAttrOptionText","flagName","flagNameAttrOptionValue","attrIdProductVariationType","flagProductVariation","attrIdProductVariation","createOption","optionJson","text","option","createElement","selected","escapeHtml","div","unescapeHtml","html","innerText","Events","initialiseEventHandler","selectorElement","classInitialised","eventHandler","forEach","hookupEventHandler","eventType","flagInitialised","addEventListener","event","stopPropagation","LocalStorage","getLocalStorage","parse","localStorage","getItem","setLocalStorage","newLS","setItem","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","_objectSpread","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPrimitive","toPrimitive","String","Number","API","getCsrfToken","idCSRFToken","_request","_callee","hashEndpoint","csrfToken","options","response","_args","_callee$","_context","getUrlFromHash","headers","flagCsrfToken","fetch","ok","status","json","t0","console","error","request","_x","hash","hashPageHome","parameteriseUrl","_pathHost","URLSearchParams","toString","goToUrl","window","location","href","goToHash","_loginUser","_callee2","_callee2$","_context2","flagCallback","hashPageUserLogin","loginUser","_saveCommandCategories","_callee3","commandCategories","formFilters","comment","dataRequest","_callee3$","_context3","flagFormFilters","flagCommandCategory","flagComment","hashSaveDogCommandCategory","saveCommandCategories","_x2","_x3","_x4","_saveCommands","_callee4","commands","_callee4$","_context4","flagCommand","hashSaveDogCommand","saveCommands","_x5","_x6","_x7","_saveDogCommandLinks","_callee5","dogCommandLinks","_callee5$","_context5","flagDogCommandLink","hashSaveDogDogCommandLink","saveDogCommandLinks","_x8","_x9","_x10","_saveLocations","_callee6","locations","_callee6$","_context6","flagLocation","hashSaveDogLocation","saveLocations","_x11","_x12","_x13","_saveButtonIcons","_callee7","buttonIcons","_callee7$","_context7","flagButtonIcon","hashSaveDogButtonIcon","saveButtonIcons","_x14","_x15","_x16","_saveCommandButtonLinks","_callee8","links","_callee8$","_context8","flagCommandButtonLink","hashSaveDogCommandButtonLink","saveCommandButtonLinks","_x17","_x18","_x19","_saveAssessments","_callee9","assessments","_callee9$","_context9","flagAssessment","hashSaveDogAssessment","saveAssessments","_x20","_x21","_x22","_saveAssessmentsDistractionsAndResponses","_callee10","filtersJson","_callee10$","_context10","attrIdAssessment","hashSaveDogAssessmentDistractionAndResponse","saveAssessmentsDistractionsAndResponses","_x23","_x24","_x25","getListFromDict","dict","list","consoleLogIfNotProductionEnvironment","message","environment","is_production","log","OverlayConfirm","hookup","callbackSuccess","idOverlayConfirm","flagCancel","buttonCancel","overlay","style","visibility","flagSubmit","buttonConfirm","textarea","show","flagIsCollapsed","BusinessObjects","OverlayError","BasePage","router","title","titlePageCurrent","initialize","sharedInitialize","logInitialisation","hookupCommonElements","hookupLogos","hookupNavigation","hookupOverlays","_this","flagImageLogo","flagLogo","navigateToHash","idButtonHamburger","overlayHamburger","idOverlayHamburger","flagExpanded","hookupButtonsNavUserAccount","hookupButtonsNavUserLogout","hookupButtonsNavUserLogin","hookupButtonsNav","buttonSelector","_this2","button","pageHash","_this3","flagNavUserLogin","navigator","leave","Success","Message","hookupOverlayFromId","idOverlayError","idOverlay","display","hookupButtonSave","_this4","flagContainer","flagSave","target","setLocalStoragePage","dataPage","getLocalStoragePage","toggleShowButtonsSaveCancel","buttonContainerSelector","buttonSave","idButtonSave","idButtonCancel","isDirtyFilter","idTableMain","PageHome","_BasePage","_callSuper","_inherits","_superPropGet","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","_get","get","bind","_superPropBase","_setPrototypeOf","_wrapNativeSuper","Map","_isNativeFunction","has","set","Wrapper","_construct","Boolean","valueOf","Function","indexOf","_toArray","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_iterableToArrayLimit","_createForOfIteratorHelper","_n2","F","test","hi","Or","gi","ne","zr","H","Mt","WeakSet","Ut","en","Fr","self","Blob","_i","URL","webkitURL","createObjectURL","Worker","revokeObjectURL","_unused","encodeURIComponent","mi","Qr","_Qr$v","_window$__svelte","__svelte","Set","wi","pi","yi","bi","Ei","xi","Wt","tn","rn","Je","W","$i","Mr","oe","nn","It","Yt","pe","ze","yt","re","bt","K","ye","et","Ke","St","ki","Zt","Ci","ln","ut","an","Ai","on","Ri","Ii","Et","xt","Pe","Si","Ti","Ni","sn","fn","Li","requestIdleCallback","setTimeout","dt","vt","un","cn","Gt","queueMicrotask","Di","Ur","dn","Pi","vn","Oi","zi","Fi","Mi","Ui","ji","Vi","Bi","qi","Hi","Wi","ue","reactions","equals","rv","wv","He","Yi","hn","ae","ce","Qi","P","Dn","includes","Zi","En","gn","A","ge","el","de","Lt","De","ctx","B","deps","effects","_n","we","Gi","Ji","Se","$n","mn","Ce","Tt","warn","D","Ge","O","Re","Xe","Te","Z","Ki","nodeType","le","Proxy","deleteProperty","isInteger","jr","w","m","z","T","Y","M","_iterator","_step","_step$value","err","Vr","wn","pn","yn","jt","userAgent","Element","Node","__click","__className","__attributes","__style","__e","Text","__t","Jt","createTextNode","me","G","appendChild","Br","Comment","he","after","before","Xi","wt","$t","kt","Oe","Kt","qr","ct","Ie","V","J","bn","Ct","ht","_a$reactions","tl","_unused2","rl","Nt","xn","Wr","At","_m$reactions","nl","Xt","hl","An","Cn","teardown","il","kn","al","ll","first","nodes_start","Rn","$","ol","_ol","Qe","sl","fl","ul","last","Fe","nodes_end","transitions","_f$effects","cl","Vt","_r$e","effect","reaction","Qt","dl","vl","outro","Bt","er","We","map","tr","Rt","_iterator2","_step2","In","gl","_iterator3","_step3","out","_iterator4","_step4","is_global","Hr","Sn","_iterator5","_step5","Tn","Nn","x","Ln","_l","ml","Yr","Pn","defaultPrevented","_iterator6","elements","_step6","__on_r","capture","On","wl","zn","qt","pl","ft","cancelBubble","startsWith","yl","passive","removeEventListener","bl","_iterator7","_step7","ownerDocument","composedPath","__root","assignedSlot","parentNode","host","disabled","_z","_z2","_iterator8","_step8","_loop","currentTarget","rr","content","Ae","ve","importNode","cloneNode","lastChild","El","ee","Fn","Mn","xl","_t$intro","intro","anchor","recover","Ye","_ref","_ref$props","props","events","context","_ref$intro","$$events","_iterator9","_step9","removeChild","Ht","WeakMap","$l","ke","_ref2","_ref3","parseInt","substring","Ze","_t2","kl","$$slots","children","Cl","_r$head","getRootNode","head","id","code","Zr","Al","Rl","removeAttribute","className","toggle","Il","Sl","Gr","hasAttribute","ie","Tl","Un","nodeName","Nl","_e$__attributes","namespaceURI","Jr","Ll","defaultChecked","Kr","Xr","jn","Dl","mt","Pl","C","_Pl","_Pl2","_ref4","be","N","$$legacy","X","se","U","Ol","zl","_e","te","_t$intro2","_r$get","_r$get2","_r$get3","hydrate","component","$$host","sync","_loop2","_Object$keys","_i2","$set","assign","$destroy","$on","_len","_key","Vn","HTMLElement","_HTMLElement","$$ctor","$$s","attachShadow","mode","$$l","$$c","$$l_u","_connectedCallback","_this5","_iterator10","_step10","_i4","_iterator11","_step11","_i5","_a","_iterator13","_step13","$$cn","Fl","$$d","attributes","$$g_p","pt","$$p_d","shadowRoot","$$me","$$r","_iterator12","_step12","reflect","attribute","connectedCallback","attributeChangedCallback","disconnectedCallback","_this6","_this7","find","toLowerCase","childNodes","slot","Ml","_Vn","_this8","Bn","TextEncoder","Ul","Uint8Array","padStart","join","jl","_jl","_args10","now","Math","round","random","qn","algorithm","challenge","salt","signature","_qn","_callee11","_callee11$","_context11","crypto","subtle","digest","encode","t1","Vl","AbortController","promise","signal","aborted","number","took","controller","Bl","Intl","DateTimeFormat","resolvedOptions","timeZone","_unused3","ql","atob","charCodeAt","Hl","floor","Wl","_Wl","_callee13","_args13","_callee13$","_context13","_ref7","_callee12","_callee12$","_context12","decrypt","iv","clearText","TextDecoder","decode","importKey","reject","E","ERROR","VERIFIED","VERIFYING","UNVERIFIED","EXPIRED","Yl","Zl","Gl","Jl","Kl","Xl","Ql","ea","ta","ra","na","ia","la","Lr","Dr","Ee","Me","min","hardwareConcurrency","tt","nr","ir","lr","rt","dispatchEvent","CustomEvent","detail","ar","documentElement","lang","split","Dt","origin","endsWith","Pt","wr","or","Q","ariaLinkLabel","expired","footer","label","verified","verifying","waitAlert","sr","Ue","R","j","nt","je","Ve","fe","xe","Ne","Xn","Qn","Hn","hr","gr","vr","clearTimeout","cr","dr","mr","I","Jn","pluginName","Ot","pr","it","$e","requestAnimationFrame","fr","btoa","_i6","_xe","destroy","ur","lt","Wn","_Wn","L","_","b","S","q","_L","qe","_L2","globalThis","Response","verifyurl","Er","Yn","Zn","blockedCountries","classifier","disableRules","email","expectedCountries","expectedLanguages","fields","ipAddress","Gn","reduce","replace","RegExp","_iterator14","altchaPlugins","_step14","clarify","dispatch","getConfiguration","xr","getFloatingAnchor","$r","getState","kr","solve","br","setState","Le","setFloatingAnchor","Cr","verify","_console","_len2","_key2","some","Kn","reportValidity","gt","_i7","_xe2","onErrorChange","preventDefault","requestSubmit","_r","_i8","_xe3","onStateChange","clientHeight","clientWidth","bottom","max","ei","_ei","_Zn","ot","st","vi","Pr","payload","classification","yr","_br","ti","maxnumber","solution","obfuscated","t2","t3","t4","_ti","_i10","_b2","_p","_args6","ceil","altchaCreateWorker","all","_i9","_b","postMessage","start","terminate","_it","auto","blockspam","customfetch","floatinganchor","delay","floatingoffset","floating","expire","challengeurl","debug","hidefooter","hidelogo","mockerror","refetchonexpire","spamfilter","strings","workers","workerurl","ri","state","_$e","_ref6","Ar","Rr","at","zt","Ir","ni","_t","Sr","Be","__change","Ft","ii","li","ai","oi","si","Tr","fi","Nr","ui","ci","di","required","configure","getPlugin","challengejson","plugins","customElements","Altcha","PageContact","hookupButtonSubmitFormContactUs","flagButtonPrimary","hashPageContact","PageContactSuccess","hashPageContactSuccess","PageApplyFoundingPartner","hookupButtonSubmitFormApplyFoundingPartnerUs","hashPageApplyFoundingPartner","PageApplyFoundingPartnerSuccess","hashPageApplyFoundingPartnerSuccess","PageDogHome","hookupDogHome","hashPageDogHome","getOptionJsonFromObjectJsonAndKeys","objectJson","keyText","keyValue","valueSelected","getOptionJsonFromObjectJson","getObjectText","getListObjectsFromIdDictAndCsv","idDict","idCsv","listObjects","ids","msgError","labelError","idLabelError","TableBasePage","cursorYInitial","rowInitial","placeholder","dragSrcEl","dragSrcRow","hookupTableCellDdls","isPopState","isSinglePageApp","hookupFilters","hookupButtonsSaveCancel","hookupTableMain","saveRecordsTableDirtySinglePageApp","saveRecordsTableDirty","filters","getFormFilters","filtersDefault","callFilterTableContent","sharedHookupFilters","hookupButtonApplyFilters","hookupSearchTextFilter","hookupFilterActive","filterSelector","idFormFilters","flagActiveOnly","filterActiveOld","parentDiv","isChecked","filterActiveNew","filterActive","svgElement","wasChecked","handleChangeFilter","filterValuePrevious","hookupFilter","filterFlag","handler","areDirtyFilters","tbody","rows","row","dirtyInputs","dirtyInput","isDirtyLabel","initialisedElements","initialisedElement","updateAndToggleShowButtonsSaveCancel","hookupFilterIsNotEmpty","flagIsNotEmpty","idButtonApplyFilters","flagSearch","hookupFilterDog","attrIdDog","hookupFilterCommandCategory","attrIdCommandCategory","filterCommandCategory","idCommandCategory","filterCommands","commandsInCategory","command","sortedCommands","sort","localeCompare","filterCommand","idCommandPrevious","Event","hookupFilterCommand","attrIdCommand","hookupFilterLocation","attrIdLocation","callbackLoadTableContent","table","getTableMain","bodyTable","rowsJson","flagRows","every","display_order","loadRowTable","rowJson","getAndLoadFilteredTableContentSinglePageApp","hookupButtonCancel","records","getTableRecords","formElement","idTextareaConfirm","callSaveTableContent","flagStatus","flagSuccess","_verbose","flagMessage","_this9","dirtyOnly","record","getJsonRow","_this10","_this11","handleClickAddRowTable","_rowBlank","attrIdRowObject","countRows","initialiseRowNew","prepend","postInitialiseRowNewCallback","_this12","cacheRowBlank","selectorRowNew","flagRowNew","rowBlankTemp","initialiseSliderDisplayOrderRowNew","slidersDisplayOrder","flagDisplayOrder","flagSlider","maxDisplayOrder","slider","sliderDisplayOrder","hookupSlidersDisplayOrderTable","selectorDisplayOrder","hookupChangeHandlerTableCells","inputSelector","_this13","handleChangeNestedElementCellTable","input","wasDirtyParentRows","getAllIsDirtyRowsInParentTree","wasDirtyElement","isDirtyElement","cascadeChangedIsDirtyNestedElementCellTable","isDirtyRow","wasDirtyRow","shift","hookupChangeHandlerTableCellsWhenNotCollapsed","_this14","hookupFieldsCodeTable","flagCode","hookupFieldsNameTable","hookupFieldsDescriptionTable","flagDescription","hookupFieldsNotesTable","flagNotes","hookupFieldsActive","_this15","flagTable","handleClickRowNew","selectorButton","selectorButtonDelete","selectorButtonUndelete","hookupButtonsRowDelete","hookupButtonsRowUndelete","_this16","changeHandler","handleClickButtonRowDelete","changeEvent","changeElement","_this17","valuePrevious","wasDirty","buttonAddTemplate","idContainerTemplateElements","flagAdd","buttonAdd","replaceWith","_this18","handleClickButtonRowUndelete","_this19","buttonDeleteTemplate","buttonDelete","hookupTdsAccessLevel","hookupTableCellDdlPreviews","flagAccessLevel","accessLevels","fieldFlag","optionList","_this20","cellSelector","ddlHookup","ddlSelector","handleClickTableCellDdlPreview","_this21","optionObjectList","_this22","idSelected","td","ddl","optionObjectJson","toggleColumnCollapsed","flagColumn","isCollapsed","toggleColumnHasClassnameFlag","toggleColumnHeaderCollapsed","hookupFieldsCommandCategory","_this23","idTable","filterCommandCategories","hookupCommandCategoryDdls","_this24","handleChangeCommandCategoryDdl","ddlCategory","idCommandCategoryRowOld","getIdCommandCategoryRow","idCommandCategoryRowNew","idCommandCategoryFilter","getIdCommandCategoryFilter","tdCommand","ddlCommand","hookupFieldsCommand","_this25","parentTr","tdCommandCategory","idCommandCategoryRow","filterCommandList","handleChangeCommandDdl","idCommandNew","getIdCommandRow","commandNew","divCommandCategory","ddlCommandCategory","elementCommandCategory","commandCategoryFilter","commandFilter","valueCurrentCommandCategoryFilter","valueCurrentCommandFilter","getHasCommandCategoryFilter","elementCommand","getIdCommandFilter","idCommand","getHasCommandFilter","idCommandFilter","hookupFieldsDog","flagDog","filterDogs","getIdDogRow","elementDog","columnFlag","isRequiredFlag","classnameFlag","columnTh","columnThHasFlag","toggleColumnHeaderHasClassnameFlag","isDirtyMainTable","DogMixinPage","pageCurrent","hookupLocalStorageDog","DogTableMixinPage","_DogMixinPage","hookupTable","hookupFieldsLocation","filterLocations","PageDogCommandCategories","_TableBasePage","dogMixin","inputCode","inputName","buttonActive","jsonRow","hashPageDogCommandCategories","PageDogCommands","inputHandSignalDefaultDescription","flagHandSignalDefaultDescription","inputCanHaveButton","flagCanHaveButton","inputNotes","newRows","newestRow","clickableElementsSelector","clickableElement","click","hookupTextareasHandSignalDefaultDescription","hookupFieldsCanHaveButton","hashPageDogCommands","PageDogDogCommandLinks","inputHandSignalDescription","flagHandSignalDescription","attrIdDogCommandLink","hookupTextareasHandSignalDescription","hashPageDogDogCommandLinks","PageDogLocations","flagLocationParent","getIdLocationParentRow","elementLocationParent","hookupFieldsLocationParent","idLocationRow","hashPageDogLocations","PageDogButtonIcons","attrIdButtonIcon","flagImage","getIdImageRow","elementImage","hookupFieldsImage","buttonicons","hashPageDogButtonIcons","PageDogCommandButtonLinks","hookupFilterButtonShape","hookupFilterColour","hookupFilterButtonIcon","attrIdButtonShape","attrIdColour","attrIdCommandButtonLink","hookupFieldsButtonShape","hookupFieldsColour","hookupFieldsButtonIcon","flagButtonShape","filterButtonShapes","flagColour","filterColours","filterButtonIcons","hashPageDogCommandButtonLinks","_rowBlankDistraction","_rowBlankAssessmentCommandModalityLink","PageDogAssessment","idTableAssessment","inputWeather","flagWeather","inputLightingLevel","flagLightingLevel","inputTemeratureCelcius","flagTemperatureCelcius","inputLocation","inputUserHandler","flagUserHandler","idAssessment","attrIdWeather","attrIdLightingLevel","flagDistraction","getDirtyDistractions","flagAssessmentCommandModalityLink","getDirtyAssessmentCommandModalityLinks","dirtyRows","idTableDistractions","dirtyRow","inputDistractionType","distractionType","inputIntensityLevelEmotional","intensityLevelEmotional","inputIntensityLevelScent","intensityLevelScent","inputIntensityLevelSight","intensityLevelSight","inputIntensityLevelSound","intensityLevelSound","inputIntensityLevelTouch","intensityLevelTouch","inputQuantity","quantity","inputProximityMetres","proximityMetres","notes","active","dirtyDistractions","indexRow","_dirtyDistractions$pu","flagDistractionType","flagDistractionIntensityLevelEmotional","flagDistractionIntensityLevelScent","flagDistractionIntensityLevelSight","flagDistractionIntensityLevelSound","flagDistractionIntensityLevelTouch","flagQuantity","flagProximityMetres","flagIcon","attrIdDistraction","attrIdDistractionType","idTableAssessmentCommandModalityLinks","idAssessmentCommandModalityLink","inputCommand","inputCommandModality","commandModality","inputBribe","bribe","inputDistanceFromHandler","distanceFromhandler","inputIsInHearingRangeOfHandler","isInHearingRangeOfHandler","inputIsInScentRangeOfHandler","isInScentRangeOfHandler","inputIsInSightOfHandler","isInSightOfHandler","inputIsOnLead","isOnLead","dirtyLinks","_dirtyLinks$push","attrIdAssessmentCommandModalityLink","flagCommandModality","flagBribe","flagDistanceFromHandlerMetres","flagIsInHearingRangeOfHandler","flagIsInScentRangeOfHandler","flagIsInSightOfHandler","flagIsOnLead","attrIdCommandModality","attrIdBribe","flagAssessmentResponse","getDirtyAssessmentResponses","rowAssessmentCommandModalityLink","idTableAssessmentResponses","inputResponseQualityMetric","responseQualityMetric","inputObedienceLevel","obedienceLevel","inputValueMeasured","valueMeasured","dirtyResponses","flagResponseQualityMetric","flagObedienceLevel","flagValueMeasured","attrIdAssessmentResponse","attrIdResponseQualityMetric","attrIdObedienceLevel","assessment","filterAssessment","hookupTableAssessmentHeader","hookupTableDistractions","hookupTableAssessmentCommandModalityLinks","hookupTableAssessmentFieldWeather","hookupTableAssessmentFieldLightingLevel","hookupTableAssessmentFieldTemperature","hookupTableAssessmentFieldLocation","hookupTableAssessmentFieldUserHandler","hookupTableAssessmentFieldNotes","filterWeathers","filterLightingLevels","filterUserHandlers","hookupTableDistractionsFieldsDistractionType","hookupTableDistractionsFieldsIntensityLevelEmotional","hookupTableDistractionsFieldsIntensityLevelScent","hookupTableDistractionsFieldsIntensityLevelSight","hookupTableDistractionsFieldsIntensityLevelSound","hookupTableDistractionsFieldsIntensityLevelTouch","hookupTableDistractionsFieldsQuantity","hookupTableDistractionsFieldsProximityMetres","hookupTableDistractionsFieldsNotes","hookupTableDistractionsFieldsActive","filterDistractionTypes","filterDistractionIntensityLevels","handleClickAddRowTableDistractions","postInitialiseDistractionRowNewCallback","hookupTableAssessmentCommandModalityLinksFieldsCommandCategory","hookupTableAssessmentCommandModalityLinksFieldsCommand","hookupTableAssessmentCommandModalityLinksFieldsCommandModality","hookupTableAssessmentCommandModalityLinksFieldsBribe","hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres","hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsOnLead","hookupTableAssessmentCommandModalityLinksFieldsTrialCount","hookupTableAssessmentCommandModalityLinksFieldsNotes","hookupTableAssessmentCommandModalityLinksFieldsResponses","hookupTableAssessmentCommandModalityLinksFieldsActive","filterCommandModalities","filterBribes","parentTd","responsesTable","flagTableMain","headRow","thResponseQualityMetric","thObedienceLevel","thValueMeasured","thNotes","thActive","templateAddIcon","assessmentCommandModalityLinks","link","assessmentCommandModalityLink","responses","responseKey","createNewRowTableAssessmentResponses","outerHTML","responseRows","hookupTablesAssessmentResponses","hookupTableAssessmentResponsesFieldsResponseQualityMetric","hookupTableAssessmentResponsesFieldsObedienceLevel","hookupTableAssessmentResponsesFieldsValueMeasured","hookupTableAssessmentResponsesFieldsNotes","hookupTableAssessmentResponsesFieldsActive","filterResponseQualityMetrics","filterObedienceLevels","handleClickAddRowTableAssessmentResponses","tableResponses","postInitialiseAssessmentResponseRowNewCallback","countActiveRows","divTrialCount","flagTrialCount","handleClickAddRowTableAssessmentCommandModalityLinks","postInitialiseAssessmentCommandModalityLinkRowNewCallback","isNew","tdResponseQualityMetric","flagDdlPreview","divResponseQualityMetric","idResponseQualityMetric","tdObedienceLevel","divObedienceLevel","idObedienceLevel","tdValueMeasured","tdNotes","tdActive","templateDeleteIcon","hashPageDogAssessment","PageDogAssessments","hookupFilterWeather","hookupFilterLightingLevel","hookupFilterHandler","inputTemperatureCelcius","getIdWeatherRow","getIdLightingLevelRow","getIdLocationRow","getIdUserHandlerRow","elementWeather","elementLightingLevel","elementLocation","elementUserHandler","flagDetail","detailButton","hookupFieldsDetail","hookupFieldsWeather","hookupFieldsLightingLevel","hookupFieldsTemperature","hookupFieldsHandler","hashPageDogAssessments","PageDogCalendarEntries","saveCalendarEntries","attrIdCalendarEntry","hashPageDogCalendarEntries","PageAccessibilityReport","hashPageAccessibilityReport","PageAccessibilityStatement","hashPageAccessibilityStatement","PageLicense","hashPageLicense","PagePrivacyPolicy","hashPagePrivacyPolicy","PageRetentionSchedule","hashPageDataRetentionSchedule","Router","pages","module","routes","loadPage","hashPage","PageClass","getClassPageFromHash","currentPage","pageJson","handlePopState","loadPageCurrent","history","pushState","navigateToUrl","appendHistory","loadPageBodyFromResponse","App","dom","setupEventListeners","handleGlobalClick","initPageCurrent","app","domReady","readyState"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/main.bundle.js","mappings":";;;;;;;;;;;;;;IACqBA,UAAU;EAAA,SAAAA,WAAA;IAAAC,eAAA,OAAAD,UAAA;EAAA;EAAA,OAAAE,YAAA,CAAAF,UAAA;IAAAG,GAAA;IAAAC,KAAA;IAC3B;AACJ;AACA;AACA;AACA;AACA;;IAEI,SAAOC,OAAOA,CAACC,MAAM,EAAE;MAEnB,IAAID,OAAO,GAAG,IAAI;MAElB,IAAIC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAKC,SAAS,IAAID,MAAM,KAAK,WAAW,EAAE;QAExF,IAAIA,MAAM,CAACE,MAAM,IAAID,SAAS,EAAE;UAC5BF,OAAO,GAAG,KAAK,CAAC,CAAC;QACrB,CAAC,MACI,IAAI,OAAOC,MAAM,KAAK,UAAU,EAAE;UACnCD,OAAO,GAAG,KAAK,CAAC,CAAC;QACrB,CAAC,MACI;UAAE;;UAEH,IAAII,QAAQ,GAAI,OAAOH,MAAM,IAAI,QAAS;UAE1C,IAAIG,QAAQ,EAAEH,MAAM,GAAGA,MAAM,CAACI,IAAI,CAAC,CAAC;UAEpC,IAAIJ,MAAM,CAACE,MAAM,GAAG,CAAC,EAAE;YAEnB,IAAIC,QAAQ,EAAE;cACVJ,OAAO,GAAG,KAAK,CAAC,CAAC;YACrB,CAAC,MACI;cAED,IAAI,OAAOC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;gBAC9BD,OAAO,GAAG,KAAK;cACnB,CAAC,MACI;gBACD,KAAI,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,CAACE,MAAM,EAAEG,CAAC,EAAE,EAAE;kBACnC,IAAIL,MAAM,CAACK,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjBN,OAAO,GAAG,KAAK;oBACf;kBACJ;gBACJ;cACJ;YACJ;UACJ;QACJ;MACJ;MAEA,OAAOA,OAAO;IAClB;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAED,SAAOQ,aAAaA,CAACR,KAAK,EAAES,YAAY,EAAE;MACtC,OAAO,CAACb,UAAU,CAACK,OAAO,CAACD,KAAK,CAAC,IAAI,CAACU,KAAK,CAACV,KAAK,CAAC,KAAK,CAACS,YAAY,IAAIE,UAAU,CAACX,KAAK,CAAC,GAAG,CAAC,CAAC;IAClG;EAAC;IAAAD,GAAA;IAAAC,KAAA,EAED,SAAOY,kBAAkBA,CAACC,MAAM,EAAE;MAE9B,IAAIC,IAAI,GAAG,IAAI;MACf,IAAIC,WAAW,GAAG,EAAE;MAEpB,IAAI,CAACnB,UAAU,CAACK,OAAO,CAACY,MAAM,CAAC,EAAE;QAE7B,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;UAC5BC,IAAI,GAAGD,MAAM;UACbE,WAAW,GAAG,kDAAkD;QACpE,CAAC,MACI;UACDD,IAAI,GAAGE,IAAI,CAACC,SAAS,CAACJ,MAAM,CAAC;UAC7BE,WAAW,GAAG,iCAAiC;QACnD;MACJ;MAEA,OAAO;QAAEG,IAAI,EAAEJ,IAAI;QAAEK,WAAW,EAAEJ;MAAY,CAAC;IACnD;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAOoB,iBAAiBA,CAACC,KAAK,EAAEC,SAAS,EAAE;MAEvC,IAAIC,OAAO,GAAG,KAAK;MAEnB,IAAI,CAAC3B,UAAU,CAACK,OAAO,CAACoB,KAAK,CAAC,IAAI,CAACzB,UAAU,CAACK,OAAO,CAACqB,SAAS,CAAC,EAAE;QAE9D,IAAIE,oBAAoB,GAAGH,KAAK,CAAC,CAAC,CAAC,YAAYI,MAAM;QAErD,IAAID,oBAAoB,EAAE;UAEtB,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGc,KAAK,CAACjB,MAAM,EAAEG,CAAC,EAAE,EAAE;YAEnC,IAAImB,QAAQ,CAACC,gBAAgB,CAACN,KAAK,CAACd,CAAC,CAAC,CAAC,CAACqB,EAAE,CAACN,SAAS,CAAC,EAAE;cACnDC,OAAO,GAAG,IAAI;cACd;YACJ;UACJ;QACJ,CAAC,MACI;UAED,IAAIM,MAAM,GAAGR,KAAK,CAAC,CAAC,CAAC,YAAYS,IAAI;UAErC,IAAID,MAAM,EAAE;YAER,KAAK,IAAItB,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGc,KAAK,CAACjB,MAAM,EAAEG,EAAC,EAAE,EAAE;cAEnC,IAAIc,KAAK,CAACd,EAAC,CAAC,CAACwB,OAAO,CAAC,CAAC,KAAKT,SAAS,CAACS,OAAO,CAAC,CAAC,EAAE;gBAC5CR,OAAO,GAAG,IAAI;gBACd;cACJ;YACJ;UACJ,CAAC,MACI;YAED,KAAK,IAAIhB,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGc,KAAK,CAACjB,MAAM,EAAEG,GAAC,EAAE,EAAE;cAEnC,IAAIc,KAAK,CAACd,GAAC,CAAC,IAAIe,SAAS,EAAE;gBACvBC,OAAO,GAAG,IAAI;gBACd;cACJ;YACJ;UACJ;QACJ;MACJ;MAEA,OAAOA,OAAO;IAClB;EAAC;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAOgC,UAAUA,CAACC,CAAC,EAAEC,CAAC,EAAE;MACpB,OAAQA,CAAC,IAAID,CAAC;IAClB;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EACD,SAAOmC,aAAaA,CAACC,KAAK,EAAEC,KAAK,EAAE;MAC/B,IAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC;MAChC,IAAMK,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC;MAEhC,IAAIC,KAAK,CAAClC,MAAM,KAAKqC,KAAK,CAACrC,MAAM,EAAE;QACnC,OAAO,KAAK;MACZ;MAEA,SAAAsC,GAAA,MAAAC,KAAA,GAAgBL,KAAK,EAAAI,GAAA,GAAAC,KAAA,CAAAvC,MAAA,EAAAsC,GAAA,IAAE;QAAlB,IAAI3C,GAAG,GAAA4C,KAAA,CAAAD,GAAA;QACZ,IAAIN,KAAK,CAACrC,GAAG,CAAC,KAAKsC,KAAK,CAACtC,GAAG,CAAC,EAAE;UAC3B,OAAO,KAAK;QAChB;MACA;MAEA,OAAO,IAAI;IACf;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAO4C,WAAWA,CAACC,GAAG,EAAEC,QAAQ,EAAE;MAE9B,IAAIC,GAAG,GAAG,IAAIC,KAAK,CAAC,CAAC;MAErBD,GAAG,CAACE,MAAM,GAAG,YAAW;QAAEH,QAAQ,CAAC,IAAI,CAAC;MAAE,CAAC;MAC3CC,GAAG,CAACG,OAAO,GAAG,YAAW;QAAEJ,QAAQ,CAAC,KAAK,CAAC;MAAE,CAAC;MAC7CC,GAAG,CAACI,GAAG,GAAGN,GAAG;IACjB;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EAED,SAAOoD,gBAAgBA,CAACpD,KAAK,EAAEqD,aAAa,EAAuB;MAAA,IAArBC,YAAY,GAAAC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAC7D,OAAO3D,UAAU,CAACY,aAAa,CAACR,KAAK,CAAC,GAAGW,UAAU,CAACX,KAAK,CAAC,CAACwD,OAAO,CAACH,aAAa,CAAC,GAAGC,YAAY;IACpG;EAAC;AAAA;;;;;;;;;;AC3J8B;AACU;AAAA,IAExBK,GAAG;EAAA,SAAAA,IAAA;IAAA9D,kBAAA,OAAA8D,GAAA;EAAA;EAAA,OAAA7D,eAAA,CAAA6D,GAAA;IAAA5D,GAAA;IAAAC,KAAA,EACpB,SAAO4D,4CAA4CA,CAACC,OAAO,EAAE/C,IAAI,EAAE;MAC/D6C,GAAG,CAACG,+BAA+B,CAACD,OAAO,EAAE/C,IAAI,CAAC;MAClD6C,GAAG,CAACI,gCAAgC,CAACF,OAAO,EAAE/C,IAAI,CAAC;IACvD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAO8D,+BAA+BA,CAACD,OAAO,EAAE/C,IAAI,EAAE;MAClD+C,OAAO,CAACG,YAAY,CAACC,gBAAgB,EAAEnD,IAAI,CAAC;IAChD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAO+D,gCAAgCA,CAACF,OAAO,EAAE/C,IAAI,EAAE;MACnD+C,OAAO,CAACG,YAAY,CAACE,iBAAiB,EAAEpD,IAAI,CAAC;IACjD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAOmE,kCAAkCA,CAACN,OAAO,EAAE/C,IAAI,EAAE;MACrD6C,GAAG,CAACS,sBAAsB,CAACP,OAAO,EAAE/C,IAAI,CAAC;MACzC6C,GAAG,CAACI,gCAAgC,CAACF,OAAO,EAAE/C,IAAI,CAAC;IACvD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAOoE,sBAAsBA,CAACP,OAAO,EAAE/C,IAAI,EAAE;MACzC6C,GAAG,CAACG,+BAA+B,CAACD,OAAO,EAAE/C,IAAI,CAAC;MAClD,IAAIuD,OAAO,GAAGR,OAAO,CAACQ,OAAO,CAACC,WAAW,CAAC,CAAC;MAC3C,IAAIT,OAAO,CAACU,IAAI,KAAK,UAAU,EAAE;QAC7BV,OAAO,CAACW,OAAO,GAAG1D,IAAI;MAC1B,CAAC,MACI,IAAIuD,OAAO,KAAK,OAAO,IAAIA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,QAAQ,EAAE;QAC5ER,OAAO,CAAC7D,KAAK,GAAGc,IAAI;MACxB,CAAC,MACI;QACD+C,OAAO,CAACY,WAAW,GAAG3D,IAAI;MAC9B;IACJ;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAO0E,6BAA6BA,CAACb,OAAO,EAAE/C,IAAI,EAAE;MAChD,IAAIlB,UAAU,CAACK,OAAO,CAAC0D,GAAG,CAACgB,sBAAsB,CAACd,OAAO,CAAC,CAAC,EAAE;QACzDF,GAAG,CAACS,sBAAsB,CAACP,OAAO,EAAE/C,IAAI,CAAC;MAC7C;IACJ;EAAC;IAAAf,GAAA;IAAAC,KAAA,EACD,SAAO4E,kBAAkBA,CAACf,OAAO,EAAE;MAC/B,OAAOA,OAAO,CAACgB,OAAO,CAAC,IAAI,CAAC;IAChC;EAAC;IAAA9E,GAAA;IAAAC,KAAA,EACD,SAAO8E,iBAAiBA,CAACjB,OAAO,EAAEkB,OAAO,EAAE;MACvC,IAAIC,QAAQ,GAAGpF,UAAU,CAACK,OAAO,CAAC8E,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,GAAGA,OAAO;MACnE,OAAOlB,OAAO,CAACgB,OAAO,CAACG,QAAQ,CAAC;IACpC;EAAC;IAAAjF,GAAA;IAAAC,KAAA,EACD,SAAOiF,gBAAgBA,CAACpB,OAAO,EAAEqB,cAAc,EAAE;MAC7C,IAAIC,MAAM,GAAGtB,OAAO,CAACuB,aAAa;MAClC,OAAOD,MAAM,EAAE;QACX,IAAIA,MAAM,CAACE,OAAO,CAACH,cAAc,CAAC,EAAE;UAChC,OAAOC,MAAM;QACjB;QACAA,MAAM,GAAGA,MAAM,CAACC,aAAa;MACjC;MACA,OAAO,IAAI;IACb;EAAC;IAAArF,GAAA;IAAAC,KAAA,EACH,SAAOsF,gBAAgBA,CAACC,WAAW,EAAE;MACjC,IAAIC,QAAQ,GAAG,CAAC,CAAC;MACjB,IAAI5F,UAAU,CAACK,OAAO,CAACsF,WAAW,CAAC,EAAE;QACjC,OAAOC,QAAQ;MACnB;MACA,IAAIC,gBAAgB,GAAGF,WAAW,CAAC5D,gBAAgB,CAAC,GAAG,GAAG+D,kBAAkB,GAAG,GAAG,GAAGC,UAAU,CAAC;MAChG,IAAIC,eAAe,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM;MACnD,KAAK,IAAIC,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGP,gBAAgB,CAACrF,MAAM,EAAE4F,WAAW,EAAE,EAAE;QAC5EJ,eAAe,GAAGH,gBAAgB,CAACO,WAAW,CAAC;QAC/CH,WAAW,GAAGD,eAAe,CAACK,aAAa,CAAC,OAAO,CAAC;QACpDH,SAAS,GAAGD,WAAW,CAACK,YAAY,CAAC,KAAK,CAAC;QAC3CH,MAAM,GAAGH,eAAe,CAACK,aAAa,KAAAE,MAAA,CAAKL,SAAS,CAAE,CAAC;QACvDN,QAAQ,CAACM,SAAS,CAAC,GAAGnC,GAAG,CAACgB,sBAAsB,CAACoB,MAAM,CAAC;MAC5D;MACA,OAAOP,QAAQ;IACnB;EAAC;IAAAzF,GAAA;IAAAC,KAAA,EACD,SAAOoG,YAAYA,CAACC,UAAU,EAAE;MAC5B,IAAIC,QAAQ,GAAG5E,QAAQ,CAACuE,aAAa,CAACM,UAAU,CAAC;MACjDD,QAAQ,CAACE,SAAS,GAAGH,UAAU;IACnC;EAAC;IAAAtG,GAAA;IAAAC,KAAA,EACD,SAAOyG,kBAAkBA,CAAA,EAAG;MACxB,IAAMC,eAAe,GAAGhF,QAAQ,CAACiF,IAAI,CAACC,OAAO,CAACC,IAAI;MAClD,OAAOH,eAAe;IAC1B;EAAC;IAAA3G,GAAA;IAAAC,KAAA,EACD,SAAO8G,4BAA4BA,CAACjD,OAAO,EAAE;MACzCA,OAAO,CAACG,YAAY,CAACC,gBAAgB,EAAEN,GAAG,CAACgB,sBAAsB,CAACd,OAAO,CAAC,CAAC;MAC3E,OAAOF,GAAG,CAACoD,cAAc,CAAClD,OAAO,CAAC;IACtC;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAO+G,cAAcA,CAAClD,OAAO,EAAE;MAC3B,IAAImD,OAAO,GAAGnD,OAAO,CAACqC,YAAY,CAAChC,iBAAiB,CAAC,IAAIL,OAAO,CAACqC,YAAY,CAACjC,gBAAgB,CAAC;MAC/FN,GAAG,CAACsD,kBAAkB,CAACpD,OAAO,EAAEmD,OAAO,CAAC;MACxC,OAAOA,OAAO;IAClB;EAAC;IAAAjH,GAAA;IAAAC,KAAA,EACD,SAAOiH,kBAAkBA,CAACpD,OAAO,EAAEmD,OAAO,EAAE;MACxCrD,GAAG,CAACuD,6BAA6B,CAACrD,OAAO,EAAEmD,OAAO,EAAEG,SAAS,CAAC;IAClE;EAAC;IAAApH,GAAA;IAAAC,KAAA,EACD,SAAOkH,6BAA6BA,CAACrD,OAAO,EAAEuD,cAAc,EAAEC,IAAI,EAAE;MAChE,IAAIC,qBAAqB,GAAGzD,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACH,IAAI,CAAC;MAC5D,IAAID,cAAc,IAAIE,qBAAqB,EAAE;MAC7C,IAAIF,cAAc,EAAE;QAChBvD,OAAO,CAAC0D,SAAS,CAACE,GAAG,CAACJ,IAAI,CAAC;MAC/B,CAAC,MAAM;QACHxD,OAAO,CAAC0D,SAAS,CAACG,MAAM,CAACL,IAAI,CAAC;MAClC;IACJ;EAAC;IAAAtH,GAAA;IAAAC,KAAA,EACD,SAAO2H,yBAAyBA,CAACC,SAAS,EAAE;MACxC,IAAIA,SAAS,IAAI,IAAI,EAAE,OAAO,KAAK;MACnC,OAAOA,SAAS,CAAC3B,aAAa,CAAC,GAAG,GAAGkB,SAAS,CAAC,IAAI,IAAI;IAC3D;EAAC;IAAApH,GAAA;IAAAC,KAAA,EACD,SAAO6H,mCAAmCA,CAACD,SAAS,EAAE;MAClD,IAAIA,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACL,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC,EAAE,OAAO,KAAK;MAC/E,OAAOF,SAAS,CAAC3B,aAAa,CAAC,GAAG,GAAGkB,SAAS,GAAG,QAAQ,GAAGW,UAAU,GAAG,KAAK,GAAGA,UAAU,GAAG,KAAK,CAAC,IAAI,IAAI;IAChH;EAAC;IAAA/H,GAAA;IAAAC,KAAA,EACD,SAAO2E,sBAAsBA,CAACd,OAAO,EAAE;MACnC,IAAIkE,SAAS,GAAG,EAAE;MAElB,IAAI,CAACnI,UAAU,CAACK,OAAO,CAAC4D,OAAO,CAAC,EAAE;QAE9B,IAAIQ,OAAO,GAAGR,OAAO,CAACQ,OAAO,CAACC,WAAW,CAAC,CAAC;QAC3C,IAAIT,OAAO,CAACU,IAAI,KAAK,UAAU,EAAE;UAC7BwD,SAAS,GAAGlE,OAAO,CAACW,OAAO;QAC/B;QACA;AACZ;AACA;AACA;AACA,UAJY,KAKK,IAAIH,OAAO,KAAK,OAAO,IAAIA,OAAO,KAAK,UAAU,IAAIA,OAAO,KAAK,QAAQ,EAAE;UAC5E0D,SAAS,GAAGlE,OAAO,CAAC7D,KAAK;QAC7B,CAAC,MACI,IAAI6D,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACQ,UAAU,CAAC,IAAInE,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACS,UAAU,CAAC,EAAE;UAAE;UACzFF,SAAS,GAAGlE,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;QACtD,CAAC,MACI,IAAIzD,OAAO,KAAK,IAAI,EAAE;UACvB0D,SAAS,GAAGpE,GAAG,CAACuE,+BAA+B,CAACrE,OAAO,CAAC;QAC5D,CAAC,MACI,IAAIQ,OAAO,IAAI,KAAK,IAAIR,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACW,YAAY,CAAC,EAAE;UACnEJ,SAAS,GAAIlE,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACY,aAAa,CAAE;QAC3D,CAAC,MACI;UACDL,SAAS,GAAGlE,OAAO,CAACY,WAAW;QACnC;MACJ;MAEA,IAAI7E,UAAU,CAACK,OAAO,CAAC8H,SAAS,CAAC,EAAEA,SAAS,GAAG,EAAE;MAEjD,OAAOA,SAAS;IACpB;EAAC;IAAAhI,GAAA;IAAAC,KAAA,EACD,SAAOkI,+BAA+BA,CAACrE,OAAO,EAAE;MAC5C;MACA,IAAIjE,UAAU,CAACK,OAAO,CAAC4D,OAAO,CAAC,EAAE,OAAO,IAAI;MAC5C,OAAOA,OAAO,CAACqC,YAAY,CAACjC,gBAAgB,CAAC;IACjD;EAAC;IAAAlE,GAAA;IAAAC,KAAA,EACD,SAAOqI,gCAAgCA,CAACxE,OAAO,EAAE;MAC7C,IAAIjE,UAAU,CAACK,OAAO,CAAC4D,OAAO,CAAC,EAAE,OAAO,IAAI;MAC5C,OAAOA,OAAO,CAACqC,YAAY,CAAChC,iBAAiB,CAAC;IAClD;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAjBI;IAAAnE,GAAA;IAAAC,KAAA,EAkBA,SAAOsI,eAAeA,CAACnD,MAAM,EAAEtB,OAAO,EAAE;MACpC;MACAsB,MAAM,CAACoD,SAAS,CAACpD,MAAM,CAACoD,SAAS,CAAC,CAAC,IAAI1E,OAAO,CAAC2E,MAAM,CAAC,CAAC,CAACC,GAAG,GAAGtD,MAAM,CAACqD,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;IACvF;EAAC;IAAA1I,GAAA;IAAAC,KAAA,EACD,SAAO0I,oBAAoBA,CAACd,SAAS,EAAE/D,OAAO,EAAE;MAE5C,IAAI,OAAOpC,MAAM,KAAK,UAAU,EAAE;QAC9B,IAAImG,SAAS,YAAYnG,MAAM,EAAEmG,SAAS,GAAGA,SAAS,CAAC,CAAC,CAAC;QACzD,IAAI/D,OAAO,YAAYpC,MAAM,EAAEoC,OAAO,GAAGA,OAAO,CAAC,CAAC,CAAC;MACvD;MAEA,IAAI8E,eAAe,GAAGf,SAAS,CAACgB,qBAAqB,CAAC,CAAC;MACvD,IAAIC,aAAa,GAAGhF,OAAO,CAAC+E,qBAAqB,CAAC,CAAC;MAEnD,OACID,eAAe,CAACF,GAAG,IAAII,aAAa,CAACJ,GAAG,IACxCE,eAAe,CAACG,IAAI,IAAID,aAAa,CAACC,IAAI,IACxCD,aAAa,CAACJ,GAAG,GAAGI,aAAa,CAACE,MAAM,IAAMJ,eAAe,CAACF,GAAG,GAAGE,eAAe,CAACI,MAAQ,IAC5FF,aAAa,CAACC,IAAI,GAAGD,aAAa,CAACG,KAAK,IAAML,eAAe,CAACG,IAAI,GAAGH,eAAe,CAACK,KAAO;IAEtG;EAAC;IAAAjJ,GAAA;IAAAC,KAAA,EACD,SAAOiJ,UAAUA,CAACC,SAAS,EAAEC,SAAS,EAAE;MACpCC,KAAK,CAACF,SAAS,GAAG,IAAI,GAAGC,SAAS,CAAC;IACvC;EAAC;IAAApJ,GAAA;IAAAC,KAAA,EACD,SAAOqJ,sCAAsCA,CAAA,EAAG;MAC5C,OAAAC,eAAA,CAAAA,eAAA,KACKC,wBAAwB,EAAAD,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,KACpBE,sBAAsB,EAAG,CAACC,QAAQ,CAAC,GACnCC,uBAAuB,EAAG,CAACC,0BAA0B,CAAC,GACtDF,QAAQ,EAAG,uBAAuB,GAClCE,0BAA0B,EAAG,CAAC,IAElCC,oBAAoB,EAAAN,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,KAChBE,sBAAsB,EAAG,CAACC,QAAQ,CAAC,GACnCC,uBAAuB,EAAG,CAACG,sBAAsB,CAAC,GAClDJ,QAAQ,EAAG,kBAAkB,GAC7BI,sBAAsB,EAAG,CAAC;IAGvC;EAAC;IAAA9J,GAAA;IAAAC,KAAA,EACD,SAAO8J,YAAYA,CAACC,UAAU,EAAE;MAC5B,IAAInK,UAAU,CAACK,OAAO,CAAC8J,UAAU,CAAC,EAAEA,UAAU,GAAG;QAC7CC,IAAI,EAAE,QAAQ;QACdhK,KAAK,EAAE;MACX,CAAC;MACD,IAAIiK,MAAM,GAAGvI,QAAQ,CAACwI,aAAa,CAAC,QAAQ,CAAC;MAC7CD,MAAM,CAACjK,KAAK,GAAG+J,UAAU,CAAC/J,KAAK;MAC/BiK,MAAM,CAACxF,WAAW,GAAGsF,UAAU,CAACC,IAAI;MACpCC,MAAM,CAACE,QAAQ,GAAGJ,UAAU,CAACI,QAAQ;MACrC,OAAOF,MAAM;IACjB;EAAC;IAAAlK,GAAA;IAAAC,KAAA,EAED,SAAOoK,UAAUA,CAACJ,IAAI,EAAE;MACpB,IAAMK,GAAG,GAAG3I,QAAQ,CAACwI,aAAa,CAAC,KAAK,CAAC;MACzCG,GAAG,CAAC5F,WAAW,GAAGuF,IAAI;MACtB,OAAOK,GAAG,CAAC7D,SAAS;IACxB;EAAC;IAAAzG,GAAA;IAAAC,KAAA,EACD,SAAOsK,YAAYA,CAACC,IAAI,EAAE;MACtB,IAAMF,GAAG,GAAG3I,QAAQ,CAACwI,aAAa,CAAC,KAAK,CAAC;MACzCG,GAAG,CAAC7D,SAAS,GAAG+D,IAAI;MACpB,OAAOF,GAAG,CAAC5F,WAAW,IAAI4F,GAAG,CAACG,SAAS,IAAI,EAAE;IACjD;EAAC;AAAA;;;;;;;;;ICrOgBC,MAAM;EAAA,SAAAA,OAAA;IAAA5K,qBAAA,OAAA4K,MAAA;EAAA;EAAA,OAAA3K,kBAAA,CAAA2K,MAAA;IAAA1K,GAAA;IAAAC,KAAA,EACvB,SAAO0K,sBAAsBA,CAACC,eAAe,EAAEC,gBAAgB,EAAEC,YAAY,EAAE;MAC3EnJ,QAAQ,CAACC,gBAAgB,CAACgJ,eAAe,CAAC,CAACG,OAAO,CAAC,UAASjH,OAAO,EAAE;QACjE,IAAIA,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACoD,gBAAgB,CAAC,EAAE;QAClDC,YAAY,CAAChH,OAAO,CAAC;QACrBA,OAAO,CAAC0D,SAAS,CAACE,GAAG,CAACmD,gBAAgB,CAAC;MAC3C,CAAC,CAAC;IACN;EAAC;IAAA7K,GAAA;IAAAC,KAAA,EACD,SAAO+K,kBAAkBA,CAACC,SAAS,EAAEhG,QAAQ,EAAElC,QAAQ,EAAE;MACrD2H,MAAM,CAACC,sBAAsB,CAAC1F,QAAQ,EAAEiG,eAAe,EAAE,UAACpH,OAAO,EAAK;QAClEA,OAAO,CAACqH,gBAAgB,CAACF,SAAS,EAAE,UAACG,KAAK,EAAK;UAC3CA,KAAK,CAACC,eAAe,CAAC,CAAC;UACvBtI,QAAQ,CAACqI,KAAK,EAAEtH,OAAO,CAAC;QAC5B,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;AAAA;;;;;;;;;ACfoC;AAAA,IAEpBwH,YAAY;EAAA,SAAAA,aAAA;IAAAxL,4BAAA,OAAAwL,YAAA;EAAA;EAAA,OAAAvL,yBAAA,CAAAuL,YAAA;IAAAtL,GAAA;IAAAC,KAAA;IACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEI,SAAOsL,eAAeA,CAACvL,GAAG,EAAE;MACxB,OAAOiB,IAAI,CAACuK,KAAK,CAACC,YAAY,CAACC,OAAO,CAAC1L,GAAG,CAAC,CAAC;IAChD;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAO0L,eAAeA,CAAC3L,GAAG,EAAE4L,KAAK,EAAE;MAC/BH,YAAY,CAACI,OAAO,CAAC7L,GAAG,EAAEiB,IAAI,CAACC,SAAS,CAAC0K,KAAK,CAAC,CAAC;IACpD;;IAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVA;AAAA;;;;+CCjDA,qJAAAE,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAzJ,MAAA,CAAA0J,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAA7J,MAAA,CAAA8J,cAAA,cAAAN,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAhM,KAAA,KAAAO,CAAA,wBAAA+L,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAhM,CAAA,CAAAiM,QAAA,kBAAAC,CAAA,GAAAlM,CAAA,CAAAmM,aAAA,uBAAAC,CAAA,GAAApM,CAAA,CAAAqM,WAAA,8BAAAC,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAzJ,MAAA,CAAA8J,cAAA,CAAAN,CAAA,EAAAD,CAAA,IAAA9L,KAAA,EAAAgM,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAjB,CAAA,CAAAD,CAAA,WAAAe,MAAA,mBAAAd,CAAA,IAAAc,MAAA,YAAAA,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAiB,KAAAlB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAA3L,CAAA,GAAAuL,CAAA,IAAAA,CAAA,CAAAG,SAAA,YAAAiB,SAAA,GAAApB,CAAA,GAAAoB,SAAA,EAAAX,CAAA,GAAAhK,MAAA,CAAA4K,MAAA,CAAA5M,CAAA,CAAA0L,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAG,CAAA,eAAAvM,KAAA,EAAAqN,gBAAA,CAAAtB,CAAA,EAAAC,CAAA,EAAAS,CAAA,MAAAF,CAAA,aAAAe,SAAAvB,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAAzH,IAAA,YAAAgJ,GAAA,EAAAxB,CAAA,CAAAyB,IAAA,CAAA1B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAAxH,IAAA,WAAAgJ,GAAA,EAAAxB,CAAA,QAAAD,CAAA,CAAAmB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAAzB,CAAA,qCAAAtK,CAAA,GAAAM,MAAA,CAAA0L,cAAA,EAAAC,CAAA,GAAAjM,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAkM,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAlC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAU,CAAA,EAAA3B,CAAA,MAAAyB,CAAA,GAAAE,CAAA,OAAAE,CAAA,GAAAL,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAAa,CAAA,YAAAK,sBAAAtC,CAAA,gCAAAjB,OAAA,WAAAgB,CAAA,IAAAe,MAAA,CAAAd,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAuC,OAAA,CAAAxC,CAAA,EAAAC,CAAA,sBAAAwC,cAAAxC,CAAA,EAAAD,CAAA,aAAA0C,OAAAxC,CAAA,EAAAI,CAAA,EAAA7L,CAAA,EAAAgM,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAAvB,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAK,CAAA,mBAAAK,CAAA,CAAAlI,IAAA,QAAAoI,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAA3M,KAAA,SAAAyN,CAAA,gBAAAgB,UAAA,CAAAhB,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA3B,CAAA,CAAA4C,OAAA,CAAAjB,CAAA,CAAAkB,OAAA,EAAAC,IAAA,WAAA7C,CAAA,IAAAyC,MAAA,SAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,gBAAAR,CAAA,IAAAyC,MAAA,UAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,QAAAT,CAAA,CAAA4C,OAAA,CAAAjB,CAAA,EAAAmB,IAAA,WAAA7C,CAAA,IAAAY,CAAA,CAAA3M,KAAA,GAAA+L,CAAA,EAAAxL,CAAA,CAAAoM,CAAA,gBAAAZ,CAAA,WAAAyC,MAAA,UAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAApM,KAAA,WAAAA,MAAA+L,CAAA,EAAAG,CAAA,aAAA2C,2BAAA,eAAA/C,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAAwC,MAAA,CAAAzC,CAAA,EAAAG,CAAA,EAAAJ,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA4C,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAxB,iBAAAvB,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAlN,CAAA,EAAAgM,CAAA,QAAAH,CAAA,KAAAuB,CAAA,QAAAmB,KAAA,sCAAA1C,CAAA,KAAAwB,CAAA,oBAAArN,CAAA,QAAAgM,CAAA,WAAAvM,KAAA,EAAA+L,CAAA,EAAAgD,IAAA,eAAA7C,CAAA,CAAA8C,MAAA,GAAAzO,CAAA,EAAA2L,CAAA,CAAAqB,GAAA,GAAAhB,CAAA,UAAAE,CAAA,GAAAP,CAAA,CAAA+C,QAAA,MAAAxC,CAAA,QAAAE,CAAA,GAAAuC,mBAAA,CAAAzC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA8C,MAAA,EAAA9C,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,CAAAkD,KAAA,GAAAlD,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA8C,MAAA,QAAA5C,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAmD,iBAAA,CAAAnD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA8C,MAAA,IAAA9C,CAAA,CAAAoD,MAAA,WAAApD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAxB,CAAA,EAAAE,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAAzJ,IAAA,QAAA6H,CAAA,GAAAF,CAAA,CAAA6C,IAAA,GAAAnB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA7N,KAAA,EAAAgO,CAAA,CAAAT,GAAA,EAAAwB,IAAA,EAAA7C,CAAA,CAAA6C,IAAA,kBAAAf,CAAA,CAAAzJ,IAAA,KAAA6H,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA8C,MAAA,YAAA9C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA2B,oBAAApD,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAgD,MAAA,EAAA5C,CAAA,GAAAN,CAAA,CAAAU,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAAL,CAAA,SAAAC,CAAA,CAAAiD,QAAA,qBAAA/C,CAAA,IAAAJ,CAAA,CAAAU,QAAA,eAAAR,CAAA,CAAAgD,MAAA,aAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAAmD,mBAAA,CAAApD,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAgD,MAAA,kBAAA9C,CAAA,KAAAF,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,OAAAgC,SAAA,uCAAArD,CAAA,iBAAA2B,CAAA,MAAAtN,CAAA,GAAA+M,QAAA,CAAAlB,CAAA,EAAAN,CAAA,CAAAU,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAhN,CAAA,CAAAgE,IAAA,SAAAyH,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,GAAAhN,CAAA,CAAAgN,GAAA,EAAAvB,CAAA,CAAAiD,QAAA,SAAApB,CAAA,MAAAtB,CAAA,GAAAhM,CAAA,CAAAgN,GAAA,SAAAhB,CAAA,GAAAA,CAAA,CAAAwC,IAAA,IAAA/C,CAAA,CAAAF,CAAA,CAAA0D,UAAA,IAAAjD,CAAA,CAAAvM,KAAA,EAAAgM,CAAA,CAAAyD,IAAA,GAAA3D,CAAA,CAAA4D,OAAA,eAAA1D,CAAA,CAAAgD,MAAA,KAAAhD,CAAA,CAAAgD,MAAA,WAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,GAAAC,CAAA,CAAAiD,QAAA,SAAApB,CAAA,IAAAtB,CAAA,IAAAP,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,OAAAgC,SAAA,sCAAAvD,CAAA,CAAAiD,QAAA,SAAApB,CAAA,cAAA8B,aAAA5D,CAAA,QAAAD,CAAA,KAAA8D,MAAA,EAAA7D,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA+D,QAAA,GAAA9D,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAgE,UAAA,GAAA/D,CAAA,KAAAD,CAAA,CAAAiE,QAAA,GAAAhE,CAAA,WAAAiE,UAAA,CAAAC,IAAA,CAAAnE,CAAA,cAAAoE,cAAAnE,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAoE,UAAA,QAAArE,CAAA,CAAAvH,IAAA,oBAAAuH,CAAA,CAAAyB,GAAA,EAAAxB,CAAA,CAAAoE,UAAA,GAAArE,CAAA,aAAAsB,QAAArB,CAAA,SAAAiE,UAAA,MAAAJ,MAAA,aAAA7D,CAAA,CAAAjB,OAAA,CAAA6E,YAAA,cAAAS,KAAA,iBAAAjC,OAAArC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAS,CAAA,OAAAP,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAA1B,CAAA,4BAAAA,CAAA,CAAA2D,IAAA,SAAA3D,CAAA,OAAApL,KAAA,CAAAoL,CAAA,CAAA1L,MAAA,SAAAgM,CAAA,OAAA7L,CAAA,YAAAkP,KAAA,aAAArD,CAAA,GAAAN,CAAA,CAAA1L,MAAA,OAAA8L,CAAA,CAAAsB,IAAA,CAAA1B,CAAA,EAAAM,CAAA,UAAAqD,IAAA,CAAAzP,KAAA,GAAA8L,CAAA,CAAAM,CAAA,GAAAqD,IAAA,CAAAV,IAAA,OAAAU,IAAA,SAAAA,IAAA,CAAAzP,KAAA,GAAA+L,CAAA,EAAA0D,IAAA,CAAAV,IAAA,OAAAU,IAAA,YAAAlP,CAAA,CAAAkP,IAAA,GAAAlP,CAAA,gBAAAgP,SAAA,CAAAd,UAAA,CAAA3C,CAAA,kCAAAgC,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAgC,CAAA,mBAAApO,KAAA,EAAA+N,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAA/N,KAAA,EAAA8N,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAuC,WAAA,GAAAxD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAb,CAAA,CAAAwE,mBAAA,aAAAvE,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAwE,WAAA,WAAAzE,CAAA,KAAAA,CAAA,KAAAgC,iBAAA,6BAAAhC,CAAA,CAAAuE,WAAA,IAAAvE,CAAA,CAAA0E,IAAA,OAAA1E,CAAA,CAAA2E,IAAA,aAAA1E,CAAA,WAAAxJ,MAAA,CAAAmO,cAAA,GAAAnO,MAAA,CAAAmO,cAAA,CAAA3E,CAAA,EAAAgC,0BAAA,KAAAhC,CAAA,CAAA4E,SAAA,GAAA5C,0BAAA,EAAAlB,MAAA,CAAAd,CAAA,EAAAY,CAAA,yBAAAZ,CAAA,CAAAE,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAAiB,CAAA,GAAArC,CAAA,KAAAD,CAAA,CAAA8E,KAAA,aAAA7E,CAAA,aAAA4C,OAAA,EAAA5C,CAAA,OAAAsC,qBAAA,CAAAE,aAAA,CAAAtC,SAAA,GAAAY,MAAA,CAAA0B,aAAA,CAAAtC,SAAA,EAAAQ,CAAA,iCAAAX,CAAA,CAAAyC,aAAA,GAAAA,aAAA,EAAAzC,CAAA,CAAA+E,KAAA,aAAA9E,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA7L,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAuQ,OAAA,OAAAvE,CAAA,OAAAgC,aAAA,CAAAtB,IAAA,CAAAlB,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAA7L,CAAA,UAAAuL,CAAA,CAAAwE,mBAAA,CAAAtE,CAAA,IAAAO,CAAA,GAAAA,CAAA,CAAAkD,IAAA,GAAAb,IAAA,WAAA7C,CAAA,WAAAA,CAAA,CAAAgD,IAAA,GAAAhD,CAAA,CAAA/L,KAAA,GAAAuM,CAAA,CAAAkD,IAAA,WAAApB,qBAAA,CAAAD,CAAA,GAAAvB,MAAA,CAAAuB,CAAA,EAAAzB,CAAA,gBAAAE,MAAA,CAAAuB,CAAA,EAAA7B,CAAA,iCAAAM,MAAA,CAAAuB,CAAA,6DAAAtC,CAAA,CAAAtJ,IAAA,aAAAuJ,CAAA,QAAAD,CAAA,GAAAvJ,MAAA,CAAAwJ,CAAA,GAAAC,CAAA,gBAAAE,CAAA,IAAAJ,CAAA,EAAAE,CAAA,CAAAiE,IAAA,CAAA/D,CAAA,UAAAF,CAAA,CAAA+E,OAAA,aAAAtB,KAAA,WAAAzD,CAAA,CAAA5L,MAAA,SAAA2L,CAAA,GAAAC,CAAA,CAAAgF,GAAA,QAAAjF,CAAA,IAAAD,CAAA,SAAA2D,IAAA,CAAAzP,KAAA,GAAA+L,CAAA,EAAA0D,IAAA,CAAAV,IAAA,OAAAU,IAAA,WAAAA,IAAA,CAAAV,IAAA,OAAAU,IAAA,QAAA3D,CAAA,CAAAqC,MAAA,GAAAA,MAAA,EAAAf,OAAA,CAAAnB,SAAA,KAAAsE,WAAA,EAAAnD,OAAA,EAAAgD,KAAA,WAAAA,MAAAtE,CAAA,aAAAmF,IAAA,WAAAxB,IAAA,WAAAN,IAAA,QAAAC,KAAA,GAAArD,CAAA,OAAAgD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAzB,GAAA,GAAAxB,CAAA,OAAAiE,UAAA,CAAAlF,OAAA,CAAAoF,aAAA,IAAApE,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAAkF,MAAA,OAAAhF,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAtL,KAAA,EAAAsL,CAAA,CAAAmF,KAAA,cAAAnF,CAAA,IAAAD,CAAA,MAAAqF,IAAA,WAAAA,KAAA,SAAArC,IAAA,WAAAhD,CAAA,QAAAiE,UAAA,IAAAG,UAAA,kBAAApE,CAAA,CAAAxH,IAAA,QAAAwH,CAAA,CAAAwB,GAAA,cAAA8D,IAAA,KAAAhC,iBAAA,WAAAA,kBAAAvD,CAAA,aAAAiD,IAAA,QAAAjD,CAAA,MAAAE,CAAA,kBAAAsF,OAAApF,CAAA,EAAAE,CAAA,WAAAG,CAAA,CAAAhI,IAAA,YAAAgI,CAAA,CAAAgB,GAAA,GAAAzB,CAAA,EAAAE,CAAA,CAAAyD,IAAA,GAAAvD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAAgD,MAAA,WAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,KAAAK,CAAA,aAAAA,CAAA,QAAA4D,UAAA,CAAA5P,MAAA,MAAAgM,CAAA,SAAAA,CAAA,QAAA7L,CAAA,QAAAyP,UAAA,CAAA5D,CAAA,GAAAG,CAAA,GAAAhM,CAAA,CAAA4P,UAAA,iBAAA5P,CAAA,CAAAqP,MAAA,SAAA0B,MAAA,aAAA/Q,CAAA,CAAAqP,MAAA,SAAAqB,IAAA,QAAAxE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAjN,CAAA,eAAAoM,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAjN,CAAA,qBAAAkM,CAAA,IAAAE,CAAA,aAAAsE,IAAA,GAAA1Q,CAAA,CAAAsP,QAAA,SAAAyB,MAAA,CAAA/Q,CAAA,CAAAsP,QAAA,gBAAAoB,IAAA,GAAA1Q,CAAA,CAAAuP,UAAA,SAAAwB,MAAA,CAAA/Q,CAAA,CAAAuP,UAAA,cAAArD,CAAA,aAAAwE,IAAA,GAAA1Q,CAAA,CAAAsP,QAAA,SAAAyB,MAAA,CAAA/Q,CAAA,CAAAsP,QAAA,qBAAAlD,CAAA,QAAAmC,KAAA,qDAAAmC,IAAA,GAAA1Q,CAAA,CAAAuP,UAAA,SAAAwB,MAAA,CAAA/Q,CAAA,CAAAuP,UAAA,YAAAR,MAAA,WAAAA,OAAAvD,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAgE,UAAA,CAAA5P,MAAA,MAAA4L,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA4D,UAAA,CAAAhE,CAAA,OAAAI,CAAA,CAAAwD,MAAA,SAAAqB,IAAA,IAAA/E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAA6E,IAAA,GAAA7E,CAAA,CAAA0D,UAAA,QAAAvP,CAAA,GAAA6L,CAAA,aAAA7L,CAAA,iBAAAwL,CAAA,mBAAAA,CAAA,KAAAxL,CAAA,CAAAqP,MAAA,IAAA9D,CAAA,IAAAA,CAAA,IAAAvL,CAAA,CAAAuP,UAAA,KAAAvP,CAAA,cAAAgM,CAAA,GAAAhM,CAAA,GAAAA,CAAA,CAAA4P,UAAA,cAAA5D,CAAA,CAAAhI,IAAA,GAAAwH,CAAA,EAAAQ,CAAA,CAAAgB,GAAA,GAAAzB,CAAA,EAAAvL,CAAA,SAAAyO,MAAA,gBAAAS,IAAA,GAAAlP,CAAA,CAAAuP,UAAA,EAAAjC,CAAA,SAAA0D,QAAA,CAAAhF,CAAA,MAAAgF,QAAA,WAAAA,SAAAxF,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAAxH,IAAA,QAAAwH,CAAA,CAAAwB,GAAA,qBAAAxB,CAAA,CAAAxH,IAAA,mBAAAwH,CAAA,CAAAxH,IAAA,QAAAkL,IAAA,GAAA1D,CAAA,CAAAwB,GAAA,gBAAAxB,CAAA,CAAAxH,IAAA,SAAA8M,IAAA,QAAA9D,GAAA,GAAAxB,CAAA,CAAAwB,GAAA,OAAAyB,MAAA,kBAAAS,IAAA,yBAAA1D,CAAA,CAAAxH,IAAA,IAAAuH,CAAA,UAAA2D,IAAA,GAAA3D,CAAA,GAAA+B,CAAA,KAAA2D,MAAA,WAAAA,OAAAzF,CAAA,aAAAD,CAAA,QAAAkE,UAAA,CAAA5P,MAAA,MAAA0L,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAgE,UAAA,CAAAlE,CAAA,OAAAE,CAAA,CAAA8D,UAAA,KAAA/D,CAAA,cAAAwF,QAAA,CAAAvF,CAAA,CAAAmE,UAAA,EAAAnE,CAAA,CAAA+D,QAAA,GAAAG,aAAA,CAAAlE,CAAA,GAAA6B,CAAA,yBAAA4D,OAAA1F,CAAA,aAAAD,CAAA,QAAAkE,UAAA,CAAA5P,MAAA,MAAA0L,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAgE,UAAA,CAAAlE,CAAA,OAAAE,CAAA,CAAA4D,MAAA,KAAA7D,CAAA,QAAAG,CAAA,GAAAF,CAAA,CAAAmE,UAAA,kBAAAjE,CAAA,CAAA3H,IAAA,QAAA6H,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAA2C,aAAA,CAAAlE,CAAA,YAAAI,CAAA,YAAA0C,KAAA,8BAAA4C,aAAA,WAAAA,cAAA5F,CAAA,EAAAE,CAAA,EAAAE,CAAA,gBAAA+C,QAAA,KAAAzC,QAAA,EAAA2B,MAAA,CAAArC,CAAA,GAAA0D,UAAA,EAAAxD,CAAA,EAAA0D,OAAA,EAAAxD,CAAA,oBAAA8C,MAAA,UAAAzB,GAAA,GAAAxB,CAAA,GAAA8B,CAAA,OAAA/B,CAAA;AAAA,SAAA6F,QAAA7F,CAAA,EAAAE,CAAA,QAAAD,CAAA,GAAAxJ,MAAA,CAAAC,IAAA,CAAAsJ,CAAA,OAAAvJ,MAAA,CAAAqP,qBAAA,QAAAxF,CAAA,GAAA7J,MAAA,CAAAqP,qBAAA,CAAA9F,CAAA,GAAAE,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAArG,MAAA,WAAAiG,CAAA,WAAAzJ,MAAA,CAAAsP,wBAAA,CAAA/F,CAAA,EAAAE,CAAA,EAAAc,UAAA,OAAAf,CAAA,CAAAkE,IAAA,CAAA6B,KAAA,CAAA/F,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAgG,cAAAjG,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAzI,SAAA,CAAAnD,MAAA,EAAA4L,CAAA,UAAAD,CAAA,WAAAxI,SAAA,CAAAyI,CAAA,IAAAzI,SAAA,CAAAyI,CAAA,QAAAA,CAAA,OAAA2F,OAAA,CAAApP,MAAA,CAAAwJ,CAAA,OAAAjB,OAAA,WAAAkB,CAAA,IAAA1C,kBAAA,CAAAwC,CAAA,EAAAE,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAzJ,MAAA,CAAAyP,yBAAA,GAAAzP,MAAA,CAAA0P,gBAAA,CAAAnG,CAAA,EAAAvJ,MAAA,CAAAyP,yBAAA,CAAAjG,CAAA,KAAA4F,OAAA,CAAApP,MAAA,CAAAwJ,CAAA,GAAAjB,OAAA,WAAAkB,CAAA,IAAAzJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAE,CAAA,EAAAzJ,MAAA,CAAAsP,wBAAA,CAAA9F,CAAA,EAAAC,CAAA,iBAAAF,CAAA;AAAA,SAAAxC,kBAAAA,CAAAwC,CAAA,EAAAE,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAAkG,iBAAA,CAAAlG,CAAA,MAAAF,CAAA,GAAAvJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAE,CAAA,IAAAhM,KAAA,EAAA+L,CAAA,EAAAe,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAlB,CAAA,CAAAE,CAAA,IAAAD,CAAA,EAAAD,CAAA;AAAA,SAAAqG,mBAAAjG,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAG,CAAA,EAAAE,CAAA,cAAAlM,CAAA,GAAA2L,CAAA,CAAAK,CAAA,EAAAE,CAAA,GAAAE,CAAA,GAAApM,CAAA,CAAAP,KAAA,WAAAkM,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAA3L,CAAA,CAAAwO,IAAA,GAAAhD,CAAA,CAAAY,CAAA,IAAAmE,OAAA,CAAApC,OAAA,CAAA/B,CAAA,EAAAiC,IAAA,CAAA5C,CAAA,EAAAI,CAAA;AAAA,SAAAgG,kBAAAlG,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAvI,SAAA,aAAAuN,OAAA,WAAA9E,CAAA,EAAAI,CAAA,QAAAG,CAAA,GAAAL,CAAA,CAAA4F,KAAA,CAAA/F,CAAA,EAAAD,CAAA,YAAAuG,MAAAnG,CAAA,IAAAiG,kBAAA,CAAA5F,CAAA,EAAAP,CAAA,EAAAI,CAAA,EAAAiG,KAAA,EAAAC,MAAA,UAAApG,CAAA,cAAAoG,OAAApG,CAAA,IAAAiG,kBAAA,CAAA5F,CAAA,EAAAP,CAAA,EAAAI,CAAA,EAAAiG,KAAA,EAAAC,MAAA,WAAApG,CAAA,KAAAmG,KAAA;AAAA,SAAAxS,kBAAAA,CAAA0M,CAAA,EAAAL,CAAA,UAAAK,CAAA,YAAAL,CAAA,aAAAqD,SAAA;AAAA,SAAAgD,oBAAAA,CAAAzG,CAAA,EAAAE,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAA5L,MAAA,EAAA2L,CAAA,UAAAK,CAAA,GAAAJ,CAAA,CAAAD,CAAA,GAAAK,CAAA,CAAAU,UAAA,GAAAV,CAAA,CAAAU,UAAA,QAAAV,CAAA,CAAAW,YAAA,kBAAAX,CAAA,KAAAA,CAAA,CAAAY,QAAA,QAAAzK,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAoG,iBAAA,CAAA9F,CAAA,CAAArM,GAAA,GAAAqM,CAAA;AAAA,SAAAtM,eAAAA,CAAAgM,CAAA,EAAAE,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAAuG,oBAAA,CAAAzG,CAAA,CAAAG,SAAA,EAAAD,CAAA,GAAAD,CAAA,IAAAwG,oBAAA,CAAAzG,CAAA,EAAAC,CAAA,GAAAxJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,iBAAAkB,QAAA,SAAAlB,CAAA;AAAA,SAAAoG,iBAAAA,CAAAnG,CAAA,QAAAxL,CAAA,GAAAiS,eAAA,CAAAzG,CAAA,gCAAA0C,UAAA,CAAAlO,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAiS,eAAAA,CAAAzG,CAAA,EAAAC,CAAA,oBAAAyC,UAAA,CAAA1C,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAO,MAAA,CAAAmG,WAAA,kBAAA3G,CAAA,QAAAvL,CAAA,GAAAuL,CAAA,CAAA0B,IAAA,CAAAzB,CAAA,EAAAC,CAAA,gCAAAyC,UAAA,CAAAlO,CAAA,UAAAA,CAAA,YAAAgP,SAAA,yEAAAvD,CAAA,GAAA0G,MAAA,GAAAC,MAAA,EAAA5G,CAAA;AAD2B;AAAA,IAEN6G,GAAG;EAAA,SAAAA,IAAA;IAAA/S,kBAAA,OAAA+S,GAAA;EAAA;EAAA,OAAA9S,eAAA,CAAA8S,GAAA;IAAA7S,GAAA;IAAAC,KAAA,EAEpB,SAAO6S,YAAYA,CAAA,EAAG;MAClB,OAAOnR,QAAQ,CAACuE,aAAa,CAAC6M,WAAW,CAAC,CAAC5M,YAAY,CAAC,SAAS,CAAC;IACtE;EAAC;IAAAnG,GAAA;IAAAC,KAAA;MAAA,IAAA+S,QAAA,GAAAX,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CAED,SAAAuC,QAAqBC,YAAY;QAAA,IAAAjE,MAAA;UAAAlO,IAAA;UAAAD,MAAA;UAAAgC,GAAA;UAAAqQ,SAAA;UAAAC,OAAA;UAAAC,QAAA;UAAAC,KAAA,GAAA9P,SAAA;QAAA,OAAAsI,mBAAA,GAAAoB,IAAA,UAAAqG,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAtC,IAAA,GAAAsC,QAAA,CAAA9D,IAAA;YAAA;cAAET,MAAM,GAAAqE,KAAA,CAAAjT,MAAA,QAAAiT,KAAA,QAAAlT,SAAA,GAAAkT,KAAA,MAAG,KAAK;cAAEvS,IAAI,GAAAuS,KAAA,CAAAjT,MAAA,QAAAiT,KAAA,QAAAlT,SAAA,GAAAkT,KAAA,MAAG,IAAI;cAAExS,MAAM,GAAAwS,KAAA,CAAAjT,MAAA,QAAAiT,KAAA,QAAAlT,SAAA,GAAAkT,KAAA,MAAG,IAAI;cACnExQ,GAAG,GAAG+P,GAAG,CAACY,cAAc,CAACP,YAAY,EAAEpS,MAAM,CAAC;cAC9CqS,SAAS,GAAGN,GAAG,CAACC,YAAY,CAAC,CAAC;cAC9BM,OAAO,GAAG;gBACZnE,MAAM,EAANA,MAAM;gBACNyE,OAAO,EAAAnK,kBAAA;kBACH,cAAc,EAAE;gBAAkB,GACjCoK,aAAa,EAAGR,SAAS;cAElC,CAAC;cAED,IAAIpS,IAAI,KAAKkO,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,KAAK,IAAIA,MAAM,KAAK,OAAO,CAAC,EAAE;gBACvElO,IAAI,GAAAiR,aAAA,CAAAA,aAAA,KACGjR,IAAI,OAAAwI,kBAAA,KACNoK,aAAa,EAAGR,SAAS,EAC7B;gBACDC,OAAO,CAACxM,IAAI,GAAG3F,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC;cACvC;cAACyS,QAAA,CAAAtC,IAAA;cAAAsC,QAAA,CAAA9D,IAAA;cAAA,OAG0BkE,KAAK,CAAC9Q,GAAG,EAAEsQ,OAAO,CAAC;YAAA;cAApCC,QAAQ,GAAAG,QAAA,CAAApE,IAAA;cAAA,IACTiE,QAAQ,CAACQ,EAAE;gBAAAL,QAAA,CAAA9D,IAAA;gBAAA;cAAA;cAAA,MACN,IAAIX,KAAK,wBAAA3I,MAAA,CAAwBiN,QAAQ,CAACS,MAAM,CAAE,CAAC;YAAA;cAAAN,QAAA,CAAA9D,IAAA;cAAA,OAEhD2D,QAAQ,CAACU,IAAI,CAAC,CAAC;YAAA;cAAA,OAAAP,QAAA,CAAAjE,MAAA,WAAAiE,QAAA,CAAApE,IAAA;YAAA;cAAAoE,QAAA,CAAAtC,IAAA;cAAAsC,QAAA,CAAAQ,EAAA,GAAAR,QAAA;cAE5BS,OAAO,CAACC,KAAK,CAAC,qBAAqB,EAAAV,QAAA,CAAAQ,EAAO,CAAC;cAAC,MAAAR,QAAA,CAAAQ,EAAA;YAAA;YAAA;cAAA,OAAAR,QAAA,CAAAnC,IAAA;UAAA;QAAA,GAAA4B,OAAA;MAAA,CAGnD;MAAA,SA7BYkB,OAAOA,CAAAC,EAAA;QAAA,OAAApB,QAAA,CAAAjB,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAP2Q,OAAO;IAAA;EAAA;IAAAnU,GAAA;IAAAC,KAAA,EA+BpB,SAAOwT,cAAcA,CAACY,IAAI,EAAiB;MAAA,IAAfvT,MAAM,GAAA0C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MACrC,IAAI6Q,IAAI,IAAI,IAAI,EAAEA,IAAI,GAAGC,YAAY;MACrC,IAAIxR,GAAG,GAAG+P,GAAG,CAAC0B,eAAe,CAACC,SAAS,GAAGH,IAAI,EAAEvT,MAAM,CAAC;MACvD,OAAOgC,GAAG;IACd;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EACD,SAAOsU,eAAeA,CAACzR,GAAG,EAAEhC,MAAM,EAAE;MAChC,IAAIA,MAAM,EAAE;QACRgC,GAAG,IAAI,GAAG,GAAG,IAAI2R,eAAe,CAAC3T,MAAM,CAAC,CAAC4T,QAAQ,CAAC,CAAC;MACvD;MACA,OAAO5R,GAAG;IACd;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EACD,SAAO0U,OAAOA,CAAC7R,GAAG,EAAE;MAChB8R,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGhS,GAAG;IAC9B;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EACD,SAAO8U,QAAQA,CAACV,IAAI,EAAiB;MAAA,IAAfvT,MAAM,GAAA0C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAC/B,IAAMV,GAAG,GAAG+P,GAAG,CAACY,cAAc,CAACY,IAAI,EAAEvT,MAAM,CAAC;MAC5C+R,GAAG,CAAC8B,OAAO,CAAC7R,GAAG,CAAC;IACpB;;IAEA;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;;IAEI;EAAA;IAAA9C,GAAA;IAAAC,KAAA;MAAA,IAAA+U,UAAA,GAAA3C,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAAuE,SAAA;QAAA,IAAAlS,QAAA;QAAA,OAAA+I,mBAAA,GAAAoB,IAAA,UAAAgI,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAjE,IAAA,GAAAiE,SAAA,CAAAzF,IAAA;YAAA;cACQ3M,QAAQ,GAAG,CAAC,CAAC;cACjBA,QAAQ,CAACqS,YAAY,CAAC,GAAGxR,GAAG,CAAC8C,kBAAkB,CAAC,CAAC;cAACyO,SAAA,CAAAzF,IAAA;cAAA,OACrCmD,GAAG,CAACsB,OAAO,CAACkB,iBAAiB,EAAE,MAAM,EAAEtS,QAAQ,CAAC;YAAA;cAAA,OAAAoS,SAAA,CAAA5F,MAAA,WAAA4F,SAAA,CAAA/F,IAAA;YAAA;YAAA;cAAA,OAAA+F,SAAA,CAAA9D,IAAA;UAAA;QAAA,GAAA4D,QAAA;MAAA,CAChE;MAAA,SAJYK,SAASA,CAAA;QAAA,OAAAN,UAAA,CAAAjD,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAT8R,SAAS;IAAA;EAAA;IAAAtV,GAAA;IAAAC,KAAA;MAAA,IAAAsV,UAAA,GAAAlD,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CAKtB,SAAA8E,SAAuBC,KAAK,EAAEC,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAA2I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5E,IAAA,GAAA4E,SAAA,CAAApG,IAAA;YAAA;cAC1CkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACI,QAAQ,CAAC,GAAGP,KAAK;cAC7BG,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACG,SAAA,CAAApG,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAAC+B,eAAe,EAAE,MAAM,EAAEN,WAAW,CAAC;YAAA;cAAA,OAAAE,SAAA,CAAAvG,MAAA,WAAAuG,SAAA,CAAA1G,IAAA;YAAA;YAAA;cAAA,OAAA0G,SAAA,CAAAzE,IAAA;UAAA;QAAA,GAAAmE,QAAA;MAAA,CACjE;MAAA,SANYW,SAASA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAf,UAAA,CAAAxD,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAT2S,SAAS;IAAA,IAStB;IACA;EAAA;IAAAnW,GAAA;IAAAC,KAAA;MAAA,IAAAsW,sBAAA,GAAAlE,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAA8F,SAAmCC,iBAAiB,EAAEf,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAAwJ,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAzF,IAAA,GAAAyF,SAAA,CAAAjH,IAAA;YAAA;cAClEkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACgB,mBAAmB,CAAC,GAAGH,iBAAiB;cACpDb,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACgB,SAAA,CAAAjH,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAAC0C,0BAA0B,EAAE,MAAM,EAAEjB,WAAW,CAAC;YAAA;cAAA,OAAAe,SAAA,CAAApH,MAAA,WAAAoH,SAAA,CAAAvH,IAAA;YAAA;YAAA;cAAA,OAAAuH,SAAA,CAAAtF,IAAA;UAAA;QAAA,GAAAmF,QAAA;MAAA,CAC5E;MAAA,SANYM,qBAAqBA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAV,sBAAA,CAAAxE,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAArBsT,qBAAqB;IAAA,IAQlC;EAAA;IAAA9W,GAAA;IAAAC,KAAA;MAAA,IAAAiX,aAAA,GAAA7E,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAAyG,SAA0BC,QAAQ,EAAE1B,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAAmK,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAApG,IAAA,GAAAoG,SAAA,CAAA5H,IAAA;YAAA;cAChDkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAAC2B,WAAW,CAAC,GAAGH,QAAQ;cACnCxB,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAAC2B,SAAA,CAAA5H,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAACqD,kBAAkB,EAAE,MAAM,EAAE5B,WAAW,CAAC;YAAA;cAAA,OAAA0B,SAAA,CAAA/H,MAAA,WAAA+H,SAAA,CAAAlI,IAAA;YAAA;YAAA;cAAA,OAAAkI,SAAA,CAAAjG,IAAA;UAAA;QAAA,GAAA8F,QAAA;MAAA,CACpE;MAAA,SANYM,YAAYA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,IAAA;QAAA,OAAAV,aAAA,CAAAnF,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAZiU,YAAY;IAAA,IAQzB;EAAA;IAAAzX,GAAA;IAAAC,KAAA;MAAA,IAAA4X,oBAAA,GAAAxF,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAAoH,SAAiCC,eAAe,EAAErC,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAA8K,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA/G,IAAA,GAAA+G,SAAA,CAAAvI,IAAA;YAAA;cAC9DkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACsC,kBAAkB,CAAC,GAAGH,eAAe;cACjDnC,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACsC,SAAA,CAAAvI,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAACgE,yBAAyB,EAAE,MAAM,EAAEvC,WAAW,CAAC;YAAA;cAAA,OAAAqC,SAAA,CAAA1I,MAAA,WAAA0I,SAAA,CAAA7I,IAAA;YAAA;YAAA;cAAA,OAAA6I,SAAA,CAAA5G,IAAA;UAAA;QAAA,GAAAyG,QAAA;MAAA,CAC3E;MAAA,SANYM,mBAAmBA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,oBAAA,CAAA9F,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAnB4U,mBAAmB;IAAA,IAQhC;EAAA;IAAApY,GAAA;IAAAC,KAAA;MAAA,IAAAuY,cAAA,GAAAnG,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAA+H,SAA2BC,SAAS,EAAEhD,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAAyL,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1H,IAAA,GAAA0H,SAAA,CAAAlJ,IAAA;YAAA;cAClDkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACiD,YAAY,CAAC,GAAGH,SAAS;cACrC9C,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACiD,SAAA,CAAAlJ,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAAC2E,mBAAmB,EAAE,MAAM,EAAElD,WAAW,CAAC;YAAA;cAAA,OAAAgD,SAAA,CAAArJ,MAAA,WAAAqJ,SAAA,CAAAxJ,IAAA;YAAA;YAAA;cAAA,OAAAwJ,SAAA,CAAAvH,IAAA;UAAA;QAAA,GAAAoH,QAAA;MAAA,CACrE;MAAA,SANYM,aAAaA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,cAAA,CAAAzG,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAbuV,aAAa;IAAA,IAQ1B;EAAA;IAAA/Y,GAAA;IAAAC,KAAA;MAAA,IAAAkZ,gBAAA,GAAA9G,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAA0I,SAA6BC,WAAW,EAAE3D,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAAoM,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAArI,IAAA,GAAAqI,SAAA,CAAA7J,IAAA;YAAA;cACtDkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAAC4D,cAAc,CAAC,GAAGH,WAAW;cACzCzD,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAAC4D,SAAA,CAAA7J,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAACsF,qBAAqB,EAAE,MAAM,EAAE7D,WAAW,CAAC;YAAA;cAAA,OAAA2D,SAAA,CAAAhK,MAAA,WAAAgK,SAAA,CAAAnK,IAAA;YAAA;YAAA;cAAA,OAAAmK,SAAA,CAAAlI,IAAA;UAAA;QAAA,GAAA+H,QAAA;MAAA,CACvE;MAAA,SANYM,eAAeA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,gBAAA,CAAApH,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAfkW,eAAe;IAAA,IAQ5B;EAAA;IAAA1Z,GAAA;IAAAC,KAAA;MAAA,IAAA6Z,uBAAA,GAAAzH,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAAqJ,SAAoCC,KAAK,EAAEtE,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAA+M,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAhJ,IAAA,GAAAgJ,SAAA,CAAAxK,IAAA;YAAA;cACvDkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACuE,qBAAqB,CAAC,GAAGH,KAAK;cAC1CpE,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACuE,SAAA,CAAAxK,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAACiG,4BAA4B,EAAE,MAAM,EAAExE,WAAW,CAAC;YAAA;cAAA,OAAAsE,SAAA,CAAA3K,MAAA,WAAA2K,SAAA,CAAA9K,IAAA;YAAA;YAAA;cAAA,OAAA8K,SAAA,CAAA7I,IAAA;UAAA;QAAA,GAAA0I,QAAA;MAAA,CAC9E;MAAA,SANYM,sBAAsBA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,uBAAA,CAAA/H,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAtB6W,sBAAsB;IAAA,IAQnC;EAAA;IAAAra,GAAA;IAAAC,KAAA;MAAA,IAAAwa,gBAAA,GAAApI,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAAgK,UAA6BC,WAAW,EAAEjF,WAAW,EAAEC,OAAO;QAAA,IAAAC,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAA0N,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAA3J,IAAA,GAAA2J,UAAA,CAAAnL,IAAA;YAAA;cACtDkG,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cAChEE,WAAW,CAACkF,cAAc,CAAC,GAAGH,WAAW;cACzC/E,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAACkF,UAAA,CAAAnL,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAAC4G,qBAAqB,EAAE,MAAM,EAAEnF,WAAW,CAAC;YAAA;cAAA,OAAAiF,UAAA,CAAAtL,MAAA,WAAAsL,UAAA,CAAAzL,IAAA;YAAA;YAAA;cAAA,OAAAyL,UAAA,CAAAxJ,IAAA;UAAA;QAAA,GAAAqJ,SAAA;MAAA,CACvE;MAAA,SANYM,eAAeA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,gBAAA,CAAA1I,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAfwX,eAAe;IAAA,IAQ5B;EAAA;IAAAhb,GAAA;IAAAC,KAAA;MAAA,IAAAmb,wCAAA,GAAA/I,iBAAA,cAAAvG,mBAAA,GAAA4E,IAAA,CACA,SAAA2K,UAAqDV,WAAW,EAAEjF,WAAW,EAAEC,OAAO;QAAA,IAAA2F,WAAA,EAAA1F,WAAA;QAAA,OAAA9J,mBAAA,GAAAoB,IAAA,UAAAqO,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAtK,IAAA,GAAAsK,UAAA,CAAA9L,IAAA;YAAA;cAC9E4L,WAAW,GAAG1X,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;cACnD4F,WAAW,CAACG,gBAAgB,CAAC,GAAG,IAAI;cAChC7F,WAAW,GAAG,CAAC,CAAC;cACpBA,WAAW,CAACG,eAAe,CAAC,GAAGuF,WAAW;cAC1C1F,WAAW,CAACkF,cAAc,CAAC,GAAGH,WAAW;cACzC/E,WAAW,CAACK,WAAW,CAAC,GAAGN,OAAO;cAAC6F,UAAA,CAAA9L,IAAA;cAAA,OACtBmD,GAAG,CAACsB,OAAO,CAACuH,2CAA2C,EAAE,MAAM,EAAE9F,WAAW,CAAC;YAAA;cAAA,OAAA4F,UAAA,CAAAjM,MAAA,WAAAiM,UAAA,CAAApM,IAAA;YAAA;YAAA;cAAA,OAAAoM,UAAA,CAAAnK,IAAA;UAAA;QAAA,GAAAgK,SAAA;MAAA,CAC7F;MAAA,SARYM,uCAAuCA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAV,wCAAA,CAAArJ,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAvCmY,uCAAuC;IAAA;EAAA;AAAA;;;;;;;;;ACnJxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IASqBhY,WAAK;EAAA,SAAAA,MAAA;IAAA7D,oBAAA,OAAA6D,KAAA;EAAA;EAAA,OAAA5D,iBAAA,CAAA4D,KAAA;IAAA3D,GAAA;IAAAC,KAAA,EACtB,SAAO8b,eAAeA,CAACC,IAAI,EAAE;MACzB,IAAIC,IAAI,GAAG,EAAE;MACb,KAAK,IAAIjc,GAAG,IAAIgc,IAAI,EAAE;QAClBC,IAAI,CAAC/L,IAAI,CAAC8L,IAAI,CAAChc,GAAG,CAAC,CAAC;MACxB;MACA,OAAOic,IAAI;IACf;EAAC;IAAAjc,GAAA;IAAAC,KAAA,EACD,SAAOic,oCAAoCA,CAACC,OAAO,EAAE;MACjD,IAAIC,WAAW,CAACC,aAAa,IAAI,MAAM,EAAE;QACrCpI,OAAO,CAACqI,GAAG,CAACH,OAAO,CAAC;MACxB;IACJ;EAAC;AAAA;;;;;;;;;ACrBuC;AAAA,IAEvBI,cAAc;EAAA,SAAAA,eAAA;IAAAzc,8BAAA,OAAAyc,cAAA;EAAA;EAAA,OAAAxc,2BAAA,CAAAwc,cAAA;IAAAvc,GAAA;IAAAC,KAAA,EAC/B,SAAOuc,MAAMA,CAACC,eAAe,EAAE;MAC3B/R,MAAM,CAACC,sBAAsB,CAAC+R,gBAAgB,GAAG,UAAU,GAAGC,UAAU,EAAEzR,eAAe,EAAE,UAAC0R,YAAY,EAAK;QACzGA,YAAY,CAACzR,gBAAgB,CAAC,OAAO,EAAE,YAAM;UACzC,IAAI0R,OAAO,GAAGlb,QAAQ,CAACuE,aAAa,CAACwW,gBAAgB,CAAC;UACtDG,OAAO,CAACC,KAAK,CAACC,UAAU,GAAG,QAAQ;QACvC,CAAC,CAAC;MACN,CAAC,CAAC;MACFrS,MAAM,CAACC,sBAAsB,CAAC+R,gBAAgB,GAAG,UAAU,GAAGM,UAAU,EAAE9R,eAAe,EAAE,UAAC+R,aAAa,EAAK;QAC1GA,aAAa,CAAC9R,gBAAgB,CAAC,OAAO,EAAE,YAAM;UAC1C,IAAI0R,OAAO,GAAGlb,QAAQ,CAACuE,aAAa,CAACwW,gBAAgB,CAAC;UACtD,IAAIQ,QAAQ,GAAGL,OAAO,CAAC3W,aAAa,CAAC,UAAU,CAAC;UAChD2W,OAAO,CAACC,KAAK,CAACC,UAAU,GAAG,QAAQ;UACnCN,eAAe,CAACS,QAAQ,CAACjd,KAAK,CAAC;QACnC,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;IAAAD,GAAA;IAAAC,KAAA,EACD,SAAOkd,IAAIA,CAAA,EAAG;MACV,IAAIN,OAAO,GAAGlb,QAAQ,CAACuE,aAAa,CAACwW,gBAAgB,CAAC;MACtDG,OAAO,CAACrV,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;MACzCP,OAAO,CAACC,KAAK,CAACC,UAAU,GAAG,SAAS;IACxC;EAAC;AAAA;;;;;;;;;ACvBqE;AACpC;AACa;AACvB;AACA;AACQ;AAE2C;AACJ;AAC7B;AAAA,IAEzBQ,QAAQ;EACzB,SAAAA,SAAYC,MAAM,EAAE;IAAA1d,mBAAA,OAAAyd,QAAA;IAChB,IAAI,CAACC,MAAM,EAAE;MACT,MAAM,IAAIzO,KAAK,CAAC,oBAAoB,CAAC;IACzC,CAAC,MACI;MACDpL,WAAK,CAACuY,oCAAoC,CAAC,4BAA4B,EAAEsB,MAAM,CAAC;IACpF;IACA,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,KAAK,GAAGC,gBAAgB;IAC7B,IAAI,IAAI,CAAClN,WAAW,KAAK+M,QAAQ,EAAE;MAC/B,MAAM,IAAIxO,KAAK,CAAC,mCAAmC,CAAC;IACxD;IAEA,IAAI,CAAC,IAAI,CAACyB,WAAW,CAAC6D,IAAI,EAAE;MACxB,MAAM,IAAItF,KAAK,UAAA3I,MAAA,CAAU,IAAI,CAACoK,WAAW,CAACC,IAAI,wCAAqC,CAAC;IACxF;EACJ;EAAC,OAAA1Q,gBAAA,CAAAwd,QAAA;IAAAvd,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,MAAM,IAAI5O,KAAK,CAAC,4CAA4C,CAAC;IACjE;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EAED,SAAA2d,gBAAgBA,CAAA,EAAG;MACf,IAAI,CAACC,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC/B;EAAC;IAAA9d,GAAA;IAAAC,KAAA,EAED,SAAA4d,iBAAiBA,CAAA,EAAG;MAChBla,WAAK,CAACuY,oCAAoC,CAAC,eAAe,GAAG,IAAI,CAACuB,KAAK,GAAG,OAAO,CAAC;IACtF;EAAC;IAAAzd,GAAA;IAAAC,KAAA,EAED,SAAA6d,oBAAoBA,CAAA,EAAG;MACnB;MACA,IAAI,CAACC,WAAW,CAAC,CAAC;MAClB,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACC,cAAc,CAAC,CAAC;IACzB;EAAC;IAAAje,GAAA;IAAAC,KAAA,EACD,SAAA8d,WAAWA,CAAA,EAAG;MAAA,IAAAG,KAAA;MACVxT,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAGmT,aAAa,GAAG,GAAG,GAAG,GAAG,GAAGC,QAAQ,EAAE,UAAChT,KAAK,EAAEtH,OAAO,EAAK;QAC/FH,WAAK,CAACuY,oCAAoC,CAAC,eAAe,CAAC;QAC3DgC,KAAI,CAACV,MAAM,CAACa,cAAc,CAAC/J,YAAY,CAAC;MAC5C,CAAC,CAAC;IACN;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATI;IAAAtU,GAAA;IAAAC,KAAA,EAUA,SAAA+d,gBAAgBA,CAAA,EAAG;MACftT,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEsT,iBAAiB,EAAE,UAAClT,KAAK,EAAEtH,OAAO,EAAK;QACtE,IAAIya,gBAAgB,GAAG5c,QAAQ,CAACuE,aAAa,CAACsY,kBAAkB,CAAC;QACjE,IAAID,gBAAgB,CAAC/W,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;UACtDmB,gBAAgB,CAAC/W,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;UAClDmB,gBAAgB,CAAC/W,SAAS,CAACE,GAAG,CAAC+W,YAAY,CAAC;QAChD,CAAC,MAAM;UACHF,gBAAgB,CAAC/W,SAAS,CAACG,MAAM,CAAC8W,YAAY,CAAC;UAC/CF,gBAAgB,CAAC/W,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;QACnD;MACJ,CAAC,CAAC;MAEF,IAAI,CAACsB,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACC,0BAA0B,CAAC,CAAC;MACjC,IAAI,CAACC,yBAAyB,CAAC,CAAC;IACpC;EAAC;IAAA5e,GAAA;IAAAC,KAAA,EACD,SAAA4e,gBAAgBA,CAACC,cAAc,EAAE;MAAA,IAAAC,MAAA;MAC7BrU,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAE8T,cAAc,EAAE,UAAC1T,KAAK,EAAE4T,MAAM,EAAK;QAClE,IAAIC,QAAQ,GAAGH,cAAc,CAAC3Y,YAAY,CAAC,MAAM,CAAC;QAClD4Y,MAAI,CAACvB,MAAM,CAACa,cAAc,CAACY,QAAQ,CAAC;MACxC,CAAC,CAAC;IACN;EAAC;IAAAjf,GAAA;IAAAC,KAAA,EACD,SAAAye,2BAA2BA,CAAA,EAAG;MAC1B;IAAA;EACH;IAAA1e,GAAA;IAAAC,KAAA,EACD,SAAA0e,0BAA0BA,CAAA,EAAG;MACzB;IAAA;EACH;IAAA3e,GAAA;IAAAC,KAAA,EACD,SAAA2e,yBAAyBA,CAAA,EAAG;MAAA,IAAAM,MAAA;MACxBxU,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAE,GAAG,GAAGmU,gBAAgB,EAAE,UAAC/T,KAAK,EAAEgU,SAAS,EAAK;QAC7EhU,KAAK,CAACC,eAAe,CAAC,CAAC;QACvB6T,MAAI,CAACG,KAAK,CAAC,CAAC;QACZxM,GAAG,CAACyC,SAAS,CAAC,CAAC,CACVzG,IAAI,CAAC,UAACwE,QAAQ,EAAK;UACpB,IAAIA,QAAQ,CAACiM,OAAO,EAAE;YAClB1K,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGzB,QAAQ,CAAC+B,YAAY,CAAC;UACjD,CAAC,MAAM;YACHxR,GAAG,CAACsF,UAAU,CAAC,OAAO,EAAEmK,QAAQ,CAACkM,OAAO,CAAC;UAC7C;QACJ,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;IAAAvf,GAAA;IAAAC,KAAA,EAED,SAAAge,cAAcA,CAAA,EAAG;MACb,IAAI,CAACuB,mBAAmB,CAAC9C,gBAAgB,CAAC;MAC1C,IAAI,CAAC8C,mBAAmB,CAACC,cAAc,CAAC;IAC5C;EAAC;IAAAzf,GAAA;IAAAC,KAAA,EAED,SAAAuf,mBAAmBA,CAACE,SAAS,EAAE;MAC3BhV,MAAM,CAACC,sBAAsB,CAAC+U,SAAS,EAAExU,eAAe,EAAE,UAAC2R,OAAO,EAAK;QACnEA,OAAO,CAAC3W,aAAa,CAAC,SAAS,GAAGyW,UAAU,CAAC,CAACxR,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;UAC/EA,KAAK,CAACC,eAAe,CAAC,CAAC;UACvBwR,OAAO,CAACC,KAAK,CAAC6C,OAAO,GAAG,MAAM;QAClC,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;IAAA3f,GAAA;IAAAC,KAAA,EAED,SAAA2f,gBAAgBA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACfnV,MAAM,CAACC,sBAAsB,CAAC,GAAG,GAAGmV,aAAa,GAAG,GAAG,GAAGC,QAAQ,GAAG,GAAG,GAAGpD,UAAU,GAAG,UAAU,GAAGoD,QAAQ,EAAE7U,eAAe,EAAE,UAAC8T,MAAM,EAAK;QACxIA,MAAM,CAAC7T,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;UACxCA,KAAK,CAACC,eAAe,CAAC,CAAC;UACvB2T,MAAM,GAAG5T,KAAK,CAAC4U,MAAM;UACrB,IAAIhB,MAAM,CAACxX,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;UAChDzZ,WAAK,CAACuY,oCAAoC,CAAC,eAAe,EAAE2D,MAAI,CAACpC,KAAK,CAAC;UACvElB,cAAc,CAACY,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;IAAAnd,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ1b,WAAK,CAACuY,oCAAoC,CAAC,UAAU,GAAG,IAAI,CAACuB,KAAK,GAAG,OAAO,CAAC;MAC7E,IAAI,IAAI,CAACjN,WAAW,KAAK+M,QAAQ,EAAE;QAC/B,MAAM,IAAIxO,KAAK,CAAC,gCAAgC,CAAC;MACrD;IACJ;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAAggB,mBAAmBA,CAACC,QAAQ,EAAE;MAC1B5U,YAAY,CAACK,eAAe,CAAC,IAAI,CAAC0I,IAAI,EAAE6L,QAAQ,CAAC;IACrD;EAAC;IAAAlgB,GAAA;IAAAC,KAAA,EACD,SAAAkgB,mBAAmBA,CAAA,EAAG;MAClB,OAAO7U,YAAY,CAACC,eAAe,CAAC,IAAI,CAAC8I,IAAI,CAAC;IAClD;EAAC;IAAArU,GAAA;IAAAC,KAAA,EAED,SAAAmgB,2BAA2BA,CAACjD,IAAI,EAAkC;MAAA,IAAhCkD,uBAAuB,GAAA7c,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAI;MAChE,IAAI3D,UAAU,CAACK,OAAO,CAACmgB,uBAAuB,CAAC,EAAEA,uBAAuB,GAAG,GAAG,GAAGP,aAAa,GAAG,GAAG,GAAGC,QAAQ,GAAG,GAAG,GAAGpD,UAAU;MAClI,IAAI2D,UAAU,GAAG3e,QAAQ,CAACuE,aAAa,CAACma,uBAAuB,GAAG,GAAG,GAAGE,YAAY,CAAC;MACrF,IAAI3D,YAAY,GAAGjb,QAAQ,CAACuE,aAAa,CAACma,uBAAuB,GAAG,GAAG,GAAGG,cAAc,CAAC;MACzF7c,WAAK,CAACuY,oCAAoC,CAAC;QAAEiB,IAAI,EAAJA,IAAI;QAAEkD,uBAAuB,EAAvBA,uBAAuB;QAAEzD,YAAY,EAAZA,YAAY;QAAE0D,UAAU,EAAVA;MAAW,CAAC,CAAC;MACvG,IAAInD,IAAI,EAAE;QACNP,YAAY,CAACpV,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;QAC9CkD,UAAU,CAAC9Y,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;QAC5CzZ,WAAK,CAACuY,oCAAoC,CAAC,iBAAiB,CAAC;MACjE,CAAC,MAAM;QACHU,YAAY,CAACpV,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;QAC3CkD,UAAU,CAAC9Y,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;QACzCzZ,WAAK,CAACuY,oCAAoC,CAAC,gBAAgB,CAAC;MAChE;IACJ;EAAC;IAAAlc,GAAA;IAAAC,KAAA,EAED,SAAOwgB,aAAaA,CAACza,MAAM,EAAE;MACzB,IAAIiB,OAAO,GAAGrD,GAAG,CAACmD,4BAA4B,CAACf,MAAM,CAAC;MACtD,IAAIiB,OAAO,EAAEtF,QAAQ,CAACC,gBAAgB,CAAC8e,WAAW,GAAG,WAAW,CAAC,CAAC/Y,MAAM,CAAC,CAAC;MAC1E,OAAOV,OAAO;IAClB;EAAC;AAAA;;;;;;;;;;;;;;;;;;;;ACvKL;AACkC;AAClC;AAAA,IAGqB0Z,QAAQ,0BAAAC,SAAA;EAGzB,SAAAD,SAAYnD,MAAM,EAAE;IAAA1d,mBAAA,OAAA6gB,QAAA;IAAA,OAAAE,UAAA,OAAAF,QAAA,GACVnD,MAAM;EAChB;EAACsD,SAAA,CAAAH,QAAA,EAAAC,SAAA;EAAA,OAAA7gB,gBAAA,CAAA4gB,QAAA;IAAA3gB,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB;IACJ;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,aAAA,CAAAJ,QAAA;IACJ;EAAC;AAAA,EAdiCpD,QAAQ;AAAAhU,mBAAA,CAAzBoX,QAAQ,UACXrM,YAAY;;;;qDCN9B,qJAAAxI,yBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAzJ,MAAA,CAAA0J,SAAA,EAAAC,CAAA,GAAAF,CAAA,CAAAG,cAAA,EAAAC,CAAA,GAAA7J,MAAA,CAAA8J,cAAA,cAAAN,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAhM,KAAA,KAAAO,CAAA,wBAAA+L,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAhM,CAAA,CAAAiM,QAAA,kBAAAC,CAAA,GAAAlM,CAAA,CAAAmM,aAAA,uBAAAC,CAAA,GAAApM,CAAA,CAAAqM,WAAA,8BAAAC,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAzJ,MAAA,CAAA8J,cAAA,CAAAN,CAAA,EAAAD,CAAA,IAAA9L,KAAA,EAAAgM,CAAA,EAAAc,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAjB,CAAA,CAAAD,CAAA,WAAAe,MAAA,mBAAAd,CAAA,IAAAc,MAAA,YAAAA,OAAAd,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAiB,KAAAlB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAA3L,CAAA,GAAAuL,CAAA,IAAAA,CAAA,CAAAG,SAAA,YAAAiB,SAAA,GAAApB,CAAA,GAAAoB,SAAA,EAAAX,CAAA,GAAAhK,MAAA,CAAA4K,MAAA,CAAA5M,CAAA,CAAA0L,SAAA,GAAAQ,CAAA,OAAAW,OAAA,CAAAlB,CAAA,gBAAAE,CAAA,CAAAG,CAAA,eAAAvM,KAAA,EAAAqN,gBAAA,CAAAtB,CAAA,EAAAC,CAAA,EAAAS,CAAA,MAAAF,CAAA,aAAAe,SAAAvB,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAAzH,IAAA,YAAAgJ,GAAA,EAAAxB,CAAA,CAAAyB,IAAA,CAAA1B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAAxH,IAAA,WAAAgJ,GAAA,EAAAxB,CAAA,QAAAD,CAAA,CAAAmB,IAAA,GAAAA,IAAA,MAAAQ,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAAnB,MAAA,CAAAmB,CAAA,EAAAzB,CAAA,qCAAAtK,CAAA,GAAAM,MAAA,CAAA0L,cAAA,EAAAC,CAAA,GAAAjM,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAkM,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAlC,CAAA,IAAAE,CAAA,CAAAsB,IAAA,CAAAU,CAAA,EAAA3B,CAAA,MAAAyB,CAAA,GAAAE,CAAA,OAAAE,CAAA,GAAAL,0BAAA,CAAA9B,SAAA,GAAAiB,SAAA,CAAAjB,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAAa,CAAA,YAAAK,sBAAAtC,CAAA,gCAAAjB,OAAA,WAAAgB,CAAA,IAAAe,MAAA,CAAAd,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAAuC,OAAA,CAAAxC,CAAA,EAAAC,CAAA,sBAAAwC,cAAAxC,CAAA,EAAAD,CAAA,aAAA0C,OAAAxC,CAAA,EAAAI,CAAA,EAAA7L,CAAA,EAAAgM,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAAvB,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAK,CAAA,mBAAAK,CAAA,CAAAlI,IAAA,QAAAoI,CAAA,GAAAF,CAAA,CAAAc,GAAA,EAAAE,CAAA,GAAAd,CAAA,CAAA3M,KAAA,SAAAyN,CAAA,gBAAAgB,aAAA,CAAAhB,CAAA,KAAAvB,CAAA,CAAAsB,IAAA,CAAAC,CAAA,eAAA3B,CAAA,CAAA4C,OAAA,CAAAjB,CAAA,CAAAkB,OAAA,EAAAC,IAAA,WAAA7C,CAAA,IAAAyC,MAAA,SAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,gBAAAR,CAAA,IAAAyC,MAAA,UAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,QAAAT,CAAA,CAAA4C,OAAA,CAAAjB,CAAA,EAAAmB,IAAA,WAAA7C,CAAA,IAAAY,CAAA,CAAA3M,KAAA,GAAA+L,CAAA,EAAAxL,CAAA,CAAAoM,CAAA,gBAAAZ,CAAA,WAAAyC,MAAA,UAAAzC,CAAA,EAAAxL,CAAA,EAAAgM,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAc,GAAA,SAAAvB,CAAA,EAAAI,CAAA,oBAAApM,KAAA,WAAAA,MAAA+L,CAAA,EAAAG,CAAA,aAAA2C,2BAAA,eAAA/C,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAAwC,MAAA,CAAAzC,CAAA,EAAAG,CAAA,EAAAJ,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAA4C,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAxB,iBAAAvB,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAqB,CAAA,mBAAAlN,CAAA,EAAAgM,CAAA,QAAAH,CAAA,KAAAuB,CAAA,QAAAmB,KAAA,sCAAA1C,CAAA,KAAAwB,CAAA,oBAAArN,CAAA,QAAAgM,CAAA,WAAAvM,KAAA,EAAA+L,CAAA,EAAAgD,IAAA,eAAA7C,CAAA,CAAA8C,MAAA,GAAAzO,CAAA,EAAA2L,CAAA,CAAAqB,GAAA,GAAAhB,CAAA,UAAAE,CAAA,GAAAP,CAAA,CAAA+C,QAAA,MAAAxC,CAAA,QAAAE,CAAA,GAAAuC,mBAAA,CAAAzC,CAAA,EAAAP,CAAA,OAAAS,CAAA,QAAAA,CAAA,KAAAkB,CAAA,mBAAAlB,CAAA,qBAAAT,CAAA,CAAA8C,MAAA,EAAA9C,CAAA,CAAAiD,IAAA,GAAAjD,CAAA,CAAAkD,KAAA,GAAAlD,CAAA,CAAAqB,GAAA,sBAAArB,CAAA,CAAA8C,MAAA,QAAA5C,CAAA,KAAAqB,CAAA,QAAArB,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAAqB,GAAA,EAAArB,CAAA,CAAAmD,iBAAA,CAAAnD,CAAA,CAAAqB,GAAA,uBAAArB,CAAA,CAAA8C,MAAA,IAAA9C,CAAA,CAAAoD,MAAA,WAAApD,CAAA,CAAAqB,GAAA,GAAAnB,CAAA,GAAAuB,CAAA,MAAAK,CAAA,GAAAV,QAAA,CAAAxB,CAAA,EAAAE,CAAA,EAAAE,CAAA,oBAAA8B,CAAA,CAAAzJ,IAAA,QAAA6H,CAAA,GAAAF,CAAA,CAAA6C,IAAA,GAAAnB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA7N,KAAA,EAAAgO,CAAA,CAAAT,GAAA,EAAAwB,IAAA,EAAA7C,CAAA,CAAA6C,IAAA,kBAAAf,CAAA,CAAAzJ,IAAA,KAAA6H,CAAA,GAAAwB,CAAA,EAAA1B,CAAA,CAAA8C,MAAA,YAAA9C,CAAA,CAAAqB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA2B,oBAAApD,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAgD,MAAA,EAAA5C,CAAA,GAAAN,CAAA,CAAAU,QAAA,CAAAN,CAAA,OAAAE,CAAA,KAAAL,CAAA,SAAAC,CAAA,CAAAiD,QAAA,qBAAA/C,CAAA,IAAAJ,CAAA,CAAAU,QAAA,eAAAR,CAAA,CAAAgD,MAAA,aAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,EAAAmD,mBAAA,CAAApD,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAgD,MAAA,kBAAA9C,CAAA,KAAAF,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,OAAAgC,SAAA,uCAAArD,CAAA,iBAAA2B,CAAA,MAAAtN,CAAA,GAAA+M,QAAA,CAAAlB,CAAA,EAAAN,CAAA,CAAAU,QAAA,EAAAR,CAAA,CAAAuB,GAAA,mBAAAhN,CAAA,CAAAgE,IAAA,SAAAyH,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,GAAAhN,CAAA,CAAAgN,GAAA,EAAAvB,CAAA,CAAAiD,QAAA,SAAApB,CAAA,MAAAtB,CAAA,GAAAhM,CAAA,CAAAgN,GAAA,SAAAhB,CAAA,GAAAA,CAAA,CAAAwC,IAAA,IAAA/C,CAAA,CAAAF,CAAA,CAAA0D,UAAA,IAAAjD,CAAA,CAAAvM,KAAA,EAAAgM,CAAA,CAAAyD,IAAA,GAAA3D,CAAA,CAAA4D,OAAA,eAAA1D,CAAA,CAAAgD,MAAA,KAAAhD,CAAA,CAAAgD,MAAA,WAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,GAAAC,CAAA,CAAAiD,QAAA,SAAApB,CAAA,IAAAtB,CAAA,IAAAP,CAAA,CAAAgD,MAAA,YAAAhD,CAAA,CAAAuB,GAAA,OAAAgC,SAAA,sCAAAvD,CAAA,CAAAiD,QAAA,SAAApB,CAAA,cAAA8B,aAAA5D,CAAA,QAAAD,CAAA,KAAA8D,MAAA,EAAA7D,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAA+D,QAAA,GAAA9D,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAgE,UAAA,GAAA/D,CAAA,KAAAD,CAAA,CAAAiE,QAAA,GAAAhE,CAAA,WAAAiE,UAAA,CAAAC,IAAA,CAAAnE,CAAA,cAAAoE,cAAAnE,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAAoE,UAAA,QAAArE,CAAA,CAAAvH,IAAA,oBAAAuH,CAAA,CAAAyB,GAAA,EAAAxB,CAAA,CAAAoE,UAAA,GAAArE,CAAA,aAAAsB,QAAArB,CAAA,SAAAiE,UAAA,MAAAJ,MAAA,aAAA7D,CAAA,CAAAjB,OAAA,CAAA6E,YAAA,cAAAS,KAAA,iBAAAjC,OAAArC,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAS,CAAA,OAAAP,CAAA,SAAAA,CAAA,CAAAwB,IAAA,CAAA1B,CAAA,4BAAAA,CAAA,CAAA2D,IAAA,SAAA3D,CAAA,OAAApL,KAAA,CAAAoL,CAAA,CAAA1L,MAAA,SAAAgM,CAAA,OAAA7L,CAAA,YAAAkP,KAAA,aAAArD,CAAA,GAAAN,CAAA,CAAA1L,MAAA,OAAA8L,CAAA,CAAAsB,IAAA,CAAA1B,CAAA,EAAAM,CAAA,UAAAqD,IAAA,CAAAzP,KAAA,GAAA8L,CAAA,CAAAM,CAAA,GAAAqD,IAAA,CAAAV,IAAA,OAAAU,IAAA,SAAAA,IAAA,CAAAzP,KAAA,GAAA+L,CAAA,EAAA0D,IAAA,CAAAV,IAAA,OAAAU,IAAA,YAAAlP,CAAA,CAAAkP,IAAA,GAAAlP,CAAA,gBAAAgP,SAAA,CAAAd,aAAA,CAAA3C,CAAA,kCAAAgC,iBAAA,CAAA7B,SAAA,GAAA8B,0BAAA,EAAA3B,CAAA,CAAAgC,CAAA,mBAAApO,KAAA,EAAA+N,0BAAA,EAAAhB,YAAA,SAAAX,CAAA,CAAA2B,0BAAA,mBAAA/N,KAAA,EAAA8N,iBAAA,EAAAf,YAAA,SAAAe,iBAAA,CAAAuC,WAAA,GAAAxD,MAAA,CAAAkB,0BAAA,EAAApB,CAAA,wBAAAb,CAAA,CAAAwE,mBAAA,aAAAvE,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAwE,WAAA,WAAAzE,CAAA,KAAAA,CAAA,KAAAgC,iBAAA,6BAAAhC,CAAA,CAAAuE,WAAA,IAAAvE,CAAA,CAAA0E,IAAA,OAAA1E,CAAA,CAAA2E,IAAA,aAAA1E,CAAA,WAAAxJ,MAAA,CAAAmO,cAAA,GAAAnO,MAAA,CAAAmO,cAAA,CAAA3E,CAAA,EAAAgC,0BAAA,KAAAhC,CAAA,CAAA4E,SAAA,GAAA5C,0BAAA,EAAAlB,MAAA,CAAAd,CAAA,EAAAY,CAAA,yBAAAZ,CAAA,CAAAE,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAAiB,CAAA,GAAArC,CAAA,KAAAD,CAAA,CAAA8E,KAAA,aAAA7E,CAAA,aAAA4C,OAAA,EAAA5C,CAAA,OAAAsC,qBAAA,CAAAE,aAAA,CAAAtC,SAAA,GAAAY,MAAA,CAAA0B,aAAA,CAAAtC,SAAA,EAAAQ,CAAA,iCAAAX,CAAA,CAAAyC,aAAA,GAAAA,aAAA,EAAAzC,CAAA,CAAA+E,KAAA,aAAA9E,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAA7L,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAAuQ,OAAA,OAAAvE,CAAA,OAAAgC,aAAA,CAAAtB,IAAA,CAAAlB,CAAA,EAAAC,CAAA,EAAAE,CAAA,EAAAE,CAAA,GAAA7L,CAAA,UAAAuL,CAAA,CAAAwE,mBAAA,CAAAtE,CAAA,IAAAO,CAAA,GAAAA,CAAA,CAAAkD,IAAA,GAAAb,IAAA,WAAA7C,CAAA,WAAAA,CAAA,CAAAgD,IAAA,GAAAhD,CAAA,CAAA/L,KAAA,GAAAuM,CAAA,CAAAkD,IAAA,WAAApB,qBAAA,CAAAD,CAAA,GAAAvB,MAAA,CAAAuB,CAAA,EAAAzB,CAAA,gBAAAE,MAAA,CAAAuB,CAAA,EAAA7B,CAAA,iCAAAM,MAAA,CAAAuB,CAAA,6DAAAtC,CAAA,CAAAtJ,IAAA,aAAAuJ,CAAA,QAAAD,CAAA,GAAAvJ,MAAA,CAAAwJ,CAAA,GAAAC,CAAA,gBAAAE,CAAA,IAAAJ,CAAA,EAAAE,CAAA,CAAAiE,IAAA,CAAA/D,CAAA,UAAAF,CAAA,CAAA+E,OAAA,aAAAtB,KAAA,WAAAzD,CAAA,CAAA5L,MAAA,SAAA2L,CAAA,GAAAC,CAAA,CAAAgF,GAAA,QAAAjF,CAAA,IAAAD,CAAA,SAAA2D,IAAA,CAAAzP,KAAA,GAAA+L,CAAA,EAAA0D,IAAA,CAAAV,IAAA,OAAAU,IAAA,WAAAA,IAAA,CAAAV,IAAA,OAAAU,IAAA,QAAA3D,CAAA,CAAAqC,MAAA,GAAAA,MAAA,EAAAf,OAAA,CAAAnB,SAAA,KAAAsE,WAAA,EAAAnD,OAAA,EAAAgD,KAAA,WAAAA,MAAAtE,CAAA,aAAAmF,IAAA,WAAAxB,IAAA,WAAAN,IAAA,QAAAC,KAAA,GAAArD,CAAA,OAAAgD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAAzB,GAAA,GAAAxB,CAAA,OAAAiE,UAAA,CAAAlF,OAAA,CAAAoF,aAAA,IAAApE,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAAkF,MAAA,OAAAhF,CAAA,CAAAsB,IAAA,OAAAxB,CAAA,MAAAtL,KAAA,EAAAsL,CAAA,CAAAmF,KAAA,cAAAnF,CAAA,IAAAD,CAAA,MAAAqF,IAAA,WAAAA,KAAA,SAAArC,IAAA,WAAAhD,CAAA,QAAAiE,UAAA,IAAAG,UAAA,kBAAApE,CAAA,CAAAxH,IAAA,QAAAwH,CAAA,CAAAwB,GAAA,cAAA8D,IAAA,KAAAhC,iBAAA,WAAAA,kBAAAvD,CAAA,aAAAiD,IAAA,QAAAjD,CAAA,MAAAE,CAAA,kBAAAsF,OAAApF,CAAA,EAAAE,CAAA,WAAAG,CAAA,CAAAhI,IAAA,YAAAgI,CAAA,CAAAgB,GAAA,GAAAzB,CAAA,EAAAE,CAAA,CAAAyD,IAAA,GAAAvD,CAAA,EAAAE,CAAA,KAAAJ,CAAA,CAAAgD,MAAA,WAAAhD,CAAA,CAAAuB,GAAA,GAAAxB,CAAA,KAAAK,CAAA,aAAAA,CAAA,QAAA4D,UAAA,CAAA5P,MAAA,MAAAgM,CAAA,SAAAA,CAAA,QAAA7L,CAAA,QAAAyP,UAAA,CAAA5D,CAAA,GAAAG,CAAA,GAAAhM,CAAA,CAAA4P,UAAA,iBAAA5P,CAAA,CAAAqP,MAAA,SAAA0B,MAAA,aAAA/Q,CAAA,CAAAqP,MAAA,SAAAqB,IAAA,QAAAxE,CAAA,GAAAP,CAAA,CAAAsB,IAAA,CAAAjN,CAAA,eAAAoM,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAAjN,CAAA,qBAAAkM,CAAA,IAAAE,CAAA,aAAAsE,IAAA,GAAA1Q,CAAA,CAAAsP,QAAA,SAAAyB,MAAA,CAAA/Q,CAAA,CAAAsP,QAAA,gBAAAoB,IAAA,GAAA1Q,CAAA,CAAAuP,UAAA,SAAAwB,MAAA,CAAA/Q,CAAA,CAAAuP,UAAA,cAAArD,CAAA,aAAAwE,IAAA,GAAA1Q,CAAA,CAAAsP,QAAA,SAAAyB,MAAA,CAAA/Q,CAAA,CAAAsP,QAAA,qBAAAlD,CAAA,QAAAmC,KAAA,qDAAAmC,IAAA,GAAA1Q,CAAA,CAAAuP,UAAA,SAAAwB,MAAA,CAAA/Q,CAAA,CAAAuP,UAAA,YAAAR,MAAA,WAAAA,OAAAvD,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAgE,UAAA,CAAA5P,MAAA,MAAA4L,CAAA,SAAAA,CAAA,QAAAI,CAAA,QAAA4D,UAAA,CAAAhE,CAAA,OAAAI,CAAA,CAAAwD,MAAA,SAAAqB,IAAA,IAAA/E,CAAA,CAAAsB,IAAA,CAAApB,CAAA,wBAAA6E,IAAA,GAAA7E,CAAA,CAAA0D,UAAA,QAAAvP,CAAA,GAAA6L,CAAA,aAAA7L,CAAA,iBAAAwL,CAAA,mBAAAA,CAAA,KAAAxL,CAAA,CAAAqP,MAAA,IAAA9D,CAAA,IAAAA,CAAA,IAAAvL,CAAA,CAAAuP,UAAA,KAAAvP,CAAA,cAAAgM,CAAA,GAAAhM,CAAA,GAAAA,CAAA,CAAA4P,UAAA,cAAA5D,CAAA,CAAAhI,IAAA,GAAAwH,CAAA,EAAAQ,CAAA,CAAAgB,GAAA,GAAAzB,CAAA,EAAAvL,CAAA,SAAAyO,MAAA,gBAAAS,IAAA,GAAAlP,CAAA,CAAAuP,UAAA,EAAAjC,CAAA,SAAA0D,QAAA,CAAAhF,CAAA,MAAAgF,QAAA,WAAAA,SAAAxF,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAAxH,IAAA,QAAAwH,CAAA,CAAAwB,GAAA,qBAAAxB,CAAA,CAAAxH,IAAA,mBAAAwH,CAAA,CAAAxH,IAAA,QAAAkL,IAAA,GAAA1D,CAAA,CAAAwB,GAAA,gBAAAxB,CAAA,CAAAxH,IAAA,SAAA8M,IAAA,QAAA9D,GAAA,GAAAxB,CAAA,CAAAwB,GAAA,OAAAyB,MAAA,kBAAAS,IAAA,yBAAA1D,CAAA,CAAAxH,IAAA,IAAAuH,CAAA,UAAA2D,IAAA,GAAA3D,CAAA,GAAA+B,CAAA,KAAA2D,MAAA,WAAAA,OAAAzF,CAAA,aAAAD,CAAA,QAAAkE,UAAA,CAAA5P,MAAA,MAAA0L,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAgE,UAAA,CAAAlE,CAAA,OAAAE,CAAA,CAAA8D,UAAA,KAAA/D,CAAA,cAAAwF,QAAA,CAAAvF,CAAA,CAAAmE,UAAA,EAAAnE,CAAA,CAAA+D,QAAA,GAAAG,aAAA,CAAAlE,CAAA,GAAA6B,CAAA,yBAAA4D,OAAA1F,CAAA,aAAAD,CAAA,QAAAkE,UAAA,CAAA5P,MAAA,MAAA0L,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAgE,UAAA,CAAAlE,CAAA,OAAAE,CAAA,CAAA4D,MAAA,KAAA7D,CAAA,QAAAG,CAAA,GAAAF,CAAA,CAAAmE,UAAA,kBAAAjE,CAAA,CAAA3H,IAAA,QAAA6H,CAAA,GAAAF,CAAA,CAAAqB,GAAA,EAAA2C,aAAA,CAAAlE,CAAA,YAAAI,CAAA,YAAA0C,KAAA,8BAAA4C,aAAA,WAAAA,cAAA5F,CAAA,EAAAE,CAAA,EAAAE,CAAA,gBAAA+C,QAAA,KAAAzC,QAAA,EAAA2B,MAAA,CAAArC,CAAA,GAAA0D,UAAA,EAAAxD,CAAA,EAAA0D,OAAA,EAAAxD,CAAA,oBAAA8C,MAAA,UAAAzB,GAAA,GAAAxB,CAAA,GAAA8B,CAAA,OAAA/B,CAAA;AAAA,SAAA8U,gBAAAA,CAAA7U,CAAA,EAAAK,CAAA,EAAAN,CAAA,WAAAM,CAAA,GAAA2U,qBAAA,CAAA3U,CAAA,GAAA4U,gCAAA,CAAAjV,CAAA,EAAAkV,+BAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA/U,CAAA,EAAAN,CAAA,QAAAiV,qBAAA,CAAAhV,CAAA,EAAAwE,WAAA,IAAAnE,CAAA,CAAA0F,KAAA,CAAA/F,CAAA,EAAAD,CAAA;AAAA,SAAAkV,gCAAAA,CAAAjV,CAAA,EAAAD,CAAA,QAAAA,CAAA,iBAAA2C,aAAA,CAAA3C,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAAyD,SAAA,qEAAA6R,4BAAA,CAAArV,CAAA;AAAA,SAAAqV,4BAAAA,CAAAtV,CAAA,mBAAAA,CAAA,YAAAuV,cAAA,sEAAAvV,CAAA;AAAA,SAAAgV,mBAAAA,CAAA/U,CAAA,EAAAK,CAAA,EAAAN,CAAA,EAAAE,CAAA,QAAAgC,CAAA,GAAAsT,UAAA,CAAAP,qBAAA,KAAA/U,CAAA,GAAAD,CAAA,CAAAE,SAAA,GAAAF,CAAA,GAAAK,CAAA,EAAAN,CAAA,cAAAE,CAAA,yBAAAgC,CAAA,aAAAjC,CAAA,WAAAiC,CAAA,CAAA8D,KAAA,CAAAhG,CAAA,EAAAC,CAAA,OAAAiC,CAAA;AAAA,SAAAsT,UAAAA,CAAA,WAAAA,UAAA,yBAAAJ,OAAA,IAAAA,OAAA,CAAAK,GAAA,GAAAL,OAAA,CAAAK,GAAA,CAAAC,IAAA,eAAA1V,CAAA,EAAAC,CAAA,EAAAC,CAAA,QAAAgC,CAAA,GAAAyT,oBAAA,CAAA3V,CAAA,EAAAC,CAAA,OAAAiC,CAAA,QAAA9B,CAAA,GAAA3J,MAAA,CAAAsP,wBAAA,CAAA7D,CAAA,EAAAjC,CAAA,UAAAG,CAAA,CAAAqV,GAAA,GAAArV,CAAA,CAAAqV,GAAA,CAAA/T,IAAA,CAAAjK,SAAA,CAAAnD,MAAA,OAAA0L,CAAA,GAAAE,CAAA,IAAAE,CAAA,CAAAlM,KAAA,OAAAshB,UAAA,CAAAxP,KAAA,OAAAvO,SAAA;AAAA,SAAAke,oBAAAA,CAAA1V,CAAA,EAAAK,CAAA,eAAAD,cAAA,CAAAqB,IAAA,CAAAzB,CAAA,EAAAK,CAAA,eAAAL,CAAA,GAAAgV,qBAAA,CAAAhV,CAAA,aAAAA,CAAA;AAAA,SAAA8U,eAAAA,CAAA9U,CAAA,EAAAD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAAyD,SAAA,wDAAAxD,CAAA,CAAAE,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAArB,CAAA,IAAAA,CAAA,CAAAG,SAAA,IAAAsE,WAAA,IAAAvQ,KAAA,EAAA+L,CAAA,EAAAiB,QAAA,MAAAD,YAAA,WAAAxK,MAAA,CAAA8J,cAAA,CAAAN,CAAA,iBAAAiB,QAAA,SAAAlB,CAAA,IAAA4V,qBAAA,CAAA3V,CAAA,EAAAD,CAAA;AAAA,SAAA6V,iBAAA5V,CAAA,QAAAC,CAAA,wBAAA4V,GAAA,OAAAA,GAAA,oBAAAD,gBAAA,YAAAA,iBAAA5V,CAAA,iBAAAA,CAAA,KAAA8V,iBAAA,CAAA9V,CAAA,UAAAA,CAAA,2BAAAA,CAAA,YAAAwD,SAAA,uEAAAvD,CAAA,QAAAA,CAAA,CAAA8V,GAAA,CAAA/V,CAAA,UAAAC,CAAA,CAAAuV,GAAA,CAAAxV,CAAA,GAAAC,CAAA,CAAA+V,GAAA,CAAAhW,CAAA,EAAAiW,OAAA,cAAAA,QAAA,WAAAC,UAAA,CAAAlW,CAAA,EAAAxI,SAAA,EAAAwd,qBAAA,OAAAxQ,WAAA,YAAAyR,OAAA,CAAA/V,SAAA,GAAA1J,MAAA,CAAA4K,MAAA,CAAApB,CAAA,CAAAE,SAAA,IAAAsE,WAAA,IAAAvQ,KAAA,EAAAgiB,OAAA,EAAAlV,UAAA,MAAAE,QAAA,MAAAD,YAAA,WAAA2U,qBAAA,CAAAM,OAAA,EAAAjW,CAAA,MAAA4V,gBAAA,CAAA5V,CAAA;AAAA,SAAAkW,WAAAlW,CAAA,EAAAD,CAAA,EAAAE,CAAA,QAAAiV,+BAAA,WAAAC,OAAA,CAAAC,SAAA,CAAArP,KAAA,OAAAvO,SAAA,OAAA6I,CAAA,WAAAA,CAAA,CAAA6D,IAAA,CAAA6B,KAAA,CAAA1F,CAAA,EAAAN,CAAA,OAAAkC,CAAA,QAAAjC,CAAA,CAAAyV,IAAA,CAAA1P,KAAA,CAAA/F,CAAA,EAAAK,CAAA,aAAAJ,CAAA,IAAA0V,qBAAA,CAAA1T,CAAA,EAAAhC,CAAA,CAAAC,SAAA,GAAA+B,CAAA;AAAA,SAAAiT,+BAAAA,CAAA,cAAAlV,CAAA,IAAAmW,OAAA,CAAAjW,SAAA,CAAAkW,OAAA,CAAA3U,IAAA,CAAA0T,OAAA,CAAAC,SAAA,CAAAe,OAAA,iCAAAnW,CAAA,aAAAkV,+BAAA,YAAAA,0BAAA,aAAAlV,CAAA;AAAA,SAAA8V,kBAAA9V,CAAA,wBAAAqW,QAAA,CAAA3N,QAAA,CAAAjH,IAAA,CAAAzB,CAAA,EAAAsW,OAAA,4BAAAnW,CAAA,gCAAAH,CAAA;AAAA,SAAA2V,qBAAAA,CAAA3V,CAAA,EAAAD,CAAA,WAAA4V,qBAAA,GAAAnf,MAAA,CAAAmO,cAAA,GAAAnO,MAAA,CAAAmO,cAAA,CAAA8Q,IAAA,eAAAzV,CAAA,EAAAD,CAAA,WAAAC,CAAA,CAAA4E,SAAA,GAAA7E,CAAA,EAAAC,CAAA,KAAA2V,qBAAA,CAAA3V,CAAA,EAAAD,CAAA;AAAA,SAAAiV,qBAAAA,CAAAhV,CAAA,WAAAgV,qBAAA,GAAAxe,MAAA,CAAAmO,cAAA,GAAAnO,MAAA,CAAA0L,cAAA,CAAAuT,IAAA,eAAAzV,CAAA,WAAAA,CAAA,CAAA4E,SAAA,IAAApO,MAAA,CAAA0L,cAAA,CAAAlC,CAAA,MAAAgV,qBAAA,CAAAhV,CAAA;AAAA,SAAAlM,qBAAAA,CAAA0M,CAAA,EAAAL,CAAA,UAAAK,CAAA,YAAAL,CAAA,aAAAqD,SAAA;AAAA,SAAAgD,uBAAAA,CAAAzG,CAAA,EAAAE,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAA5L,MAAA,EAAA2L,CAAA,UAAAK,CAAA,GAAAJ,CAAA,CAAAD,CAAA,GAAAK,CAAA,CAAAU,UAAA,GAAAV,CAAA,CAAAU,UAAA,QAAAV,CAAA,CAAAW,YAAA,kBAAAX,CAAA,KAAAA,CAAA,CAAAY,QAAA,QAAAzK,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAoG,oBAAA,CAAA9F,CAAA,CAAArM,GAAA,GAAAqM,CAAA;AAAA,SAAAtM,kBAAAA,CAAAgM,CAAA,EAAAE,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAAuG,uBAAA,CAAAzG,CAAA,CAAAG,SAAA,EAAAD,CAAA,GAAAD,CAAA,IAAAwG,uBAAA,CAAAzG,CAAA,EAAAC,CAAA,GAAAxJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,iBAAAkB,QAAA,SAAAlB,CAAA;AAAA,SAAA6F,cAAAA,CAAA7F,CAAA,EAAAE,CAAA,QAAAD,CAAA,GAAAxJ,MAAA,CAAAC,IAAA,CAAAsJ,CAAA,OAAAvJ,MAAA,CAAAqP,qBAAA,QAAAxF,CAAA,GAAA7J,MAAA,CAAAqP,qBAAA,CAAA9F,CAAA,GAAAE,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAArG,MAAA,WAAAiG,CAAA,WAAAzJ,MAAA,CAAAsP,wBAAA,CAAA/F,CAAA,EAAAE,CAAA,EAAAc,UAAA,OAAAf,CAAA,CAAAkE,IAAA,CAAA6B,KAAA,CAAA/F,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAAgG,mBAAAA,CAAAjG,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAAzI,SAAA,CAAAnD,MAAA,EAAA4L,CAAA,UAAAD,CAAA,WAAAxI,SAAA,CAAAyI,CAAA,IAAAzI,SAAA,CAAAyI,CAAA,QAAAA,CAAA,OAAA2F,cAAA,CAAApP,MAAA,CAAAwJ,CAAA,OAAAjB,OAAA,WAAAkB,CAAA,IAAA1C,qBAAA,CAAAwC,CAAA,EAAAE,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAzJ,MAAA,CAAAyP,yBAAA,GAAAzP,MAAA,CAAA0P,gBAAA,CAAAnG,CAAA,EAAAvJ,MAAA,CAAAyP,yBAAA,CAAAjG,CAAA,KAAA4F,cAAA,CAAApP,MAAA,CAAAwJ,CAAA,GAAAjB,OAAA,WAAAkB,CAAA,IAAAzJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAE,CAAA,EAAAzJ,MAAA,CAAAsP,wBAAA,CAAA9F,CAAA,EAAAC,CAAA,iBAAAF,CAAA;AAAA,SAAAxC,qBAAAA,CAAAwC,CAAA,EAAAE,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAAkG,oBAAA,CAAAlG,CAAA,MAAAF,CAAA,GAAAvJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAE,CAAA,IAAAhM,KAAA,EAAA+L,CAAA,EAAAe,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAlB,CAAA,CAAAE,CAAA,IAAAD,CAAA,EAAAD,CAAA;AAAA,SAAAoG,oBAAAA,CAAAnG,CAAA,QAAAxL,CAAA,GAAAiS,kBAAA,CAAAzG,CAAA,gCAAA0C,aAAA,CAAAlO,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAiS,kBAAAA,CAAAzG,CAAA,EAAAC,CAAA,oBAAAyC,aAAA,CAAA1C,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAO,MAAA,CAAAmG,WAAA,kBAAA3G,CAAA,QAAAvL,CAAA,GAAAuL,CAAA,CAAA0B,IAAA,CAAAzB,CAAA,EAAAC,CAAA,gCAAAyC,aAAA,CAAAlO,CAAA,UAAAA,CAAA,YAAAgP,SAAA,yEAAAvD,CAAA,GAAA0G,MAAA,GAAAC,MAAA,EAAA5G,CAAA;AAAA,SAAAuW,SAAAtW,CAAA,WAAAuW,eAAA,CAAAvW,CAAA,KAAAwW,gBAAA,CAAAxW,CAAA,KAAAyW,2BAAA,CAAAzW,CAAA,KAAA0W,gBAAA;AAAA,SAAAC,mBAAA3W,CAAA,WAAA4W,kBAAA,CAAA5W,CAAA,KAAAwW,gBAAA,CAAAxW,CAAA,KAAAyW,2BAAA,CAAAzW,CAAA,KAAA6W,kBAAA;AAAA,SAAAA,mBAAA,cAAAtT,SAAA;AAAA,SAAAiT,iBAAAxW,CAAA,8BAAAM,MAAA,YAAAN,CAAA,CAAAM,MAAA,CAAAE,QAAA,aAAAR,CAAA,uBAAA8W,KAAA,CAAAC,IAAA,CAAA/W,CAAA;AAAA,SAAA4W,mBAAA5W,CAAA,QAAA8W,KAAA,CAAAE,OAAA,CAAAhX,CAAA,UAAAiX,iBAAA,CAAAjX,CAAA;AAAA,SAAAmG,yBAAAA,CAAAjG,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAG,CAAA,EAAAE,CAAA,cAAAlM,CAAA,GAAA2L,CAAA,CAAAK,CAAA,EAAAE,CAAA,GAAAE,CAAA,GAAApM,CAAA,CAAAP,KAAA,WAAAkM,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAA3L,CAAA,CAAAwO,IAAA,GAAAhD,CAAA,CAAAY,CAAA,IAAAmE,OAAA,CAAApC,OAAA,CAAA/B,CAAA,EAAAiC,IAAA,CAAA5C,CAAA,EAAAI,CAAA;AAAA,SAAAgG,uBAAAA,CAAAlG,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAvI,SAAA,aAAAuN,OAAA,WAAA9E,CAAA,EAAAI,CAAA,QAAAG,CAAA,GAAAL,CAAA,CAAA4F,KAAA,CAAA/F,CAAA,EAAAD,CAAA,YAAAuG,MAAAnG,CAAA,IAAAiG,yBAAA,CAAA5F,CAAA,EAAAP,CAAA,EAAAI,CAAA,EAAAiG,KAAA,EAAAC,MAAA,UAAApG,CAAA,cAAAoG,OAAApG,CAAA,IAAAiG,yBAAA,CAAA5F,CAAA,EAAAP,CAAA,EAAAI,CAAA,EAAAiG,KAAA,EAAAC,MAAA,WAAApG,CAAA,KAAAmG,KAAA;AAAA,SAAA6Q,eAAAlX,CAAA,EAAAF,CAAA,WAAAyW,eAAA,CAAAvW,CAAA,KAAAmX,qBAAA,CAAAnX,CAAA,EAAAF,CAAA,KAAA2W,2BAAA,CAAAzW,CAAA,EAAAF,CAAA,KAAA4W,gBAAA;AAAA,SAAAA,iBAAA,cAAAnT,SAAA;AAAA,SAAA4T,sBAAAnX,CAAA,EAAA0B,CAAA,QAAA3B,CAAA,WAAAC,CAAA,gCAAAM,MAAA,IAAAN,CAAA,CAAAM,MAAA,CAAAE,QAAA,KAAAR,CAAA,4BAAAD,CAAA,QAAAD,CAAA,EAAAI,CAAA,EAAA3L,CAAA,EAAAoM,CAAA,EAAAJ,CAAA,OAAAoB,CAAA,OAAAvB,CAAA,iBAAA7L,CAAA,IAAAwL,CAAA,GAAAA,CAAA,CAAAyB,IAAA,CAAAxB,CAAA,GAAAyD,IAAA,QAAA/B,CAAA,QAAAnL,MAAA,CAAAwJ,CAAA,MAAAA,CAAA,UAAA4B,CAAA,uBAAAA,CAAA,IAAA7B,CAAA,GAAAvL,CAAA,CAAAiN,IAAA,CAAAzB,CAAA,GAAAgD,IAAA,MAAAxC,CAAA,CAAA0D,IAAA,CAAAnE,CAAA,CAAA9L,KAAA,GAAAuM,CAAA,CAAAnM,MAAA,KAAAsN,CAAA,GAAAC,CAAA,iBAAA3B,CAAA,IAAAI,CAAA,OAAAF,CAAA,GAAAF,CAAA,yBAAA2B,CAAA,YAAA5B,CAAA,eAAAY,CAAA,GAAAZ,CAAA,cAAAxJ,MAAA,CAAAoK,CAAA,MAAAA,CAAA,2BAAAP,CAAA,QAAAF,CAAA,aAAAK,CAAA;AAAA,SAAAgW,gBAAAvW,CAAA,QAAA8W,KAAA,CAAAE,OAAA,CAAAhX,CAAA,UAAAA,CAAA;AAAA,SAAAoX,2BAAApX,CAAA,EAAAF,CAAA,QAAAC,CAAA,yBAAAO,MAAA,IAAAN,CAAA,CAAAM,MAAA,CAAAE,QAAA,KAAAR,CAAA,qBAAAD,CAAA,QAAA+W,KAAA,CAAAE,OAAA,CAAAhX,CAAA,MAAAD,CAAA,GAAA0W,2BAAA,CAAAzW,CAAA,MAAAF,CAAA,IAAAE,CAAA,uBAAAA,CAAA,CAAA5L,MAAA,IAAA2L,CAAA,KAAAC,CAAA,GAAAD,CAAA,OAAAsX,GAAA,MAAAC,CAAA,YAAAA,EAAA,eAAA1V,CAAA,EAAA0V,CAAA,EAAApX,CAAA,WAAAA,EAAA,WAAAmX,GAAA,IAAArX,CAAA,CAAA5L,MAAA,KAAA2O,IAAA,WAAAA,IAAA,MAAA/O,KAAA,EAAAgM,CAAA,CAAAqX,GAAA,UAAAvX,CAAA,WAAAA,EAAAE,CAAA,UAAAA,CAAA,KAAA2B,CAAA,EAAA2V,CAAA,gBAAA/T,SAAA,iJAAAnD,CAAA,EAAAG,CAAA,OAAAI,CAAA,gBAAAiB,CAAA,WAAAA,EAAA,IAAA7B,CAAA,GAAAA,CAAA,CAAAyB,IAAA,CAAAxB,CAAA,MAAAE,CAAA,WAAAA,EAAA,QAAAF,CAAA,GAAAD,CAAA,CAAA0D,IAAA,WAAAlD,CAAA,GAAAP,CAAA,CAAA+C,IAAA,EAAA/C,CAAA,KAAAF,CAAA,WAAAA,EAAAE,CAAA,IAAAW,CAAA,OAAAP,CAAA,GAAAJ,CAAA,KAAA2B,CAAA,WAAAA,EAAA,UAAApB,CAAA,YAAAR,CAAA,cAAAA,CAAA,8BAAAY,CAAA,QAAAP,CAAA;AAAA,SAAAqW,4BAAAzW,CAAA,EAAAO,CAAA,QAAAP,CAAA,2BAAAA,CAAA,SAAAiX,iBAAA,CAAAjX,CAAA,EAAAO,CAAA,OAAAR,CAAA,MAAA0I,QAAA,CAAAjH,IAAA,CAAAxB,CAAA,EAAAmF,KAAA,6BAAApF,CAAA,IAAAC,CAAA,CAAAuE,WAAA,KAAAxE,CAAA,GAAAC,CAAA,CAAAuE,WAAA,CAAAC,IAAA,aAAAzE,CAAA,cAAAA,CAAA,GAAA+W,KAAA,CAAAC,IAAA,CAAA/W,CAAA,oBAAAD,CAAA,+CAAAwX,IAAA,CAAAxX,CAAA,IAAAkX,iBAAA,CAAAjX,CAAA,EAAAO,CAAA;AAAA,SAAA0W,kBAAAjX,CAAA,EAAAO,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAP,CAAA,CAAA5L,MAAA,MAAAmM,CAAA,GAAAP,CAAA,CAAA5L,MAAA,YAAA0L,CAAA,MAAAI,CAAA,GAAA4W,KAAA,CAAAvW,CAAA,GAAAT,CAAA,GAAAS,CAAA,EAAAT,CAAA,IAAAI,CAAA,CAAAJ,CAAA,IAAAE,CAAA,CAAAF,CAAA,UAAAI,CAAA;AAAA,SAAAuC,aAAAA,CAAArC,CAAA,sCAAAqC,aAAA,wBAAAnC,MAAA,uBAAAA,MAAA,CAAAE,QAAA,aAAAJ,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAE,MAAA,IAAAF,CAAA,CAAAmE,WAAA,KAAAjE,MAAA,IAAAF,CAAA,KAAAE,MAAA,CAAAL,SAAA,qBAAAG,CAAA,KAAAqC,aAAA,CAAArC,CAAA;AADA,IAAIoX,EAAE,GAAGjhB,MAAM,CAAC8J,cAAc;AAC9B,IAAIoX,EAAE,GAAG,SAALA,EAAEA,CAAI3X,CAAC,EAAK;EACd,MAAMyD,SAAS,CAACzD,CAAC,CAAC;AACpB,CAAC;AACD,IAAI4X,EAAE,GAAG,SAALA,EAAEA,CAAI5X,CAAC,EAAEC,CAAC,EAAEC,CAAC;EAAA,OAAKD,CAAC,IAAID,CAAC,GAAG0X,EAAE,CAAC1X,CAAC,EAAEC,CAAC,EAAE;IAAEe,UAAU,EAAE,CAAC,CAAC;IAAEC,YAAY,EAAE,CAAC,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEhN,KAAK,EAAEgM;EAAE,CAAC,CAAC,GAAGF,CAAC,CAACC,CAAC,CAAC,GAAGC,CAAC;AAAA;AAChH,IAAI2X,EAAE,GAAG,SAALA,EAAEA,CAAI7X,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAA,OAAK0X,EAAE,CAAC5X,CAAC,EAAE2C,aAAA,CAAO1C,CAAC,KAAI,QAAQ,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC,EAAEC,CAAC,CAAC;EAAA;EAAE4X,EAAE,GAAG,SAALA,EAAEA,CAAI9X,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAA,OAAKD,CAAC,CAAC+V,GAAG,CAAChW,CAAC,CAAC,IAAI2X,EAAE,CAAC,SAAS,GAAGzX,CAAC,CAAC;EAAA;AAClH,IAAI6X,CAAC,GAAG,SAAJA,CAACA,CAAI/X,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAA,OAAM4X,EAAE,CAAC9X,CAAC,EAAEC,CAAC,EAAE,yBAAyB,CAAC,EAAEC,CAAC,GAAGA,CAAC,CAACwB,IAAI,CAAC1B,CAAC,CAAC,GAAGC,CAAC,CAACwV,GAAG,CAACzV,CAAC,CAAC;EAAA,CAAC;EAAEgY,EAAE,GAAG,SAALA,EAAEA,CAAIhY,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAA,OAAKD,CAAC,CAAC+V,GAAG,CAAChW,CAAC,CAAC,GAAG2X,EAAE,CAAC,mDAAmD,CAAC,GAAG1X,CAAC,YAAYgY,OAAO,GAAGhY,CAAC,CAACtE,GAAG,CAACqE,CAAC,CAAC,GAAGC,CAAC,CAACgW,GAAG,CAACjW,CAAC,EAAEE,CAAC,CAAC;EAAA;EAAEgY,EAAE,GAAG,SAALA,EAAEA,CAAIlY,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC;IAAA,OAAMkW,EAAE,CAAC9X,CAAC,EAAEC,CAAC,EAAE,wBAAwB,CAAC,EAAE2B,CAAC,GAAGA,CAAC,CAACF,IAAI,CAAC1B,CAAC,EAAEE,CAAC,CAAC,GAAGD,CAAC,CAACgW,GAAG,CAACjW,CAAC,EAAEE,CAAC,CAAC,EAAEA,CAAC;EAAA,CAAC;AACxT,IAAMiY,EAAE,u0DACP;EAAEC,EAAE,GAAG,QAAOC,IAAI,iCAAA1V,aAAA,CAAJ0V,IAAI,KAAG,GAAG,IAAIA,IAAI,CAACC,IAAI,IAAI,IAAIA,IAAI,CAAC,CAACH,EAAE,CAAC,EAAE;IAAE1f,IAAI,EAAE;EAAgC,CAAC,CAAC;AACnG,SAAS8f,EAAEA,CAACvY,CAAC,EAAE;EACb,IAAIC,CAAC;EACL,IAAI;IACF,IAAIA,CAAC,GAAGmY,EAAE,IAAI,CAACC,IAAI,CAACG,GAAG,IAAIH,IAAI,CAACI,SAAS,EAAEC,eAAe,CAACN,EAAE,CAAC,EAAE,CAACnY,CAAC,EAAE,MAAM,EAAE;IAC5E,IAAMC,CAAC,GAAG,IAAIyY,MAAM,CAAC1Y,CAAC,EAAE;MACtByE,IAAI,EAAE1E,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC0E;IAC/B,CAAC,CAAC;IACF,OAAOxE,CAAC,CAACd,gBAAgB,CAAC,OAAO,EAAE,YAAM;MACvC,CAACiZ,IAAI,CAACG,GAAG,IAAIH,IAAI,CAACI,SAAS,EAAEG,eAAe,CAAC3Y,CAAC,CAAC;IACjD,CAAC,CAAC,EAAEC,CAAC;EACP,CAAC,CAAC,OAAA2Y,OAAA,EAAM;IACN,OAAO,IAAIF,MAAM,CACf,qCAAqC,GAAGG,kBAAkB,CAACX,EAAE,CAAC,EAC9D;MACEzT,IAAI,EAAE1E,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC0E;IAC/B,CACF,CAAC;EACH,CAAC,SAAS;IACRzE,CAAC,IAAI,CAACoY,IAAI,CAACG,GAAG,IAAIH,IAAI,CAACI,SAAS,EAAEG,eAAe,CAAC3Y,CAAC,CAAC;EACtD;AACF;AACA,IAAM8Y,EAAE,GAAG,GAAG;AACd,IAAIC,EAAE;AACN,QAAOnQ,MAAM,iCAAAlG,aAAA,CAANkG,MAAM,KAAG,GAAG,IAAI,EAAAoQ,KAAA,GAAC,CAACD,EAAE,IAAAE,gBAAA,GAAGrQ,MAAM,CAACsQ,QAAQ,cAAAD,gBAAA,cAAAA,gBAAA,GAAKrQ,MAAM,CAACsQ,QAAQ,GAAG,CAAC,CAAE,EAAE/W,CAAC,cAAA6W,KAAA,cAAAA,KAAA,GAAKD,EAAE,CAAC5W,CAAC,GAAG,eAAgB,IAAIgX,GAAG,CAAC,CAAC,EAAGzd,GAAG,CAACod,EAAE,CAAC;AACzH,IAAMM,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,EAAE;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,GAAG;EAAEC,EAAE,GAAG,IAAI;EAAEC,EAAE,GAAG,GAAG;EAAEC,EAAE,GAAG,CAAC,CAAC;EAAEC,CAAC,GAAGvZ,MAAM,CAAC,CAAC;EAAEwZ,EAAE,GAAG,8BAA8B;EAAEC,EAAE,GAAG,CAAC,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,EAAE;EAAEC,EAAE,GAAG,EAAE;EAAEC,EAAE,GAAG,EAAE;EAAEC,EAAE,GAAG,GAAG;EAAEC,EAAE,GAAG,GAAG;EAAEC,EAAE,GAAG,GAAG;EAAEC,CAAC,GAAG,IAAI;EAAEC,EAAE,GAAG,IAAI;EAAEC,EAAE,GAAG,IAAI;EAAEC,EAAE,GAAG,IAAI;EAAEC,EAAE,GAAG,KAAK;EAAEC,EAAE,GAAG,KAAK;EAAEC,EAAE,GAAG,KAAK;EAAEC,EAAE,GAAG,CAAC,IAAI,EAAE;EAAEC,EAAE,GAAG,CAAC,IAAI,EAAE;EAAEC,EAAE,GAAG5a,MAAM,CAAC,QAAQ,CAAC;EAAE6a,EAAE,GAAG7a,MAAM,CAAC,cAAc,CAAC;EAAE8a,EAAE,GAAG9a,MAAM,CAAC,EAAE,CAAC;AAC1Z,IAAI+a,EAAE,GAAGvE,KAAK,CAACE,OAAO;EAAEsE,EAAE,GAAGxE,KAAK,CAAC7W,SAAS,CAACoW,OAAO;EAAEkF,EAAE,GAAGzE,KAAK,CAACC,IAAI;EAAEyE,EAAE,GAAGjlB,MAAM,CAACC,IAAI;EAAEilB,EAAE,GAAGllB,MAAM,CAAC8J,cAAc;EAAEqb,EAAE,GAAGnlB,MAAM,CAACsP,wBAAwB;EAAE8V,EAAE,GAAGplB,MAAM,CAACyP,yBAAyB;EAAE4V,EAAE,GAAGrlB,MAAM,CAAC0J,SAAS;EAAE4b,EAAE,GAAG/E,KAAK,CAAC7W,SAAS;EAAE6b,EAAE,GAAGvlB,MAAM,CAAC0L,cAAc;AACzQ,SAAS8Z,EAAEA,CAACjc,CAAC,EAAE;EACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,CAAC,CAAC1L,MAAM,EAAE2L,CAAC,EAAE,EAC/BD,CAAC,CAACC,CAAC,CAAC,CAAC,CAAC;AACV;AACA,IAAMic,EAAE,GAAG,QAAOC,mBAAmB,iCAAAxZ,aAAA,CAAnBwZ,mBAAmB,KAAG,GAAG,GAAG,UAACnc,CAAC;EAAA,OAAKoc,UAAU,CAACpc,CAAC,EAAE,CAAC,CAAC;AAAA,IAAGmc,mBAAmB;AAC3F,IAAIE,EAAE,GAAG,EAAE;EAAEC,EAAE,GAAG,EAAE;AACpB,SAASC,EAAEA,CAAA,EAAG;EACZ,IAAIvc,CAAC,GAAGqc,EAAE;EACVA,EAAE,GAAG,EAAE,EAAEJ,EAAE,CAACjc,CAAC,CAAC;AAChB;AACA,SAASwc,EAAEA,CAAA,EAAG;EACZ,IAAIxc,CAAC,GAAGsc,EAAE;EACVA,EAAE,GAAG,EAAE,EAAEL,EAAE,CAACjc,CAAC,CAAC;AAChB;AACA,SAASyc,EAAEA,CAACzc,CAAC,EAAE;EACbqc,EAAE,CAAC/nB,MAAM,KAAK,CAAC,IAAIooB,cAAc,CAACH,EAAE,CAAC,EAAEF,EAAE,CAAClY,IAAI,CAACnE,CAAC,CAAC;AACnD;AACA,SAAS2c,EAAEA,CAAC3c,CAAC,EAAE;EACbsc,EAAE,CAAChoB,MAAM,KAAK,CAAC,IAAI4nB,EAAE,CAACM,EAAE,CAAC,EAAEF,EAAE,CAACnY,IAAI,CAACnE,CAAC,CAAC;AACvC;AACA,SAAS4c,EAAEA,CAAA,EAAG;EACZP,EAAE,CAAC/nB,MAAM,GAAG,CAAC,IAAIioB,EAAE,CAAC,CAAC,EAAED,EAAE,CAAChoB,MAAM,GAAG,CAAC,IAAIkoB,EAAE,CAAC,CAAC;AAC9C;AACA,SAASK,EAAEA,CAAC7c,CAAC,EAAE;EACb,OAAOA,CAAC,KAAK,IAAI,CAACoC,CAAC;AACrB;AACA,SAAS0a,EAAEA,CAAC9c,CAAC,EAAEC,CAAC,EAAE;EAChB,OAAOD,CAAC,IAAIA,CAAC,GAAGC,CAAC,IAAIA,CAAC,GAAGD,CAAC,KAAKC,CAAC,IAAID,CAAC,KAAK,IAAI,IAAI2C,aAAA,CAAO3C,CAAC,KAAI,QAAQ,IAAI,OAAOA,CAAC,IAAI,UAAU;AAClG;AACA,SAAS+c,EAAEA,CAAC/c,CAAC,EAAE;EACb,OAAO,CAAC8c,EAAE,CAAC9c,CAAC,EAAE,IAAI,CAACoC,CAAC,CAAC;AACvB;AACA,SAAS4a,EAAEA,CAAChd,CAAC,EAAE;EACb,MAAM,IAAIgD,KAAK,CAAC,yCAAyC,CAAC;AAC5D;AACA,SAASia,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIja,KAAK,CAAC,gDAAgD,CAAC;AACnE;AACA,SAASka,EAAEA,CAACld,CAAC,EAAE;EACb,MAAM,IAAIgD,KAAK,CAAC,oCAAoC,CAAC;AACvD;AACA,SAASma,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIna,KAAK,CAAC,mDAAmD,CAAC;AACtE;AACA,SAASoa,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIpa,KAAK,CAAC,uCAAuC,CAAC;AAC1D;AACA,SAASqa,EAAEA,CAACrd,CAAC,EAAE;EACb,MAAM,IAAIgD,KAAK,CAAC,0CAA0C,CAAC;AAC7D;AACA,SAASsa,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIta,KAAK,CAAC,8CAA8C,CAAC;AACjE;AACA,SAASua,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIva,KAAK,CAAC,4CAA4C,CAAC;AAC/D;AACA,SAASwa,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIxa,KAAK,CAAC,8CAA8C,CAAC;AACjE;AACA,SAASya,EAAEA,CAAA,EAAG;EACZ,MAAM,IAAIza,KAAK,CAAC,4CAA4C,CAAC;AAC/D;AACA,IAAI0a,EAAE,GAAG,CAAC,CAAC;AACX,SAASC,EAAEA,CAAC3d,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAG;IACN2B,CAAC,EAAE,CAAC;IACJ;IACAO,CAAC,EAAEpC,CAAC;IACJ4d,SAAS,EAAE,IAAI;IACfC,MAAM,EAAEhB,EAAE;IACViB,EAAE,EAAE,CAAC;IACLC,EAAE,EAAE;EACN,CAAC;EACD,OAAO7d,CAAC;AACV;AACA,SAAS8d,EAAEA,CAAChe,CAAC,EAAE;EACb,OAAO,eAAgBie,EAAE,CAACN,EAAE,CAAC3d,CAAC,CAAC,CAAC;AAClC;AACA;AACA,SAASke,EAAEA,CAACle,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACnB,IAAMyI,CAAC,GAAGyd,EAAE,CAAC3d,CAAC,CAAC;EACf,OAAOC,CAAC,KAAKC,CAAC,CAAC2d,MAAM,GAAGd,EAAE,CAAC,EAAE7c,CAAC;AAChC;AACA;AACA,SAAS+d,EAAEA,CAACje,CAAC,EAAE;EACb,OAAO5J,CAAC,KAAK,IAAI,IAAI,CAAC+nB,EAAE,IAAI,CAAC/nB,CAAC,CAACyL,CAAC,GAAGqY,EAAE,MAAM,CAAC,KAAKkE,EAAE,KAAK,IAAI,GAAGC,EAAE,CAAC,CAACre,CAAC,CAAC,CAAC,GAAGoe,EAAE,CAACja,IAAI,CAACnE,CAAC,CAAC,CAAC,EAAEA,CAAC;AACzF;AACA,SAASse,CAACA,CAACte,CAAC,EAAEC,CAAC,EAAE;EACf,OAAO7J,CAAC,KAAK,IAAI,IAAI,CAAC+nB,EAAE,IAAII,EAAE,CAAC,CAAC,IAAI,CAACnoB,CAAC,CAACyL,CAAC,IAAIqY,EAAE,GAAGG,EAAE,CAAC,MAAM,CAAC;EAAI;EAC/D;EACC+D,EAAE,KAAK,IAAI,IAAI,CAACA,EAAE,CAACI,QAAQ,CAACxe,CAAC,CAAC,CAAC,IAAIyd,EAAE,CAAC,CAAC,EAAEgB,EAAE,CAACze,CAAC,EAAEC,CAAC,CAAC;AACpD;AACA,SAASwe,EAAEA,CAACze,CAAC,EAAEC,CAAC,EAAE;EAChB,OAAOD,CAAC,CAAC6d,MAAM,CAAC5d,CAAC,CAAC,KAAKD,CAAC,CAACoC,CAAC,EAAEpC,CAAC,CAACoC,CAAC,GAAGnC,CAAC,EAAED,CAAC,CAAC+d,EAAE,GAAGW,EAAE,CAAC,CAAC,EAAEC,EAAE,CAAC3e,CAAC,EAAE4a,EAAE,CAAC,EAAEgE,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAAC/c,CAAC,GAAG8Y,CAAC,MAAM,CAAC,IAAI,CAACiE,CAAC,CAAC/c,CAAC,IAAIyY,EAAE,GAAGC,EAAE,CAAC,MAAM,CAAC,KAAKsE,EAAE,KAAK,IAAI,GAAGC,EAAE,CAAC,CAAC9e,CAAC,CAAC,CAAC,GAAG6e,EAAE,CAAC1a,IAAI,CAACnE,CAAC,CAAC,CAAC,CAAC,EAAEC,CAAC;AACnK;AACA,SAAS0e,EAAEA,CAAC3e,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAGF,CAAC,CAAC4d,SAAS;EACnB,IAAI1d,CAAC,KAAK,IAAI,EACZ,KAAK,IAAI0B,CAAC,GAAG1B,CAAC,CAAC5L,MAAM,EAAEG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmN,CAAC,EAAEnN,CAAC,EAAE,EAAE;IACxC,IAAIgM,CAAC,GAAGP,CAAC,CAACzL,CAAC,CAAC;MAAE6L,CAAC,GAAGG,CAAC,CAACoB,CAAC;IACrB,CAACvB,CAAC,GAAGsa,EAAE,MAAM,CAAC,KAAKmE,EAAE,CAACte,CAAC,EAAER,CAAC,CAAC,EAAE,CAACK,CAAC,IAAIqa,CAAC,GAAGF,EAAE,CAAC,MAAM,CAAC,KAAK,CAACna,CAAC,GAAG4Z,EAAE,MAAM,CAAC,GAAGyE,EAAE,CACvE;IACAle,CAAC,EACDoa,EACF,CAAC,GAAGmE,EAAE,CACJ;IACAve,CACF,CAAC,CAAC,CAAC;EACL;AACJ;AACA;AACA,SAASwe,EAAEA,CAACjf,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGia,EAAE,GAAGU,EAAE;IAAE1a,CAAC,GAAG9J,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAACyL,CAAC,GAAGqY,EAAE,MAAM,CAAC,IACjD;IACA9jB,CAAC,IACC,IAAI;EACR,OAAOwoB,CAAC,KAAK,IAAI,IAAI1e,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAAC2B,CAAC,GAAG4Y,EAAE,MAAM,CAAC,GAAGxa,CAAC,IAAIwa,EAAE,GAAGmE,CAAC,CAAC/c,CAAC,IAAIsZ,EAAE,EAAE;IACzE+D,GAAG,EAAEC,CAAC;IACNC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,IAAI;IACbxB,MAAM,EAAEhB,EAAE;IACVhb,CAAC,EAAE5B,CAAC;IACJgc,EAAE,EAAEjc,CAAC;IACL4d,SAAS,EAAE,IAAI;IACfE,EAAE,EAAE,CAAC;IACL1b,CAAC,GACC;IACA,IAAI,CACL;IACD2b,EAAE,EAAE,CAAC;IACL1kB,MAAM,EAAE6G,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI0e;EACf,CAAC;AACH;AACA,SAASU,EAAEA,CAACtf,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGD,CAAC,CAACqf,OAAO;EACjB,IAAIpf,CAAC,KAAK,IAAI,EAAE;IACdD,CAAC,CAACqf,OAAO,GAAG,IAAI;IAChB,KAAK,IAAInf,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,CAAC,CAAC3L,MAAM,EAAE4L,CAAC,IAAI,CAAC,EAClCqf,EAAE,CACA;IACAtf,CAAC,CAACC,CAAC,CACL,CAAC;EACL;AACF;AACA,SAASsf,EAAEA,CAACxf,CAAC,EAAE;EACb,KAAK,IAAIC,CAAC,GAAGD,CAAC,CAAC3G,MAAM,EAAE4G,CAAC,KAAK,IAAI,GAAI;IACnC,IAAI,CAACA,CAAC,CAAC4B,CAAC,GAAGqY,EAAE,MAAM,CAAC,EAClB,OACE,qBACAja,CAAC;IAELA,CAAC,GAAGA,CAAC,CAAC5G,MAAM;EACd;EACA,OAAO,IAAI;AACb;AACA,SAASomB,EAAEA,CAACzf,CAAC,EAAE;EACb,IAAIC,CAAC;IAAEC,CAAC,GAAG0e,CAAC;EACZc,EAAE,CAACF,EAAE,CAACxf,CAAC,CAAC,CAAC;EACT,IAAI;IACFsf,EAAE,CAACtf,CAAC,CAAC,EAAEC,CAAC,GAAG0f,EAAE,CAAC3f,CAAC,CAAC;EAClB,CAAC,SAAS;IACR0f,EAAE,CAACxf,CAAC,CAAC;EACP;EACA,OAAOD,CAAC;AACV;AACA,SAAS2f,EAAEA,CAAC5f,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGwf,EAAE,CAACzf,CAAC,CAAC;IAAEE,CAAC,GAAG,CAAC2f,EAAE,IAAI,CAAC7f,CAAC,CAAC6B,CAAC,GAAG4Y,EAAE,MAAM,CAAC,KAAKza,CAAC,CAACof,IAAI,KAAK,IAAI,GAAGvE,EAAE,GAAGF,CAAC;EACvEoE,EAAE,CAAC/e,CAAC,EAAEE,CAAC,CAAC,EAAEF,CAAC,CAAC6d,MAAM,CAAC5d,CAAC,CAAC,KAAKD,CAAC,CAACoC,CAAC,GAAGnC,CAAC,EAAED,CAAC,CAAC+d,EAAE,GAAGW,EAAE,CAAC,CAAC,CAAC;AACjD;AACA,SAASoB,EAAEA,CAAC9f,CAAC,EAAE;EACbkI,OAAO,CAAC6X,IAAI,CAAC,yCAAyC,CAAC;AACzD;AACA,IAAIC,CAAC,GAAG,CAAC,CAAC;AACV,SAASC,EAAEA,CAACjgB,CAAC,EAAE;EACbggB,CAAC,GAAGhgB,CAAC;AACP;AACA,IAAIkgB,CAAC;AACL,SAASC,EAAEA,CAACngB,CAAC,EAAE;EACb,IAAIA,CAAC,KAAK,IAAI,EACZ,MAAM8f,EAAE,CAAC,CAAC,EAAEhG,EAAE;EAChB,OAAOoG,CAAC,GAAGlgB,CAAC;AACd;AACA,SAASogB,EAAEA,CAAA,EAAG;EACZ,OAAOD,EAAE,CACP;EACA,eAAgBE,EAAE,CAACH,CAAC,CACtB,CAAC;AACH;AACA,SAASI,CAACA,CAACtgB,CAAC,EAAE;EACZ,IAAIggB,CAAC,EAAE;IACL,IAAI,eAAgBK,EAAE,CAACH,CAAC,CAAC,KAAK,IAAI,EAChC,MAAMJ,EAAE,CAAC,CAAC,EAAEhG,EAAE;IAChBoG,CAAC,GAAGlgB,CAAC;EACP;AACF;AACA,SAASugB,EAAEA,CAAA,EAAG;EACZ,KAAK,IAAIvgB,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGigB,CAAC,IAAM;IACzB,IAAIjgB,CAAC,CAACugB,QAAQ,KAAK,CAAC,EAAE;MACpB,IAAItgB,CAAC,GACH;MACAD,CAAC,CAACjL,IACH;MACD,IAAIkL,CAAC,KAAK2Z,EAAE,EAAE;QACZ,IAAI7Z,CAAC,KAAK,CAAC,EAAE,OAAOC,CAAC;QACrBD,CAAC,IAAI,CAAC;MACR,CAAC,MAAM,CAACE,CAAC,KAAKyZ,EAAE,IAAIzZ,CAAC,KAAK0Z,EAAE,MAAM5Z,CAAC,IAAI,CAAC,CAAC;IAC3C;IACA,IAAI4B,CAAC,GACH;IACA,eAAgBye,EAAE,CAACpgB,CAAC,CACrB;IACDA,CAAC,CAACrE,MAAM,CAAC,CAAC,EAAEqE,CAAC,GAAG2B,CAAC;EACnB;AACF;AACA,SAAS6e,EAAEA,CAACzgB,CAAC,EAAe;EAAA,IAAbC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;EAAA,IAAEyI,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,OAAAmD,SAAA,MAAApD,SAAA;EACxB,IAAIsO,aAAA,CAAO3C,CAAC,KAAI,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIob,EAAE,IAAIpb,CAAC,EAC/C,OAAOA,CAAC;EACV,IAAM4B,CAAC,GAAGoa,EAAE,CAAChc,CAAC,CAAC;EACf,IAAI4B,CAAC,KAAKka,EAAE,IAAIla,CAAC,KAAKma,EAAE,EACtB,OAAO/b,CAAC;EACV,IAAIvL,CAAC,GAAG,eAAgB,IAAIqhB,GAAG,CAAC,CAAC;IAAErV,CAAC,GAAG8a,EAAE,CAACvb,CAAC,CAAC;IAAEM,CAAC,GAAGqd,EAAE,CAAC,CAAC,CAAC;EACvDld,CAAC,IAAIhM,CAAC,CAACwhB,GAAG,CAAC,QAAQ,EAAE0H,EAAE,CACrB;EACA3d,CAAC,CAAC1L,MACJ,CAAC,CAAC;EACF,IAAIuN,CAAC;EACL,OAAO,IAAI6e,KAAK,CACd;EACA1gB,CAAC,EACD;IACEO,cAAc,WAAdA,cAAcA,CAACuB,CAAC,EAAEnB,CAAC,EAAEyB,CAAC,EAAE;MACtB,CAAC,EAAE,OAAO,IAAIA,CAAC,CAAC,IAAIA,CAAC,CAACnB,YAAY,KAAK,CAAC,CAAC,IAAImB,CAAC,CAACpB,UAAU,KAAK,CAAC,CAAC,IAAIoB,CAAC,CAAClB,QAAQ,KAAK,CAAC,CAAC,KAAKoc,EAAE,CAAC,CAAC;MAC9F,IAAI3b,CAAC,GAAGlN,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;MAChB,OAAOgB,CAAC,KAAK,KAAK,CAAC,IAAIA,CAAC,GAAGgc,EAAE,CAACvb,CAAC,CAAClO,KAAK,CAAC,EAAEO,CAAC,CAACwhB,GAAG,CAACtV,CAAC,EAAEgB,CAAC,CAAC,IAAI2c,CAAC,CAAC3c,CAAC,EAAE8e,EAAE,CAACre,CAAC,CAAClO,KAAK,EAAE2N,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD8e,cAAc,WAAdA,cAAcA,CAAC7e,CAAC,EAAEnB,CAAC,EAAE;MACnB,IAAIyB,CAAC,GAAG3N,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;MAChB,IAAIyB,CAAC,KAAK,KAAK,CAAC,EACdzB,CAAC,IAAImB,CAAC,IAAIrN,CAAC,CAACwhB,GAAG,CAACtV,CAAC,EAAEgd,EAAE,CAAC5D,CAAC,CAAC,CAAC,CAAC,KACvB;QACH,IAAItZ,CAAC,IAAI,OAAOE,CAAC,IAAI,QAAQ,EAAE;UAC7B,IAAIgB,CAAC,GACH;YACAlN,CAAC,CAACghB,GAAG,CAAC,QAAQ,CACf;YAAEnT,CAAC,GAAGuE,MAAM,CAAClG,CAAC,CAAC;UAChBkG,MAAM,CAAC+Z,SAAS,CAACte,CAAC,CAAC,IAAIA,CAAC,GAAGX,CAAC,CAACS,CAAC,IAAIkc,CAAC,CAAC3c,CAAC,EAAEW,CAAC,CAAC;QAC3C;QACAgc,CAAC,CAAClc,CAAC,EAAE2X,CAAC,CAAC,EAAE8G,EAAE,CAACvgB,CAAC,CAAC;MAChB;MACA,OAAO,CAAC,CAAC;IACX,CAAC;IACDmV,GAAG,WAAHA,GAAGA,CAAC3T,CAAC,EAAEnB,CAAC,EAAEyB,CAAC,EAAE;MACX,IAAI0e,CAAC;MACL,IAAIngB,CAAC,KAAKya,EAAE,EACV,OAAOpb,CAAC;MACV,IAAI2B,CAAC,GAAGlN,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;QAAE2B,CAAC,GAAG3B,CAAC,IAAImB,CAAC;MAC5B,IAAIH,CAAC,KAAK,KAAK,CAAC,KAAK,CAACW,CAAC,IAAI,CAACwe,CAAC,GAAGlF,EAAE,CAAC9Z,CAAC,EAAEnB,CAAC,CAAC,KAAK,IAAI,IAAImgB,CAAC,CAAC5f,QAAQ,CAAC,KAAKS,CAAC,GAAGgc,EAAE,CAAC8C,EAAE,CAACne,CAAC,GAAGR,CAAC,CAACnB,CAAC,CAAC,GAAGoZ,CAAC,EAAElY,CAAC,CAAC,CAAC,EAAEpN,CAAC,CAACwhB,GAAG,CAACtV,CAAC,EAAEgB,CAAC,CAAC,CAAC,EAAEA,CAAC,KAAK,KAAK,CAAC,EAAE;QAC5H,IAAIof,CAAC,GAAG5qB,CAAC,CAACwL,CAAC,CAAC;QACZ,OAAOof,CAAC,KAAKhH,CAAC,GAAG,KAAK,CAAC,GAAGgH,CAAC;MAC7B;MACA,OAAO3L,OAAO,CAACK,GAAG,CAAC3T,CAAC,EAAEnB,CAAC,EAAEyB,CAAC,CAAC;IAC7B,CAAC;IACD2D,wBAAwB,WAAxBA,wBAAwBA,CAACjE,CAAC,EAAEnB,CAAC,EAAE;MAC7B,IAAIyB,CAAC,GAAGgT,OAAO,CAACrP,wBAAwB,CAACjE,CAAC,EAAEnB,CAAC,CAAC;MAC9C,IAAIyB,CAAC,IAAI,OAAO,IAAIA,CAAC,EAAE;QACrB,IAAIT,CAAC,GAAGlN,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;QAChBgB,CAAC,KAAKS,CAAC,CAAClO,KAAK,GAAGiC,CAAC,CAACwL,CAAC,CAAC,CAAC;MACvB,CAAC,MAAM,IAAIS,CAAC,KAAK,KAAK,CAAC,EAAE;QACvB,IAAIE,CAAC,GAAG7N,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;UAAEogB,CAAC,GAAGze,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACF,CAAC;QAC9C,IAAIE,CAAC,KAAK,KAAK,CAAC,IAAIye,CAAC,KAAKhH,CAAC,EACzB,OAAO;UACL/Y,UAAU,EAAE,CAAC,CAAC;UACdC,YAAY,EAAE,CAAC,CAAC;UAChB/M,KAAK,EAAE6sB,CAAC;UACR7f,QAAQ,EAAE,CAAC;QACb,CAAC;MACL;MACA,OAAOkB,CAAC;IACV,CAAC;IACD4T,GAAG,WAAHA,GAAGA,CAAClU,CAAC,EAAEnB,CAAC,EAAE;MACR,IAAIogB,CAAC;MACL,IAAIpgB,CAAC,KAAKya,EAAE,EACV,OAAO,CAAC,CAAC;MACX,IAAIhZ,CAAC,GAAG3N,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;QAAEgB,CAAC,GAAGS,CAAC,KAAK,KAAK,CAAC,IAAIA,CAAC,CAACA,CAAC,KAAK2X,CAAC,IAAI3E,OAAO,CAACY,GAAG,CAAClU,CAAC,EAAEnB,CAAC,CAAC;MACpE,IAAIyB,CAAC,KAAK,KAAK,CAAC,IAAIwc,CAAC,KAAK,IAAI,KAAK,CAACjd,CAAC,IAAI,CAACof,CAAC,GAAGnF,EAAE,CAAC9Z,CAAC,EAAEnB,CAAC,CAAC,KAAK,IAAI,IAAIogB,CAAC,CAAC7f,QAAQ,CAAC,EAAE;QAC9EkB,CAAC,KAAK,KAAK,CAAC,KAAKA,CAAC,GAAGub,EAAE,CAAChc,CAAC,GAAG8e,EAAE,CAAC3e,CAAC,CAACnB,CAAC,CAAC,EAAEkB,CAAC,CAAC,GAAGkY,CAAC,CAAC,EAAEtlB,CAAC,CAACwhB,GAAG,CAACtV,CAAC,EAAEyB,CAAC,CAAC,CAAC;QAC1D,IAAIE,CAAC,GAAGnM,CAAC,CAACiM,CAAC,CAAC;QACZ,IAAIE,CAAC,KAAKyX,CAAC,EACT,OAAO,CAAC,CAAC;MACb;MACA,OAAOpY,CAAC;IACV,CAAC;IACDsU,GAAG,WAAHA,GAAGA,CAACnU,CAAC,EAAEnB,CAAC,EAAEyB,CAAC,EAAET,CAAC,EAAE;MACd,IAAI6V,CAAC;MACL,IAAIlV,CAAC,GAAG7N,CAAC,CAACghB,GAAG,CAAC9U,CAAC,CAAC;QAAEogB,CAAC,GAAGpgB,CAAC,IAAImB,CAAC;MAC5B,IAAIrB,CAAC,IAAIE,CAAC,KAAK,QAAQ,EACrB,KAAK,IAAImgB,CAAC,GAAG1e,CAAC,EAAE0e,CAAC,GAAG;MACpBxe,CAAC,CAACF,CAAC,EAAE0e,CAAC,IAAI,CAAC,EAAE;QACX,IAAIE,CAAC,GAAGvsB,CAAC,CAACghB,GAAG,CAACqL,CAAC,GAAG,EAAE,CAAC;QACrBE,CAAC,KAAK,KAAK,CAAC,GAAG1C,CAAC,CAAC0C,CAAC,EAAEjH,CAAC,CAAC,GAAG+G,CAAC,IAAIhf,CAAC,KAAKkf,CAAC,GAAGrD,EAAE,CAAC5D,CAAC,CAAC,EAAEtlB,CAAC,CAACwhB,GAAG,CAAC6K,CAAC,GAAG,EAAE,EAAEE,CAAC,CAAC,CAAC;MAClE;MACF1e,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAACye,CAAC,IAAI,CAACvJ,CAAC,GAAGoE,EAAE,CAAC9Z,CAAC,EAAEnB,CAAC,CAAC,KAAK,IAAI,IAAI6W,CAAC,CAACtW,QAAQ,MAAMoB,CAAC,GAAGqb,EAAE,CAAC,KAAK,CAAC,CAAC,EAAEW,CAAC,CAAChc,CAAC,EAAEme,EAAE,CAACre,CAAC,EAAEP,CAAC,CAAC,CAAC,EAAEpN,CAAC,CAACwhB,GAAG,CAACtV,CAAC,EAAE2B,CAAC,CAAC,CAAC,IAAIye,CAAC,GAAGze,CAAC,CAACF,CAAC,KAAK2X,CAAC,EAAEuE,CAAC,CAAChc,CAAC,EAAEme,EAAE,CAACre,CAAC,EAAEP,CAAC,CAAC,CAAC,CAAC;MAC9I,IAAIof,CAAC,GAAG7L,OAAO,CAACrP,wBAAwB,CAACjE,CAAC,EAAEnB,CAAC,CAAC;MAC9C,IAAIsgB,CAAC,IAAI,IAAI,IAAIA,CAAC,CAAChL,GAAG,IAAIgL,CAAC,CAAChL,GAAG,CAACvU,IAAI,CAACC,CAAC,EAAES,CAAC,CAAC,EAAE,CAAC2e,CAAC,EAAE;QAC9C,IAAItgB,CAAC,IAAI,OAAOE,CAAC,IAAI,QAAQ,EAAE;UAC7B,IAAIugB,CAAC,GACH;YACAzsB,CAAC,CAACghB,GAAG,CAAC,QAAQ,CACf;YAAE0L,CAAC,GAAGta,MAAM,CAAClG,CAAC,CAAC;UAChBkG,MAAM,CAAC+Z,SAAS,CAACO,CAAC,CAAC,IAAIA,CAAC,IAAID,CAAC,CAAC9e,CAAC,IAAIkc,CAAC,CAAC4C,CAAC,EAAEC,CAAC,GAAG,CAAC,CAAC;QAChD;QACAN,EAAE,CAACvgB,CAAC,CAAC;MACP;MACA,OAAO,CAAC,CAAC;IACX,CAAC;IACDuF,OAAO,WAAPA,OAAOA,CAAC/D,CAAC,EAAE;MACT3L,CAAC,CAACmK,CAAC,CAAC;MACJ,IAAIK,CAAC,GAAGyU,OAAO,CAACvP,OAAO,CAAC/D,CAAC,CAAC,CAAC7H,MAAM,CAAC,UAACqI,CAAC,EAAK;QACvC,IAAIye,CAAC,GAAGtsB,CAAC,CAACghB,GAAG,CAACnT,CAAC,CAAC;QAChB,OAAOye,CAAC,KAAK,KAAK,CAAC,IAAIA,CAAC,CAAC3e,CAAC,KAAK2X,CAAC;MAClC,CAAC,CAAC;MAAC,IAAAqH,SAAA,GAAA9J,0BAAA,CACgB7iB,CAAC;QAAA4sB,KAAA;MAAA;QAApB,KAAAD,SAAA,CAAAtf,CAAA,MAAAuf,KAAA,GAAAD,SAAA,CAAAhhB,CAAA,IAAA6C,IAAA,GACE;UAAA,IAAAqe,WAAA,GAAAlK,cAAA,CAAAiK,KAAA,CAAAntB,KAAA;YADQkO,CAAC,GAAAkf,WAAA;YAAE3f,CAAC,GAAA2f,WAAA;UACZ3f,CAAC,CAACS,CAAC,KAAK2X,CAAC,IAAI,EAAE3X,CAAC,IAAIN,CAAC,CAAC,IAAInB,CAAC,CAACwD,IAAI,CAAC/B,CAAC,CAAC;QAAA;MAAC,SAAAmf,GAAA;QAAAH,SAAA,CAAAphB,CAAA,CAAAuhB,GAAA;MAAA;QAAAH,SAAA,CAAAvf,CAAA;MAAA;MACtC,OAAOlB,CAAC;IACV,CAAC;IACDiE,cAAc,WAAdA,cAAcA,CAAA,EAAG;MACf2Y,EAAE,CAAC,CAAC;IACN;EACF,CACF,CAAC;AACH;AACA,SAASsD,EAAEA,CAAC7gB,CAAC,EAAS;EAAA,IAAPC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC;EAClB6mB,CAAC,CAACte,CAAC,EAAEA,CAAC,CAACoC,CAAC,GAAGnC,CAAC,CAAC;AACf;AACA,IAAIuhB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE;AAClB,SAASC,EAAEA,CAAA,EAAG;EACZ,IAAIJ,EAAE,KAAK,KAAK,CAAC,EAAE;IACjBA,EAAE,GAAG3Y,MAAM,EAAE4Y,EAAE,GAAG,SAAS,CAAChK,IAAI,CAACpE,SAAS,CAACwO,SAAS,CAAC;IACrD,IAAI7hB,CAAC,GAAG8hB,OAAO,CAAC3hB,SAAS;MAAEF,CAAC,GAAG8hB,IAAI,CAAC5hB,SAAS;IAC7CuhB,EAAE,GAAG9F,EAAE,CAAC3b,CAAC,EAAE,YAAY,CAAC,CAACwV,GAAG,EAAEkM,EAAE,GAAG/F,EAAE,CAAC3b,CAAC,EAAE,aAAa,CAAC,CAACwV,GAAG,EAAEzV,CAAC,CAACgiB,OAAO,GAAG,KAAK,CAAC,EAAEhiB,CAAC,CAACiiB,WAAW,GAAG,KAAK,CAAC,EAAEjiB,CAAC,CAACkiB,YAAY,GAAG,IAAI,EAAEliB,CAAC,CAACmiB,OAAO,GAAG,KAAK,CAAC,EAAEniB,CAAC,CAACoiB,GAAG,GAAG,KAAK,CAAC,EAAEC,IAAI,CAACliB,SAAS,CAACmiB,GAAG,GAAG,KAAK,CAAC;EACjM;AACF;AACA,SAASC,EAAEA,CAAA,EAAS;EAAA,IAARviB,CAAC,GAAAvI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,EAAE;EAChB,OAAO7B,QAAQ,CAAC4sB,cAAc,CAACxiB,CAAC,CAAC;AACnC;AACA;AACA,SAASyiB,EAAEA,CAACziB,CAAC,EAAE;EACb,OAAO0hB,EAAE,CAAChgB,IAAI,CAAC1B,CAAC,CAAC;AACnB;AACA;AACA,SAASqgB,EAAEA,CAACrgB,CAAC,EAAE;EACb,OAAO2hB,EAAE,CAACjgB,IAAI,CAAC1B,CAAC,CAAC;AACnB;AACA,SAAS0iB,CAACA,CAAC1iB,CAAC,EAAEC,CAAC,EAAE;EACf,IAAI,CAAC+f,CAAC,EACJ,OAAO,eAAgByC,EAAE,CAACziB,CAAC,CAAC;EAC9B,IAAIE,CAAC,GACH;EACA,eAAgBuiB,EAAE,CAACvC,CAAC,CACrB;EACD,OAAOhgB,CAAC,KAAK,IAAI,KAAKA,CAAC,GAAGggB,CAAC,CAACyC,WAAW,CAACJ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEpC,EAAE,CAACjgB,CAAC,CAAC,EAAEA,CAAC;AAC1D;AACA,SAAS0iB,EAAEA,CAAC5iB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAI,CAAC+f,CAAC,EAAE;IACN,IAAI9f,CAAC,GACH;IACA,eAAgBuiB,EAAE,CAChB;IACAziB,CACF,CACD;IACD,OAAOE,CAAC,YAAY2iB,OAAO,IAAI3iB,CAAC,CAAClL,IAAI,KAAK,EAAE,GAAG,eAAgBqrB,EAAE,CAACngB,CAAC,CAAC,GAAGA,CAAC;EAC1E;EACA,OAAOggB,CAAC;AACV;AACA,SAAS4C,EAAEA,CAAC9iB,CAAC,EAAiB;EAAA,IAAfC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC;EAAA,IAAEyI,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EAC1B,IAAImK,CAAC,GAAGoe,CAAC,GAAGE,CAAC,GAAGlgB,CAAC;EACjB,KAAK,IAAIvL,CAAC,EAAEwL,CAAC,EAAE,GACbxL,CAAC,GAAGmN,CAAC,EAAEA,CAAC,GAAG;EACX,eAAgBye,EAAE,CAACze,CAAC,CAAC;EACvB,IAAI,CAACoe,CAAC,EACJ,OAAOpe,CAAC;EACV,IAAInB,CAAC,GAAGmB,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC4e,QAAQ;EACvC,IAAItgB,CAAC,IAAIO,CAAC,KAAK,CAAC,EAAE;IAChB,IAAIH,CAAC,GAAGiiB,EAAE,CAAC,CAAC;IACZ,OAAO3gB,CAAC,KAAK,IAAI,GAAGnN,CAAC,IAAI,IAAI,IAAIA,CAAC,CAACsuB,KAAK,CAACziB,CAAC,CAAC,GAAGsB,CAAC,CAACohB,MAAM,CAAC1iB,CAAC,CAAC,EAAE6f,EAAE,CAAC7f,CAAC,CAAC,EAAEA,CAAC;EACrE;EACA,OAAO6f,EAAE,CAACve,CAAC,CAAC,EAAE;EACdA,CAAC;AACH;AACA,SAASqhB,EAAEA,CAACjjB,CAAC,EAAE;EACbA,CAAC,CAACrH,WAAW,GAAG,EAAE;AACpB;AACA,IAAIuqB,EAAE,GAAG,CAAC,CAAC;EAAEC,EAAE,GAAG,CAAC,CAAC;EAAEC,EAAE,GAAG,IAAI;EAAEC,EAAE,GAAG,CAAC,CAAC;EAAEC,EAAE,GAAG,CAAC,CAAC;AACjD,SAASC,EAAEA,CAACvjB,CAAC,EAAE;EACbsjB,EAAE,GAAGtjB,CAAC;AACR;AACA,IAAIwjB,EAAE,GAAG,EAAE;AACX,IAAIptB,CAAC,GAAG,IAAI;EAAE+nB,EAAE,GAAG,CAAC,CAAC;AACrB,SAASsF,EAAEA,CAACzjB,CAAC,EAAE;EACb5J,CAAC,GAAG4J,CAAC;AACP;AACA,IAAI4e,CAAC,GAAG,IAAI;AACZ,SAASc,EAAEA,CAAC1f,CAAC,EAAE;EACb4e,CAAC,GAAG5e,CAAC;AACP;AACA,IAAIoe,EAAE,GAAG,IAAI;AACb,SAASC,EAAEA,CAACre,CAAC,EAAE;EACboe,EAAE,GAAGpe,CAAC;AACR;AACA,IAAI0jB,CAAC,GAAG,IAAI;EAAEC,CAAC,GAAG,CAAC;EAAE9E,EAAE,GAAG,IAAI;AAC9B,SAASC,EAAEA,CAAC9e,CAAC,EAAE;EACb6e,EAAE,GAAG7e,CAAC;AACR;AACA,IAAI4jB,EAAE,GAAG,CAAC;EAAEC,EAAE,GAAG,CAAC;EAAEhE,EAAE,GAAG,CAAC,CAAC;AAC3B,SAASnB,EAAEA,CAAA,EAAG;EACZ,OAAO,EAAEkF,EAAE;AACb;AACA,SAASE,EAAEA,CAAC9jB,CAAC,EAAE;EACb,IAAI2B,CAAC;EACL,IAAI1B,CAAC,GAAGD,CAAC,CAAC6B,CAAC;EACX,IAAI,CAAC5B,CAAC,GAAG2a,EAAE,MAAM,CAAC,EAChB,OAAO,CAAC,CAAC;EACX,IAAI,CAAC3a,CAAC,GAAG4a,EAAE,MAAM,CAAC,EAAE;IAClB,IAAI3a,CAAC,GAAGF,CAAC,CAACof,IAAI;MAAExd,CAAC,GAAG,CAAC3B,CAAC,GAAGwa,EAAE,MAAM,CAAC;IAClC,IAAIva,CAAC,KAAK,IAAI,EAAE;MACd,IAAIzL,CAAC;QAAEgM,CAAC;QAAEH,CAAC,GAAG,CAACL,CAAC,GAAGya,EAAE,MAAM,CAAC;QAAE7Y,CAAC,GAAGD,CAAC,IAAIgd,CAAC,KAAK,IAAI,IAAI,CAACiB,EAAE;QAAE/d,CAAC,GAAG5B,CAAC,CAAC5L,MAAM;MACtE,IAAIgM,CAAC,IAAIuB,CAAC,EAAE;QACV,IAAIlB,CAAC,GACH;UACAX,CACD;UAAEoC,CAAC,GAAGzB,CAAC,CAACtH,MAAM;QACf,KAAK5E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqN,CAAC,EAAErN,CAAC,EAAE;UAAA,IAAAsvB,YAAA;UACpBtjB,CAAC,GAAGP,CAAC,CAACzL,CAAC,CAAC,EAAE,CAAC6L,CAAC,IAAI,EAAE,CAACqB,CAAC,GAAGlB,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACmd,SAAS,KAAK,IAAI,IAAIjc,CAAC,CAAC6c,QAAQ,CAAC7d,CAAC,CAAC,CAAC,KAAK,EAAAojB,YAAA,GAACtjB,CAAC,CAACmd,SAAS,cAAAmG,YAAA,cAAAA,YAAA,GAAKtjB,CAAC,CAACmd,SAAS,GAAG,EAAE,EAAGzZ,IAAI,CAACxD,CAAC,CAAC;QAAC;QACrIL,CAAC,KAAKK,CAAC,CAACkB,CAAC,IAAI6Y,EAAE,CAAC,EAAE7Y,CAAC,IAAIO,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAACP,CAAC,GAAG4Y,EAAE,MAAM,CAAC,KAAK9Z,CAAC,CAACkB,CAAC,IAAI4Y,EAAE,CAAC;MACtE;MACA,KAAKhmB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqN,CAAC,EAAErN,CAAC,EAAE,EACpB,IAAIgM,CAAC,GAAGP,CAAC,CAACzL,CAAC,CAAC,EAAEqvB,EAAE,CACd;MACArjB,CACF,CAAC,IAAImf,EAAE,CACL;MACAnf,CACF,CAAC,EAAEA,CAAC,CAACsd,EAAE,GAAG/d,CAAC,CAAC+d,EAAE,EACZ,OAAO,CAAC,CAAC;IACf;IACA,CAAC,CAACnc,CAAC,IAAIgd,CAAC,KAAK,IAAI,IAAI,CAACiB,EAAE,KAAKd,EAAE,CAAC/e,CAAC,EAAE2a,CAAC,CAAC;EACvC;EACA,OAAO,CAAC,CAAC;AACX;AACA,SAASqJ,EAAEA,CAAChkB,CAAC,EAAEC,CAAC,EAAE;EAChB,KAAK,IAAIC,CAAC,GAAGD,CAAC,EAAEC,CAAC,KAAK,IAAI,GAAI;IAC5B,IAAI,CAACA,CAAC,CAAC2B,CAAC,GAAG2Y,EAAE,MAAM,CAAC,EAClB,IAAI;MACFta,CAAC,CAAC+b,EAAE,CAACjc,CAAC,CAAC;MACP;IACF,CAAC,CAAC,OAAAikB,QAAA,EAAM;MACN/jB,CAAC,CAAC2B,CAAC,IAAI2Y,EAAE;IACX;IACFta,CAAC,GAAGA,CAAC,CAAC7G,MAAM;EACd;EACA,MAAM6pB,EAAE,GAAG,CAAC,CAAC,EAAEljB,CAAC;AAClB;AACA,SAASkkB,EAAEA,CAAClkB,CAAC,EAAE;EACb,OAAO,CAACA,CAAC,CAAC6B,CAAC,GAAGkZ,EAAE,MAAM,CAAC,KAAK/a,CAAC,CAAC3G,MAAM,KAAK,IAAI,IAAI,CAAC2G,CAAC,CAAC3G,MAAM,CAACwI,CAAC,GAAG2Y,EAAE,MAAM,CAAC,CAAC;AAC3E;AACA,SAAS2J,EAAEA,CAACnkB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;EACtB,IAAIshB,EAAE,EAAE;IACN,IAAIhjB,CAAC,KAAK,IAAI,KAAKgjB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAEgB,EAAE,CAACjkB,CAAC,CAAC,EAChC,MAAMD,CAAC;IACT;EACF;EACAE,CAAC,KAAK,IAAI,KAAKgjB,EAAE,GAAG,CAAC,CAAC,CAAC;EACvB;IACEc,EAAE,CAAChkB,CAAC,EAAEC,CAAC,CAAC;IACR;EACF;AACF;AACA,SAASmkB,EAAEA,CAACpkB,CAAC,EAAEC,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACtB,IAAImK,CAAC,GAAG5B,CAAC,CAAC4d,SAAS;EACnB,IAAIhc,CAAC,KAAK,IAAI,EACZ,KAAK,IAAInN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmN,CAAC,CAACtN,MAAM,EAAEG,CAAC,EAAE,EAAE;IACjC,IAAIgM,CAAC,GAAGmB,CAAC,CAACnN,CAAC,CAAC;IACZ,CAACgM,CAAC,CAACoB,CAAC,GAAGqY,EAAE,MAAM,CAAC,GAAGkK,EAAE,CACnB;IACA3jB,CAAC,EACDR,CAAC,EACD,CAAC,CACH,CAAC,GAAGA,CAAC,KAAKQ,CAAC,KAAKP,CAAC,GAAG6e,EAAE,CAACte,CAAC,EAAEma,EAAE,CAAC,GAAG,CAACna,CAAC,CAACoB,CAAC,GAAG8Y,CAAC,MAAM,CAAC,IAAIoE,EAAE,CAACte,CAAC,EAAEoa,EAAE,CAAC,EAAEmE,EAAE,CAC9D;IACAve,CACF,CAAC,CAAC;EACJ;AACJ;AACA,SAASkf,EAAEA,CAAC3f,CAAC,EAAE;EACb,IAAI+gB,CAAC;EACL,IAAI9gB,CAAC,GAAGyjB,CAAC;IAAExjB,CAAC,GAAGyjB,CAAC;IAAE/hB,CAAC,GAAGid,EAAE;IAAEpqB,CAAC,GAAG2B,CAAC;IAAEqK,CAAC,GAAGof,EAAE;IAAEvf,CAAC,GAAG8d,EAAE;IAAEvc,CAAC,GAAGsd,CAAC;IAAErd,CAAC,GAAGqc,EAAE;IAAExd,CAAC,GAAGX,CAAC,CAAC6B,CAAC;EACvE6hB,CAAC,GAAG;EACJ,IAAI,EAAEC,CAAC,GAAG,CAAC,EAAE9E,EAAE,GAAG,IAAI,EAAEgB,EAAE,GAAG,CAAClf,CAAC,GAAG8Z,EAAE,MAAM,CAAC,KAAK0D,EAAE,IAAI,CAACkF,EAAE,IAAIjtB,CAAC,KAAK,IAAI,CAAC,EAAEA,CAAC,GAAG,CAACuK,CAAC,IAAI2Z,EAAE,GAAGC,EAAE,CAAC,MAAM,CAAC,GAAGva,CAAC,GAAG,IAAI,EAAEoe,EAAE,GAAG,IAAI,EAAEiG,EAAE,CAACrkB,CAAC,CAACkf,GAAG,CAAC,EAAEf,EAAE,GAAG,CAAC,CAAC,EAAE0F,EAAE,EAAE;EACnJ,IAAI;IACF,IAAIzhB,CAAC,GACH;MACA,CAAC,CAAC,EAAEpC,CAAC,CAACic,EAAE,EAAE,CACX;MAAEta,CAAC,GAAG3B,CAAC,CAACof,IAAI;IACb,IAAIsE,CAAC,KAAK,IAAI,EAAE;MACd,IAAIphB,CAAC;MACL,IAAIgiB,EAAE,CAACtkB,CAAC,EAAE2jB,CAAC,CAAC,EAAEhiB,CAAC,KAAK,IAAI,IAAIgiB,CAAC,GAAG,CAAC,EAC/B,KAAKhiB,CAAC,CAACrN,MAAM,GAAGqvB,CAAC,GAAGD,CAAC,CAACpvB,MAAM,EAAEgO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGohB,CAAC,CAACpvB,MAAM,EAAEgO,CAAC,EAAE,EACpDX,CAAC,CAACgiB,CAAC,GAAGrhB,CAAC,CAAC,GAAGohB,CAAC,CAACphB,CAAC,CAAC,CAAC,KAElBtC,CAAC,CAACof,IAAI,GAAGzd,CAAC,GAAG+hB,CAAC;MAChB,IAAI,CAAC7D,EAAE,EACL,KAAKvd,CAAC,GAAGqhB,CAAC,EAAErhB,CAAC,GAAGX,CAAC,CAACrN,MAAM,EAAEgO,CAAC,EAAE;QAAA,IAAAiiB,YAAA;QAC3B,EAAAA,YAAA,GAAC,CAACxD,CAAC,GAAGpf,CAAC,CAACW,CAAC,CAAC,EAAEsb,SAAS,cAAA2G,YAAA,cAAAA,YAAA,GAAKxD,CAAC,CAACnD,SAAS,GAAG,EAAE,EAAGzZ,IAAI,CAACnE,CAAC,CAAC;MAAC;IAC3D,CAAC,MAAM2B,CAAC,KAAK,IAAI,IAAIgiB,CAAC,GAAGhiB,CAAC,CAACrN,MAAM,KAAKgwB,EAAE,CAACtkB,CAAC,EAAE2jB,CAAC,CAAC,EAAEhiB,CAAC,CAACrN,MAAM,GAAGqvB,CAAC,CAAC;IAC7D,IAAIpF,EAAE,CAAC,CAAC,IAAIM,EAAE,KAAK,IAAI,IAAI,CAACV,EAAE,IAAIxc,CAAC,KAAK,IAAI,IAAI,CAAC3B,CAAC,CAAC6B,CAAC,IAAIqY,EAAE,GAAGW,EAAE,GAAGD,EAAE,CAAC,MAAM,CAAC,EAC1E,KAAKtY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG;IAChBuc,EAAE,CAACvqB,MAAM,EAAEgO,CAAC,EAAE,EACZ8hB,EAAE,CACAvF,EAAE,CAACvc,CAAC,CAAC,EACL;IACAtC,CACF,CAAC;IACL,OAAOvL,CAAC,KAAK,IAAI,IAAIovB,EAAE,EAAE,EAAEzhB,CAAC;EAC9B,CAAC,SAAS;IACRshB,CAAC,GAAGzjB,CAAC,EAAE0jB,CAAC,GAAGzjB,CAAC,EAAE2e,EAAE,GAAGjd,CAAC,EAAExL,CAAC,GAAG3B,CAAC,EAAEorB,EAAE,GAAGpf,CAAC,EAAE2d,EAAE,GAAG9d,CAAC,EAAE+jB,EAAE,CAACxiB,CAAC,CAAC,EAAEsc,EAAE,GAAGrc,CAAC;EAC5D;AACF;AACA,SAAS0iB,EAAEA,CAACxkB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAGD,CAAC,CAAC2d,SAAS;EACnB,IAAI1d,CAAC,KAAK,IAAI,EAAE;IACd,IAAI0B,CAAC,GAAG4Z,EAAE,CAAC9Z,IAAI,CAACxB,CAAC,EAAEF,CAAC,CAAC;IACrB,IAAI4B,CAAC,KAAK,CAAC,CAAC,EAAE;MACZ,IAAInN,CAAC,GAAGyL,CAAC,CAAC5L,MAAM,GAAG,CAAC;MACpBG,CAAC,KAAK,CAAC,GAAGyL,CAAC,GAAGD,CAAC,CAAC2d,SAAS,GAAG,IAAI,IAAI1d,CAAC,CAAC0B,CAAC,CAAC,GAAG1B,CAAC,CAACzL,CAAC,CAAC,EAAEyL,CAAC,CAACgF,GAAG,CAAC,CAAC,CAAC;IAC3D;EACF;EACAhF,CAAC,KAAK,IAAI,IAAI,CAACD,CAAC,CAAC4B,CAAC,GAAGqY,EAAE,MAAM,CAAC;EAAI;EAClC;EACA;EACCwJ,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAAClF,QAAQ,CAACve,CAAC,CAAC,CAAC,KAAK8e,EAAE,CAAC9e,CAAC,EAAE4a,EAAE,CAAC,EAAE,CAAC5a,CAAC,CAAC4B,CAAC,IAAI4Y,EAAE,GAAGC,EAAE,CAAC,MAAM,CAAC,KAAKza,CAAC,CAAC4B,CAAC,IAAI6Y,EAAE,CAAC,EAAE4E,EAAE,CACtF;EACArf,CACF,CAAC,EAAEqkB,EAAE,CACH;EACArkB,CAAC,EACD,CACF,CAAC,CAAC;AACJ;AACA,SAASqkB,EAAEA,CAACtkB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAGF,CAAC,CAACof,IAAI;EACd,IAAIlf,CAAC,KAAK,IAAI,EACZ,KAAK,IAAI0B,CAAC,GAAG3B,CAAC,EAAE2B,CAAC,GAAG1B,CAAC,CAAC5L,MAAM,EAAEsN,CAAC,EAAE,EAC/B4iB,EAAE,CAACxkB,CAAC,EAAEE,CAAC,CAAC0B,CAAC,CAAC,CAAC;AACjB;AACA,SAAS6iB,EAAEA,CAACzkB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGD,CAAC,CAAC6B,CAAC;EACX,IAAI,CAAC5B,CAAC,GAAG8a,EAAE,MAAM,CAAC,EAAE;IAClBgE,EAAE,CAAC/e,CAAC,EAAE2a,CAAC,CAAC;IACR,IAAIza,CAAC,GAAG0e,CAAC;MAAEhd,CAAC,GAAGud,CAAC;MAAE1qB,CAAC,GAAG4uB,EAAE;IACxBzE,CAAC,GAAG5e,CAAC,EAAEqjB,EAAE,GAAG,CAAC,CAAC;IACd,IAAI;MACF,CAACpjB,CAAC,GAAGoa,EAAE,MAAM,CAAC,GAAGqK,EAAE,CAAC1kB,CAAC,CAAC,GAAG2kB,EAAE,CAAC3kB,CAAC,CAAC,EAAE4kB,EAAE,CAAC5kB,CAAC,CAAC;MACrC,IAAIS,CAAC,GAAGkf,EAAE,CAAC3f,CAAC,CAAC;MACbA,CAAC,CAAC6kB,QAAQ,GAAG,OAAOpkB,CAAC,IAAI,UAAU,GAAGA,CAAC,GAAG,IAAI,EAAET,CAAC,CAAC+d,EAAE,GAAG6F,EAAE;MACzD,IAAItjB,CAAC,GAAGN,CAAC,CAACof,IAAI;QAAEvd,CAAC;MACjBoY,EAAE,IAAIyD,EAAE,IAAI1d,CAAC,CAAC6B,CAAC,GAAG+Y,EAAE;IACtB,CAAC,CAAC,OAAO9Y,CAAC,EAAE;MACVqiB,EAAE,CAACriB,CAAC,EAAE9B,CAAC,EAAEE,CAAC,EAAE0B,CAAC,IAAI5B,CAAC,CAACkf,GAAG,CAAC;IACzB,CAAC,SAAS;MACRmE,EAAE,GAAG5uB,CAAC,EAAEmqB,CAAC,GAAG1e,CAAC;IACf;EACF;AACF;AACA,SAAS4kB,EAAEA,CAAA,EAAG;EACZ,IAAI;IACF3H,EAAE,CAAC,CAAC;EACN,CAAC,CAAC,OAAOnd,CAAC,EAAE;IACV,IAAIojB,EAAE,KAAK,IAAI,EACbe,EAAE,CAACnkB,CAAC,EAAEojB,EAAE,EAAE,IAAI,CAAC,CAAC,KAEhB,MAAMpjB,CAAC;EACX;AACF;AACA,SAAS+kB,EAAEA,CAAA,EAAG;EACZ,IAAI/kB,CAAC,GAAGqjB,EAAE;EACV,IAAI;IACF,IAAIpjB,CAAC,GAAG,CAAC;IACT,KAAKojB,EAAE,GAAG,CAAC,CAAC,EAAEG,EAAE,CAAClvB,MAAM,GAAG,CAAC,GAAI;MAC7B2L,CAAC,EAAE,GAAG,GAAG,IAAI6kB,EAAE,CAAC,CAAC;MACjB,IAAI5kB,CAAC,GAAGsjB,EAAE;QAAE5hB,CAAC,GAAG1B,CAAC,CAAC5L,MAAM;MACxBkvB,EAAE,GAAG,EAAE;MACP,KAAK,IAAI/uB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmN,CAAC,EAAEnN,CAAC,EAAE,EAAE;QAC1B,IAAIgM,CAAC,GAAGukB,EAAE,CAAC9kB,CAAC,CAACzL,CAAC,CAAC,CAAC;QAChBwwB,EAAE,CAACxkB,CAAC,CAAC;MACP;IACF;EACF,CAAC,SAAS;IACR0iB,EAAE,GAAG,CAAC,CAAC,EAAEE,EAAE,GAAGrjB,CAAC,EAAEojB,EAAE,GAAG,IAAI;EAC5B;AACF;AACA,SAAS6B,EAAEA,CAACjlB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGD,CAAC,CAAC1L,MAAM;EAChB,IAAI2L,CAAC,KAAK,CAAC,EACT,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,CAAC,EAAEC,CAAC,EAAE,EAAE;IAC1B,IAAI0B,CAAC,GAAG5B,CAAC,CAACE,CAAC,CAAC;IACZ,IAAI,CAAC0B,CAAC,CAACC,CAAC,IAAIkZ,EAAE,GAAGD,EAAE,CAAC,MAAM,CAAC,EACzB,IAAI;MACFgJ,EAAE,CAACliB,CAAC,CAAC,KAAK6iB,EAAE,CAAC7iB,CAAC,CAAC,EAAEA,CAAC,CAACwd,IAAI,KAAK,IAAI,IAAIxd,CAAC,CAACsjB,KAAK,KAAK,IAAI,IAAItjB,CAAC,CAACujB,WAAW,KAAK,IAAI,KAAKvjB,CAAC,CAACijB,QAAQ,KAAK,IAAI,GAAGO,EAAE,CAACxjB,CAAC,CAAC,GAAGA,CAAC,CAACqa,EAAE,GAAG,IAAI,CAAC,CAAC;IAChI,CAAC,CAAC,OAAOxnB,CAAC,EAAE;MACV0vB,EAAE,CAAC1vB,CAAC,EAAEmN,CAAC,EAAE,IAAI,EAAEA,CAAC,CAACsd,GAAG,CAAC;IACvB;EACJ;AACJ;AACA,SAASF,EAAEA,CAAChf,CAAC,EAAE;EACbmjB,EAAE,KAAKA,EAAE,GAAG,CAAC,CAAC,EAAEzG,cAAc,CAACqI,EAAE,CAAC,CAAC;EACnC,KAAK,IAAI9kB,CAAC,GAAGmjB,EAAE,GAAGpjB,CAAC,EAAEC,CAAC,CAAC5G,MAAM,KAAK,IAAI,GAAI;IACxC4G,CAAC,GAAGA,CAAC,CAAC5G,MAAM;IACZ,IAAI6G,CAAC,GAAGD,CAAC,CAAC4B,CAAC;IACX,IAAI,CAAC3B,CAAC,IAAIqa,EAAE,GAAGD,EAAE,CAAC,MAAM,CAAC,EAAE;MACzB,IAAI,CAACpa,CAAC,GAAGya,CAAC,MAAM,CAAC,EAAE;MACnB1a,CAAC,CAAC4B,CAAC,IAAI8Y,CAAC;IACV;EACF;EACA6I,EAAE,CAACrf,IAAI,CAAClE,CAAC,CAAC;AACZ;AACA,SAAS+kB,EAAEA,CAAChlB,CAAC,EAAE;EACb,KAAK,IAAIC,CAAC,GAAG,EAAE,EAAEC,CAAC,GAAGF,CAAC,EAAEE,CAAC,KAAK,IAAI,GAAI;IACpC,IAAI0B,CAAC,GAAG1B,CAAC,CAAC2B,CAAC;MAAEpN,CAAC,GAAG,CAACmN,CAAC,IAAI0Y,EAAE,GAAGC,EAAE,CAAC,MAAM,CAAC;MAAE9Z,CAAC,GAAGhM,CAAC,IAAI,CAACmN,CAAC,GAAG+Y,CAAC,MAAM,CAAC;IAC9D,IAAI,CAACla,CAAC,IAAI,CAACmB,CAAC,GAAGkZ,EAAE,MAAM,CAAC,EAAE;MACxB,IAAI,CAAClZ,CAAC,GAAGuY,EAAE,MAAM,CAAC,EAChBla,CAAC,CAACkE,IAAI,CAACjE,CAAC,CAAC,CAAC,KACP,IAAIzL,CAAC,EACRyL,CAAC,CAAC2B,CAAC,IAAI8Y,CAAC,CAAC,KACN;QACH,IAAIra,CAAC,GAAGlK,CAAC;QACT,IAAI;UACFA,CAAC,GAAG8J,CAAC,EAAE4jB,EAAE,CAAC5jB,CAAC,CAAC,IAAIukB,EAAE,CAACvkB,CAAC,CAAC;QACvB,CAAC,CAAC,OAAOS,CAAC,EAAE;UACVwjB,EAAE,CAACxjB,CAAC,EAAET,CAAC,EAAE,IAAI,EAAEA,CAAC,CAACgf,GAAG,CAAC;QACvB,CAAC,SAAS;UACR9oB,CAAC,GAAGkK,CAAC;QACP;MACF;MACA,IAAIuB,CAAC,GAAG3B,CAAC,CAACglB,KAAK;MACf,IAAIrjB,CAAC,KAAK,IAAI,EAAE;QACd3B,CAAC,GAAG2B,CAAC;QACL;MACF;IACF;IACA,IAAIC,CAAC,GAAG5B,CAAC,CAAC7G,MAAM;IAChB,KAAK6G,CAAC,GAAGA,CAAC,CAACyD,IAAI,EAAEzD,CAAC,KAAK,IAAI,IAAI4B,CAAC,KAAK,IAAI,GACvC5B,CAAC,GAAG4B,CAAC,CAAC6B,IAAI,EAAE7B,CAAC,GAAGA,CAAC,CAACzI,MAAM;EAC5B;EACA,OAAO4G,CAAC;AACV;AACA,SAASolB,CAACA,CAACrlB,CAAC,EAAE;EACZ,IAAIC,CAAC;EACL,KAAK2c,EAAE,CAAC,CAAC,EAAE4G,EAAE,CAAClvB,MAAM,GAAG,CAAC,GACtB6uB,EAAE,GAAG,CAAC,CAAC,EAAE4B,EAAE,CAAC,CAAC,EAAEnI,EAAE,CAAC,CAAC;EACrB,OACE,gBACA3c,CAAC;AAEL;AAAC,SACcqlB,EAAEA,CAAA;EAAA,OAAAC,GAAA,CAAAvf,KAAA,OAAAvO,SAAA;AAAA;AAAA,SAAA8tB,IAAA;EAAAA,GAAA,GAAAjf,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAAqJ,SAAA;IAAA,OAAAjO,yBAAA,GAAAoB,IAAA,UAAA+M,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAhJ,IAAA,GAAAgJ,SAAA,CAAAxK,IAAA;QAAA;UAAAwK,SAAA,CAAAxK,IAAA;UAAA,OACQqB,OAAO,CAACpC,OAAO,CAAC,CAAC;QAAA;UAAEyiB,CAAC,CAAC,CAAC;QAAA;QAAA;UAAA,OAAAlX,SAAA,CAAA7I,IAAA;MAAA;IAAA,GAAA0I,QAAA;EAAA,CAC7B;EAAA,OAAAuX,GAAA,CAAAvf,KAAA,OAAAvO,SAAA;AAAA;AACD,SAAStB,CAACA,CAAC6J,CAAC,EAAE;EACZ,IAAIC,CAAC,GAAGD,CAAC,CAAC6B,CAAC;IAAE3B,CAAC,GAAG,CAACD,CAAC,GAAGia,EAAE,MAAM,CAAC;EAC/B,IAAI9jB,CAAC,KAAK,IAAI,IAAI,CAAC+nB,EAAE,EAAE;IACrBC,EAAE,KAAK,IAAI,IAAIA,EAAE,CAACI,QAAQ,CAACxe,CAAC,CAAC,IAAIwd,EAAE,CAAC,CAAC;IACrC,IAAI5b,CAAC,GAAGxL,CAAC,CAACgpB,IAAI;IACdpf,CAAC,CAAC8d,EAAE,GAAG+F,EAAE,KAAK7jB,CAAC,CAAC8d,EAAE,GAAG+F,EAAE,EAAEH,CAAC,KAAK,IAAI,IAAI9hB,CAAC,KAAK,IAAI,IAAIA,CAAC,CAAC+hB,CAAC,CAAC,KAAK3jB,CAAC,GAAG2jB,CAAC,EAAE,GAAGD,CAAC,KAAK,IAAI,GAAGA,CAAC,GAAG,CAAC1jB,CAAC,CAAC,GAAG,CAAC,CAAC6f,EAAE,IAAI,CAAC6D,CAAC,CAAClF,QAAQ,CAACxe,CAAC,CAAC,KAAK0jB,CAAC,CAACvf,IAAI,CAACnE,CAAC,CAAC,CAAC;EACtI,CAAC,MAAM,IAAIE,CAAC,IAAI;EAChBF,CAAC,CAACof,IAAI,KAAK,IAAI,IAAI;EACnBpf,CAAC,CAACqf,OAAO,KAAK,IAAI,EAAE;IAClB,IAAI5qB,CAAC,GACH;MACAuL,CACD;MAAES,CAAC,GAAGhM,CAAC,CAAC4E,MAAM;IACfoH,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAACoB,CAAC,GAAG4Y,EAAE,MAAM,CAAC,KAAKhmB,CAAC,CAACoN,CAAC,IAAI4Y,EAAE,CAAC;EAC/C;EACA,OAAOva,CAAC,KAAKzL,CAAC,GAAG;EACjBuL,CAAC,EAAE8jB,EAAE,CAACrvB,CAAC,CAAC,IAAImrB,EAAE,CAACnrB,CAAC,CAAC,CAAC,EAAEuL,CAAC,CAACoC,CAAC;AACzB;AACA,SAASojB,EAAEA,CAACxlB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGke,EAAE;EACV,IAAI;IACF,OAAOA,EAAE,GAAG,CAAC,CAAC,EAAEne,CAAC,CAAC,CAAC;EACrB,CAAC,SAAS;IACRme,EAAE,GAAGle,CAAC;EACR;AACF;AACA,IAAMwlB,EAAE,GAAG,CAAC,IAAI;AAChB,SAAS1G,EAAEA,CAAC/e,CAAC,EAAEC,CAAC,EAAE;EAChBD,CAAC,CAAC6B,CAAC,GAAG7B,CAAC,CAAC6B,CAAC,GAAG4jB,EAAE,GAAGxlB,CAAC;AACpB;AACA,SAASylB,EAAEA,CAAC1lB,CAAC,EAAE;EACb4e,CAAC,KAAK,IAAI,IAAIxoB,CAAC,KAAK,IAAI,IAAI8mB,EAAE,CAAC,CAAC,EAAE9mB,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAACyL,CAAC,GAAG4Y,EAAE,MAAM,CAAC,IAAImE,CAAC,KAAK,IAAI,IAAI3B,EAAE,CAAC,CAAC,EAAEqG,EAAE,IAAItG,EAAE,CAAC,CAAC;AACpG;AACA,SAAS2I,EAAEA,CAAC3lB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAGD,CAAC,CAAC2lB,IAAI;EACd1lB,CAAC,KAAK,IAAI,GAAGD,CAAC,CAAC2lB,IAAI,GAAG3lB,CAAC,CAACilB,KAAK,GAAGllB,CAAC,IAAIE,CAAC,CAACyD,IAAI,GAAG3D,CAAC,EAAEA,CAAC,CAACmF,IAAI,GAAGjF,CAAC,EAAED,CAAC,CAAC2lB,IAAI,GAAG5lB,CAAC,CAAC;AAC1E;AACA,SAAS6lB,EAAEA,CAAC7lB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAU;EAAA,IAAR0B,CAAC,GAAAnK,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACzB,IAAIhD,CAAC,GAAGmqB,CAAC;IAAEne,CAAC,GAAG;MACbye,GAAG,EAAEC,CAAC;MACNC,IAAI,EAAE,IAAI;MACV+F,WAAW,EAAE,IAAI;MACjBW,SAAS,EAAE,IAAI;MACfjkB,CAAC,EAAE7B,CAAC,GAAG4a,EAAE;MACTsK,KAAK,EAAE,IAAI;MACXjJ,EAAE,EAAEhc,CAAC;MACL2lB,IAAI,EAAE,IAAI;MACVjiB,IAAI,EAAE,IAAI;MACVtK,MAAM,EAAE5E,CAAC;MACT0Q,IAAI,EAAE,IAAI;MACV0f,QAAQ,EAAE,IAAI;MACdkB,WAAW,EAAE,IAAI;MACjBhI,EAAE,EAAE;IACN,CAAC;EACD,IAAI7d,CAAC,EACH,IAAI;IACFukB,EAAE,CAAChkB,CAAC,CAAC,EAAEA,CAAC,CAACoB,CAAC,IAAImZ,EAAE;EAClB,CAAC,CAAC,OAAOlZ,CAAC,EAAE;IACV,MAAMyd,EAAE,CAAC9e,CAAC,CAAC,EAAEqB,CAAC;EAChB,CAAC,MACE7B,CAAC,KAAK,IAAI,IAAI+e,EAAE,CAACve,CAAC,CAAC;EACxB,IAAIH,CAAC,GAAGJ,CAAC,IAAIO,CAAC,CAAC2e,IAAI,KAAK,IAAI,IAAI3e,CAAC,CAACykB,KAAK,KAAK,IAAI,IAAIzkB,CAAC,CAAC0kB,WAAW,KAAK,IAAI,IAAI1kB,CAAC,CAACokB,QAAQ,KAAK,IAAI,IAAI,CAACpkB,CAAC,CAACoB,CAAC,IAAIsZ,EAAE,GAAGX,EAAE,CAAC,MAAM,CAAC;EAC5H,IAAI,CAACla,CAAC,IAAIsB,CAAC,KAAKnN,CAAC,KAAK,IAAI,IAAIkxB,EAAE,CAACllB,CAAC,EAAEhM,CAAC,CAAC,EAAE2B,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAACyL,CAAC,GAAGqY,EAAE,MAAM,CAAC,CAAC,EAAE;IAAA,IAAA8L,UAAA;IACvE,IAAInkB,CAAC,GACH;IACAzL,CACD;IACD,EAAA4vB,UAAA,GAACnkB,CAAC,CAACwd,OAAO,cAAA2G,UAAA,cAAAA,UAAA,GAAKnkB,CAAC,CAACwd,OAAO,GAAG,EAAE,EAAGlb,IAAI,CAAC1D,CAAC,CAAC;EACzC;EACA,OAAOA,CAAC;AACV;AACA,SAASwlB,EAAEA,CAACjmB,CAAC,EAAE;EACb,IAAMC,CAAC,GAAG4lB,EAAE,CAACzL,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EAC1B,OAAO2E,EAAE,CAAC9e,CAAC,EAAE0a,CAAC,CAAC,EAAE1a,CAAC,CAAC4kB,QAAQ,GAAG7kB,CAAC,EAAEC,CAAC;AACpC;AACA,SAASimB,EAAEA,CAAClmB,CAAC,EAAE;EACb0lB,EAAE,CAAC,CAAC;EACJ,IAAIzlB,CAAC,GAAG2e,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAAC/c,CAAC,GAAGyY,EAAE,MAAM,CAAC,IAAI6E,CAAC,KAAK,IAAI,IAAI,CAACA,CAAC,CAAC4B,CAAC;EAC5D,IAAI9gB,CAAC,EAAE;IAAA,IAAAkmB,IAAA;IACL,IAAIjmB,CAAC,GACH;IACAif,CACD;IACD,EAAAgH,IAAA,GAACjmB,CAAC,CAACF,CAAC,cAAAmmB,IAAA,cAAAA,IAAA,GAAKjmB,CAAC,CAACF,CAAC,GAAG,EAAE,EAAGmE,IAAI,CAAC;MACvB8X,EAAE,EAAEjc,CAAC;MACLomB,MAAM,EAAExH,CAAC;MACTyH,QAAQ,EAAEjwB;IACZ,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,IAAIwL,CAAC,GAAG0kB,EAAE,CAACtmB,CAAC,CAAC;IACb,OAAO4B,CAAC;EACV;AACF;AACA,SAAS2kB,EAAEA,CAACvmB,CAAC,EAAE;EACb,IAAMC,CAAC,GAAG4lB,EAAE,CAACtL,EAAE,EAAEva,CAAC,EAAE,CAAC,CAAC,CAAC;EACvB,OAAO,YAAM;IACXuf,EAAE,CAACtf,CAAC,CAAC;EACP,CAAC;AACH;AACA,SAASumB,EAAEA,CAACxmB,CAAC,EAAE;EACb,IAAMC,CAAC,GAAG4lB,EAAE,CAACtL,EAAE,EAAEva,CAAC,EAAE,CAAC,CAAC,CAAC;EACvB,OAAO;IAAA,IAACE,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;IAAA,OAAK,IAAIuN,OAAO,CAAC,UAACpD,CAAC,EAAK;MACpC1B,CAAC,CAACumB,KAAK,GAAGC,EAAE,CAACzmB,CAAC,EAAE,YAAM;QACpBsf,EAAE,CAACtf,CAAC,CAAC,EAAE2B,CAAC,CAAC,KAAK,CAAC,CAAC;MAClB,CAAC,CAAC,IAAI2d,EAAE,CAACtf,CAAC,CAAC,EAAE2B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;EAAA;AACJ;AACA,SAAS0kB,EAAEA,CAACtmB,CAAC,EAAE;EACb,OAAO6lB,EAAE,CAAC1L,EAAE,EAAEna,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB;AACA,SAAS2mB,EAAEA,CAAC3mB,CAAC,EAAE;EACb,OAAO6lB,EAAE,CAACzL,EAAE,EAAEpa,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB;AACA,SAAS4mB,EAAEA,CAAC5mB,CAAC,EAAkB;EAAA,IAAhBC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,EAAE;EAAA,IAAEyI,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAGwnB,EAAE;EAC3B,IAAMrd,CAAC,GAAG3B,CAAC,CAAC4mB,GAAG,CAAC3mB,CAAC,CAAC;EAClB,OAAO4mB,EAAE,CAAC;IAAA,OAAM9mB,CAAC,CAAAgG,KAAA,SAAA6Q,kBAAA,CAAIjV,CAAC,CAACilB,GAAG,CAAC1wB,CAAC,CAAC,EAAC;EAAA,EAAC;AACjC;AACA,SAAS2wB,EAAEA,CAAC9mB,CAAC,EAAS;EAAA,IAAPC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC;EAClB,OAAOouB,EAAE,CAACzL,EAAE,GAAGC,EAAE,GAAGpa,CAAC,EAAED,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B;AACA,SAAS+mB,EAAEA,CAAC/mB,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACnB,OAAOouB,EAAE,CAACzL,EAAE,GAAGE,EAAE,EAAEta,CAAC,EAAE,CAAC,CAAC,EAAEC,CAAC,CAAC;AAC9B;AACA,SAAS2kB,EAAEA,CAAC5kB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGD,CAAC,CAAC6kB,QAAQ;EAClB,IAAI5kB,CAAC,KAAK,IAAI,EAAE;IACd,IAAMC,CAAC,GAAGojB,EAAE;MAAE1hB,CAAC,GAAGxL,CAAC;IACnBmtB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEE,EAAE,CAAC,IAAI,CAAC;IAChB,IAAI;MACFxjB,CAAC,CAACyB,IAAI,CAAC,IAAI,CAAC;IACd,CAAC,SAAS;MACR6hB,EAAE,CAACrjB,CAAC,CAAC,EAAEujB,EAAE,CAAC7hB,CAAC,CAAC;IACd;EACF;AACF;AACA,SAAS+iB,EAAEA,CAAC3kB,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACnB,IAAIyI,CAAC,GAAGF,CAAC,CAACklB,KAAK;EACf,KAAKllB,CAAC,CAACklB,KAAK,GAAGllB,CAAC,CAAC4lB,IAAI,GAAG,IAAI,EAAE1lB,CAAC,KAAK,IAAI,GAAI;IAC1C,IAAI0B,CAAC,GAAG1B,CAAC,CAACyD,IAAI;IACd,CAACzD,CAAC,CAAC2B,CAAC,GAAG0Y,EAAE,MAAM,CAAC,GAAGra,CAAC,CAAC7G,MAAM,GAAG,IAAI,GAAGkmB,EAAE,CAACrf,CAAC,EAAED,CAAC,CAAC,EAAEC,CAAC,GAAG0B,CAAC;EACtD;AACF;AACA,SAAS8iB,EAAEA,CAAC1kB,CAAC,EAAE;EACb,KAAK,IAAIC,CAAC,GAAGD,CAAC,CAACklB,KAAK,EAAEjlB,CAAC,KAAK,IAAI,GAAI;IAClC,IAAIC,CAAC,GAAGD,CAAC,CAAC0D,IAAI;IACd,CAAC1D,CAAC,CAAC4B,CAAC,GAAGyY,EAAE,MAAM,CAAC,IAAIiF,EAAE,CAACtf,CAAC,CAAC,EAAEA,CAAC,GAAGC,CAAC;EAClC;AACF;AACA,SAASqf,EAAEA,CAACvf,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACnB,IAAIyI,CAAC,GAAG,CAAC,CAAC;EACV,IAAI,CAACD,CAAC,IAAI,CAACD,CAAC,CAAC6B,CAAC,GAAGqZ,EAAE,MAAM,CAAC,KAAKlb,CAAC,CAACmlB,WAAW,KAAK,IAAI,EAAE;IACrD,KAAK,IAAIvjB,CAAC,GAAG5B,CAAC,CAACmlB,WAAW,EAAE1wB,CAAC,GAAGuL,CAAC,CAAC8lB,SAAS,EAAElkB,CAAC,KAAK,IAAI,GAAI;MACzD,IAAInB,CAAC,GAAGmB,CAAC,KAAKnN,CAAC,GAAG,IAAI,IACpB;MACA,eAAgB4rB,EAAE,CAACze,CAAC,CAAC,CACtB;MACDA,CAAC,CAAChG,MAAM,CAAC,CAAC,EAAEgG,CAAC,GAAGnB,CAAC;IACnB;IACAP,CAAC,GAAG,CAAC,CAAC;EACR;EACAykB,EAAE,CAAC3kB,CAAC,EAAEC,CAAC,IAAI,CAACC,CAAC,CAAC,EAAEokB,EAAE,CAACtkB,CAAC,EAAE,CAAC,CAAC,EAAE+e,EAAE,CAAC/e,CAAC,EAAE+a,EAAE,CAAC;EACnC,IAAIza,CAAC,GAAGN,CAAC,CAAC+lB,WAAW;EACrB,IAAIzlB,CAAC,KAAK,IAAI;IAAA,IAAA0mB,UAAA,GAAA1P,0BAAA,CACIhX,CAAC;MAAA2mB,MAAA;IAAA;MAAjB,KAAAD,UAAA,CAAAllB,CAAA,MAAAmlB,MAAA,GAAAD,UAAA,CAAA5mB,CAAA,IAAA6C,IAAA,GACE;QAAA,IADSnB,CAAC,GAAAmlB,MAAA,CAAA/yB,KAAA;QACV4N,CAAC,CAACwD,IAAI,CAAC,CAAC;MAAA;IAAC,SAAAic,GAAA;MAAAyF,UAAA,CAAAhnB,CAAA,CAAAuhB,GAAA;IAAA;MAAAyF,UAAA,CAAAnlB,CAAA;IAAA;EAAA;EACb+iB,EAAE,CAAC5kB,CAAC,CAAC;EACL,IAAI6B,CAAC,GAAG7B,CAAC,CAAC3G,MAAM;EAChBwI,CAAC,KAAK,IAAI,IAAIA,CAAC,CAACqjB,KAAK,KAAK,IAAI,IAAIE,EAAE,CAACplB,CAAC,CAAC,EAAEA,CAAC,CAAC2D,IAAI,GAAG3D,CAAC,CAACmF,IAAI,GAAGnF,CAAC,CAAC6kB,QAAQ,GAAG7kB,CAAC,CAACkf,GAAG,GAAGlf,CAAC,CAACof,IAAI,GAAGpf,CAAC,CAACic,EAAE,GAAGjc,CAAC,CAACmlB,WAAW,GAAGnlB,CAAC,CAAC8lB,SAAS,GAAG,IAAI;AACpI;AACA,SAASV,EAAEA,CAACplB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGD,CAAC,CAAC3G,MAAM;IAAE6G,CAAC,GAAGF,CAAC,CAACmF,IAAI;IAAEvD,CAAC,GAAG5B,CAAC,CAAC2D,IAAI;EACxCzD,CAAC,KAAK,IAAI,KAAKA,CAAC,CAACyD,IAAI,GAAG/B,CAAC,CAAC,EAAEA,CAAC,KAAK,IAAI,KAAKA,CAAC,CAACuD,IAAI,GAAGjF,CAAC,CAAC,EAAED,CAAC,KAAK,IAAI,KAAKA,CAAC,CAACilB,KAAK,KAAKllB,CAAC,KAAKC,CAAC,CAACilB,KAAK,GAAGtjB,CAAC,CAAC,EAAE3B,CAAC,CAAC2lB,IAAI,KAAK5lB,CAAC,KAAKC,CAAC,CAAC2lB,IAAI,GAAG1lB,CAAC,CAAC,CAAC;AACtI;AACA,SAASwmB,EAAEA,CAAC1mB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAG,EAAE;EACVgnB,EAAE,CAAClnB,CAAC,EAAEE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEinB,EAAE,CAACjnB,CAAC,EAAE,YAAM;IACxBqf,EAAE,CAACvf,CAAC,CAAC,EAAEC,CAAC,IAAIA,CAAC,CAAC,CAAC;EACjB,CAAC,CAAC;AACJ;AACA,SAASknB,EAAEA,CAACnnB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAGF,CAAC,CAAC1L,MAAM;EAChB,IAAI4L,CAAC,GAAG,CAAC,EAAE;IACT,IAAI0B,CAAC,GAAG,SAAJA,CAACA,CAAA;MAAA,OAAS,EAAE1B,CAAC,IAAID,CAAC,CAAC,CAAC;IAAA;IAAC,IAAAmnB,UAAA,GAAA9P,0BAAA,CACXtX,CAAC;MAAAqnB,MAAA;IAAA;MAAf,KAAAD,UAAA,CAAAtlB,CAAA,MAAAulB,MAAA,GAAAD,UAAA,CAAAhnB,CAAA,IAAA6C,IAAA,GACE;QAAA,IADOxO,CAAC,GAAA4yB,MAAA,CAAAnzB,KAAA;QACRO,CAAC,CAAC6yB,GAAG,CAAC1lB,CAAC,CAAC;MAAA;IAAC,SAAA2f,GAAA;MAAA6F,UAAA,CAAApnB,CAAA,CAAAuhB,GAAA;IAAA;MAAA6F,UAAA,CAAAvlB,CAAA;IAAA;EACb,CAAC,MACC5B,CAAC,CAAC,CAAC;AACP;AACA,SAASinB,EAAEA,CAAClnB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;EACnB,IAAI,CAACF,CAAC,CAAC6B,CAAC,GAAGiZ,EAAE,MAAM,CAAC,EAAE;IACpB,IAAI9a,CAAC,CAAC6B,CAAC,IAAIiZ,EAAE,EAAE9a,CAAC,CAAC+lB,WAAW,KAAK,IAAI;MAAA,IAAAwB,UAAA,GAAAjQ,0BAAA,CACnBtX,CAAC,CAAC+lB,WAAW;QAAAyB,MAAA;MAAA;QAA7B,KAAAD,UAAA,CAAAzlB,CAAA,MAAA0lB,MAAA,GAAAD,UAAA,CAAAnnB,CAAA,IAAA6C,IAAA,GACE;UAAA,IADS3C,CAAC,GAAAknB,MAAA,CAAAtzB,KAAA;UACV,CAACoM,CAAC,CAACmnB,SAAS,IAAIvnB,CAAC,KAAKD,CAAC,CAACkE,IAAI,CAAC7D,CAAC,CAAC;QAAA;MAAC,SAAAihB,GAAA;QAAAgG,UAAA,CAAAvnB,CAAA,CAAAuhB,GAAA;MAAA;QAAAgG,UAAA,CAAA1lB,CAAA;MAAA;IAAA;IACpC,KAAK,IAAID,CAAC,GAAG5B,CAAC,CAACklB,KAAK,EAAEtjB,CAAC,KAAK,IAAI,GAAI;MAClC,IAAInN,CAAC,GAAGmN,CAAC,CAAC+B,IAAI;QAAElD,CAAC,GAAG,CAACmB,CAAC,CAACC,CAAC,GAAGoZ,EAAE,MAAM,CAAC,IAAI,CAACrZ,CAAC,CAACC,CAAC,GAAGyY,EAAE,MAAM,CAAC;MACxD4M,EAAE,CAACtlB,CAAC,EAAE3B,CAAC,EAAEQ,CAAC,GAAGP,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE0B,CAAC,GAAGnN,CAAC;IAC7B;EACF;AACF;AACA,SAASizB,EAAEA,CAAC1nB,CAAC,EAAE;EACb2nB,EAAE,CAAC3nB,CAAC,EAAE,CAAC,CAAC,CAAC;AACX;AACA,SAAS2nB,EAAEA,CAAC3nB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAI,CAACD,CAAC,CAAC6B,CAAC,GAAGiZ,EAAE,MAAM,CAAC,EAAE;IACpB9a,CAAC,CAAC6B,CAAC,IAAIiZ,EAAE,EAAE,CAAC9a,CAAC,CAAC6B,CAAC,GAAG8Y,CAAC,MAAM,CAAC,KAAK3a,CAAC,CAAC6B,CAAC,IAAI8Y,CAAC,CAAC,EAAEmJ,EAAE,CAAC9jB,CAAC,CAAC,KAAK+e,EAAE,CAAC/e,CAAC,EAAE4a,EAAE,CAAC,EAAEoE,EAAE,CAAChf,CAAC,CAAC,CAAC;IACrE,KAAK,IAAIE,CAAC,GAAGF,CAAC,CAACklB,KAAK,EAAEhlB,CAAC,KAAK,IAAI,GAAI;MAClC,IAAI0B,CAAC,GAAG1B,CAAC,CAACyD,IAAI;QAAElP,CAAC,GAAG,CAACyL,CAAC,CAAC2B,CAAC,GAAGoZ,EAAE,MAAM,CAAC,IAAI,CAAC/a,CAAC,CAAC2B,CAAC,GAAGyY,EAAE,MAAM,CAAC;MACxDqN,EAAE,CAACznB,CAAC,EAAEzL,CAAC,GAAGwL,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEC,CAAC,GAAG0B,CAAC;IAC1B;IACA,IAAI5B,CAAC,CAAC+lB,WAAW,KAAK,IAAI;MAAA,IAAA6B,UAAA,GAAAtQ,0BAAA,CACRtX,CAAC,CAAC+lB,WAAW;QAAA8B,MAAA;MAAA;QAA7B,KAAAD,UAAA,CAAA9lB,CAAA,MAAA+lB,MAAA,GAAAD,UAAA,CAAAxnB,CAAA,IAAA6C,IAAA,GACE;UAAA,IADSxC,CAAC,GAAAonB,MAAA,CAAA3zB,KAAA;UACV,CAACuM,CAAC,CAACgnB,SAAS,IAAIxnB,CAAC,KAAKQ,CAAC,MAAG,CAAC,CAAC;QAAA;MAAC,SAAA8gB,GAAA;QAAAqG,UAAA,CAAA5nB,CAAA,CAAAuhB,GAAA;MAAA;QAAAqG,UAAA,CAAA/lB,CAAA;MAAA;IAAA;EACnC;AACF;AACA,SAASimB,EAAEA,CAAC9nB,CAAC,EAAE;EACb,MAAM,IAAIgD,KAAK,CAAC,kDAAkD,CAAC;AACrE;AACA,IAAImc,CAAC,GAAG,IAAI;AACZ,SAASkF,EAAEA,CAACrkB,CAAC,EAAE;EACbmf,CAAC,GAAGnf,CAAC;AACP;AACA,SAAS+nB,EAAEA,CAAC/nB,CAAC,EAAa;EAAA,IAAXC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEyI,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,OAAAmD,SAAA,MAAApD,SAAA;EACtB8qB,CAAC,GAAG;IACFjd,CAAC,EAAEid,CAAC;IACJxe,CAAC,EAAE,IAAI;IACPX,CAAC,EAAE,IAAI;IACP+gB,CAAC,EAAE,CAAC,CAAC;IACLjf,CAAC,EAAE9B,CAAC;IACJgoB,CAAC,EAAE,IAAI;IACPpmB,CAAC,EAAE;EACL,CAAC;AACH;AACA,SAASqmB,EAAEA,CAACjoB,CAAC,EAAE;EACb,IAAMC,CAAC,GAAGkf,CAAC;EACX,IAAIlf,CAAC,KAAK,IAAI,EAAE;IACdD,CAAC,KAAK,KAAK,CAAC,KAAKC,CAAC,CAAC+nB,CAAC,GAAGhoB,CAAC,CAAC;IACzB,IAAMM,CAAC,GAAGL,CAAC,CAACD,CAAC;IACb,IAAIM,CAAC,KAAK,IAAI,EAAE;MACd,IAAIJ,CAAC,GAAG0e,CAAC;QAAEhd,CAAC,GAAGxL,CAAC;MAChB6J,CAAC,CAACD,CAAC,GAAG,IAAI;MACV,IAAI;QACF,KAAK,IAAIvL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6L,CAAC,CAAChM,MAAM,EAAEG,CAAC,EAAE,EAAE;UACjC,IAAIgM,CAAC,GAAGH,CAAC,CAAC7L,CAAC,CAAC;UACZirB,EAAE,CAACjf,CAAC,CAAC2lB,MAAM,CAAC,EAAE3C,EAAE,CAAChjB,CAAC,CAAC4lB,QAAQ,CAAC,EAAEC,EAAE,CAAC7lB,CAAC,CAACwb,EAAE,CAAC;QACxC;MACF,CAAC,SAAS;QACRyD,EAAE,CAACxf,CAAC,CAAC,EAAEujB,EAAE,CAAC7hB,CAAC,CAAC;MACd;IACF;IACAud,CAAC,GAAGlf,CAAC,CAACiC,CAAC,EAAEjC,CAAC,CAAC8gB,CAAC,GAAG,CAAC,CAAC;EACnB;EACA,OAAO/gB,CAAC,IAAI;EACZ,CAAC,CAAC;AACJ;AACA,SAASue,EAAEA,CAAA,EAAG;EACZ,OAAO,CAAC,CAAC;AACX;AACA,IAAM2J,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC;AACtC,SAASC,EAAEA,CAACnoB,CAAC,EAAE;EACb,OAAOkoB,EAAE,CAAC1J,QAAQ,CAACxe,CAAC,CAAC;AACvB;AACA,IAAIooB,EAAE,GAAG,CAAC,CAAC;AACX,SAASC,EAAEA,CAAA,EAAG;EACZD,EAAE,KAAKA,EAAE,GAAG,CAAC,CAAC,EAAExyB,QAAQ,CAACwJ,gBAAgB,CACvC,OAAO,EACP,UAACY,CAAC,EAAK;IACLgF,OAAO,CAACpC,OAAO,CAAC,CAAC,CAACE,IAAI,CAAC,YAAM;MAC3B,IAAI7C,CAAC;MACL,IAAI,CAACD,CAAC,CAACsoB,gBAAgB;QAAA,IAAAC,UAAA,GAAAjR,0BAAA,CAGnB;UACAtX,CAAC,CAACiU,MAAM,CAACuU,QAAQ;UAAAC,MAAA;QAAA;UAHnB,KAAAF,UAAA,CAAAzmB,CAAA,MAAA2mB,MAAA,GAAAF,UAAA,CAAAnoB,CAAA,IAAA6C,IAAA,GAKE;YAAA,IAJM/C,CAAC,GAAAuoB,MAAA,CAAAv0B,KAAA;YAIP,CAAC+L,CAAC,GAAGC,CAAC,CAACwoB,MAAM,KAAK,IAAI,IAAIzoB,CAAC,CAACyB,IAAI,CAACxB,CAAC,CAAC;UAAA;QAAC,SAAAqhB,GAAA;UAAAgH,UAAA,CAAAvoB,CAAA,CAAAuhB,GAAA;QAAA;UAAAgH,UAAA,CAAA1mB,CAAA;QAAA;MAAA;IAC1C,CAAC,CAAC;EACJ,CAAC;EACD;EACA;IAAE8mB,OAAO,EAAE,CAAC;EAAE,CAChB,CAAC,CAAC;AACJ;AACA,SAASC,EAAEA,CAAC5oB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAG7J,CAAC;IAAE8J,CAAC,GAAG0e,CAAC;EAChB6E,EAAE,CAAC,IAAI,CAAC,EAAE/D,EAAE,CAAC,IAAI,CAAC;EAClB,IAAI;IACF,OAAO1f,CAAC,CAAC,CAAC;EACZ,CAAC,SAAS;IACRyjB,EAAE,CAACxjB,CAAC,CAAC,EAAEyf,EAAE,CAACxf,CAAC,CAAC;EACd;AACF;AACA,SAAS2oB,EAAEA,CAAC7oB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAS;EAAA,IAAP0B,CAAC,GAAAnK,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAGyI,CAAC;EACxBF,CAAC,CAACZ,gBAAgB,CAACa,CAAC,EAAE;IAAA,OAAM2oB,EAAE,CAAC1oB,CAAC,CAAC;EAAA,EAAC;EAClC,IAAMzL,CAAC,GAAGuL,CAAC,CAAC0oB,MAAM;EAClBj0B,CAAC,GAAGuL,CAAC,CAAC0oB,MAAM,GAAG,YAAM;IACnBj0B,CAAC,CAAC,CAAC,EAAEmN,CAAC,CAAC,CAAC,CAAC,CAAC;EACZ,CAAC,GAAG5B,CAAC,CAAC0oB,MAAM,GAAG;IAAA,OAAM9mB,CAAC,CAAC,CAAC,CAAC,CAAC;EAAA,GAAEymB,EAAE,CAAC,CAAC;AAClC;AACA,IAAMS,EAAE,GAAG,eAAgB,IAAI1P,GAAG,CAAC,CAAC;EAAE2P,EAAE,GAAG,eAAgB,IAAI3P,GAAG,CAAC,CAAC;AACpE,SAAS4P,EAAEA,CAAChpB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAU;EAAA,IAAR0B,CAAC,GAAAnK,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EACzB,SAAShD,CAACA,CAACgM,CAAC,EAAE;IAAA,IAAA0R,KAAA;IACZ,IAAIvQ,CAAC,CAAC+mB,OAAO,IAAIM,EAAE,CAACvnB,IAAI,CAACzB,CAAC,EAAEQ,CAAC,CAAC,EAAE,CAACA,CAAC,CAACyoB,YAAY,EAC7C,OAAON,EAAE,CAAC;MAAA,OAAM1oB,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACwB,IAAI,CAACyQ,KAAI,EAAE1R,CAAC,CAAC;IAAA,EAAC;EACzD;EACA,OAAOT,CAAC,CAACmpB,UAAU,CAAC,SAAS,CAAC,IAAInpB,CAAC,CAACmpB,UAAU,CAAC,OAAO,CAAC,IAAInpB,CAAC,KAAK,OAAO,GAAGyc,EAAE,CAAC,YAAM;IAClFxc,CAAC,CAACb,gBAAgB,CAACY,CAAC,EAAEvL,CAAC,EAAEmN,CAAC,CAAC;EAC7B,CAAC,CAAC,GAAG3B,CAAC,CAACb,gBAAgB,CAACY,CAAC,EAAEvL,CAAC,EAAEmN,CAAC,CAAC,EAAEnN,CAAC;AACrC;AACA,SAAS20B,EAAEA,CAACppB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAEnN,CAAC,EAAE;EACzB,IAAIgM,CAAC,GAAG;MAAEkoB,OAAO,EAAE/mB,CAAC;MAAEynB,OAAO,EAAE50B;IAAE,CAAC;IAAE6L,CAAC,GAAG0oB,EAAE,CAAChpB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEO,CAAC,CAAC;EACtD,CAACR,CAAC,KAAKrK,QAAQ,CAACiF,IAAI,IAAIoF,CAAC,KAAK4I,MAAM,IAAI5I,CAAC,KAAKrK,QAAQ,KAAKqwB,EAAE,CAAC,YAAM;IAClEhmB,CAAC,CAACqpB,mBAAmB,CAACtpB,CAAC,EAAEM,CAAC,EAAEG,CAAC,CAAC;EAChC,CAAC,CAAC;AACJ;AACA,SAAS8oB,EAAEA,CAACvpB,CAAC,EAAE;EACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,CAAC,CAAC1L,MAAM,EAAE2L,CAAC,EAAE,EAC/B6oB,EAAE,CAACntB,GAAG,CAACqE,CAAC,CAACC,CAAC,CAAC,CAAC;EAAC,IAAAupB,UAAA,GAAAlS,0BAAA,CACDyR,EAAE;IAAAU,MAAA;EAAA;IAAhB,KAAAD,UAAA,CAAA1nB,CAAA,MAAA2nB,MAAA,GAAAD,UAAA,CAAAppB,CAAA,IAAA6C,IAAA,GACE;MAAA,IADO/C,CAAC,GAAAupB,MAAA,CAAAv1B,KAAA;MACRgM,CAAC,CAACF,CAAC,CAAC;IAAA;EAAC,SAAAuhB,GAAA;IAAAiI,UAAA,CAAAxpB,CAAA,CAAAuhB,GAAA;EAAA;IAAAiI,UAAA,CAAA3nB,CAAA;EAAA;AACT;AACA,SAASonB,EAAEA,CAACjpB,CAAC,EAAE;EACb,IAAImhB,CAAC;EACL,IAAIlhB,CAAC,GAAG,IAAI;IAAEC,CAAC,GACb;IACAD,CAAC,CAACypB,aACH;IAAE9nB,CAAC,GAAG5B,CAAC,CAACvH,IAAI;IAAEhE,CAAC,GAAG,CAAC,CAAC0sB,CAAC,GAAGnhB,CAAC,CAAC2pB,YAAY,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGxI,CAAC,CAACzf,IAAI,CAAC1B,CAAC,CAAC,KAAK,EAAE;IAAES,CAAC,GAC7E;IACAhM,CAAC,CAAC,CAAC,CAAC,IAAIuL,CAAC,CAACiU,MACX;IAAE3T,CAAC,GAAG,CAAC;IAAEuB,CAAC,GAAG7B,CAAC,CAAC4pB,MAAM;EACtB,IAAI/nB,CAAC,EAAE;IACL,IAAIC,CAAC,GAAGrN,CAAC,CAAC8hB,OAAO,CAAC1U,CAAC,CAAC;IACpB,IAAIC,CAAC,KAAK,CAAC,CAAC,KAAK7B,CAAC,KAAKrK,QAAQ,IAAIqK,CAAC,KAAK;IACzC4I,MAAM,CAAC,EAAE;MACP7I,CAAC,CAAC4pB,MAAM,GAAG3pB,CAAC;MACZ;IACF;IACA,IAAIU,CAAC,GAAGlM,CAAC,CAAC8hB,OAAO,CAACtW,CAAC,CAAC;IACpB,IAAIU,CAAC,KAAK,CAAC,CAAC,EACV;IACFmB,CAAC,IAAInB,CAAC,KAAKL,CAAC,GAAGwB,CAAC,CAAC;EACnB;EACA,IAAIrB,CAAC,GAAG;EACRhM,CAAC,CAAC6L,CAAC,CAAC,IAAIN,CAAC,CAACiU,MAAM,EAAExT,CAAC,KAAKR,CAAC,EAAE;IACzB0b,EAAE,CAAC3b,CAAC,EAAE,eAAe,EAAE;MACrBiB,YAAY,EAAE,CAAC,CAAC;MAChBwU,GAAG,WAAHA,GAAGA,CAAA,EAAG;QACJ,OAAOhV,CAAC,IAAIP,CAAC;MACf;IACF,CAAC,CAAC;IACF,IAAIkC,CAAC,GAAGhM,CAAC;MAAEuL,CAAC,GAAGid,CAAC;IAChB6E,EAAE,CAAC,IAAI,CAAC,EAAE/D,EAAE,CAAC,IAAI,CAAC;IAClB,IAAI;MACF,KAAK,IAAIpd,CAAC,EAAEye,CAAC,GAAG,EAAE,EAAEtgB,CAAC,KAAK,IAAI,GAAI;QAChC,IAAIqgB,CAAC,GAAGrgB,CAAC,CAACopB,YAAY,IAAIppB,CAAC,CAACqpB,UAAU,IAAI;QAC1CrpB,CAAC,CAACspB,IAAI,IAAI,IAAI;QACd,IAAI;UACF,IAAI/I,CAAC,GAAGvgB,CAAC,CAAC,IAAI,GAAGmB,CAAC,CAAC;UACnB,IAAIof,CAAC,IAAI,IAAI,KAAK,EAAC;UACnBvgB,CAAC,CAACupB,QAAQ;UAAI;UACd;UACAhqB,CAAC,CAACiU,MAAM,KAAKxT,CAAC,CAAC,EACb,IAAI8a,EAAE,CAACyF,CAAC,CAAC,EAAE;YACT,IAAAiJ,EAAA,GAAgBjJ,CAAC;cAAAkJ,GAAA,GAAA1T,QAAA,CAAAyT,EAAA;cAAZhJ,CAAC,GAAAiJ,GAAA;cAAKhJ,CAAC,GAAAgJ,GAAA,CAAA7kB,KAAA;YACZ4b,CAAC,CAACjb,KAAK,CAACvF,CAAC,GAAGT,CAAC,EAAA3F,MAAA,CAAAwc,kBAAA,CAAKqK,CAAC,EAAC,CAAC;UACvB,CAAC,MACCF,CAAC,CAACtf,IAAI,CAACjB,CAAC,EAAET,CAAC,CAAC;QAClB,CAAC,CAAC,OAAOwX,CAAC,EAAE;UACVlV,CAAC,GAAGye,CAAC,CAAC5c,IAAI,CAACqT,CAAC,CAAC,GAAGlV,CAAC,GAAGkV,CAAC;QACvB;QACA,IAAIxX,CAAC,CAACkpB,YAAY,IAAIpI,CAAC,KAAK7gB,CAAC,IAAI6gB,CAAC,KAAK,IAAI,EACzC;QACFrgB,CAAC,GAAGqgB,CAAC;MACP;MACA,IAAIxe,CAAC,EAAE;QAAA,IAAA6nB,UAAA,GAAA7S,0BAAA,CACSyJ,CAAC;UAAAqJ,MAAA;QAAA;UAAA,IAAAC,KAAA,YAAAA,MAAA,EACb;YAAA,IADO7S,CAAC,GAAA4S,MAAA,CAAAl2B,KAAA;YACRwoB,cAAc,CAAC,YAAM;cACnB,MAAMlF,CAAC;YACT,CAAC,CAAC;UAAA,CAAC;UAHL,KAAA2S,UAAA,CAAAroB,CAAA,MAAAsoB,MAAA,GAAAD,UAAA,CAAA/pB,CAAA,IAAA6C,IAAA;YAAAonB,KAAA;UAAA;QAGK,SAAA9I,GAAA;UAAA4I,UAAA,CAAAnqB,CAAA,CAAAuhB,GAAA;QAAA;UAAA4I,UAAA,CAAAtoB,CAAA;QAAA;QACL,MAAMS,CAAC;MACT;IACF,CAAC,SAAS;MACRtC,CAAC,CAAC4pB,MAAM,GAAG3pB,CAAC,EAAE,OAAOD,CAAC,CAACsqB,aAAa,EAAE7G,EAAE,CAACrhB,CAAC,CAAC,EAAEsd,EAAE,CAAC/d,CAAC,CAAC;IACpD;EACF;AACF;AACA,SAAS4oB,EAAEA,CAACvqB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGrK,QAAQ,CAACwI,aAAa,CAAC,UAAU,CAAC;EAC1C,OAAO6B,CAAC,CAACvF,SAAS,GAAGsF,CAAC,EAAEC,CAAC,CAACuqB,OAAO;AACnC;AACA,SAASC,EAAEA,CAACzqB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GACH;EACA0e,CACD;EACD1e,CAAC,CAACilB,WAAW,KAAK,IAAI,KAAKjlB,CAAC,CAACilB,WAAW,GAAGnlB,CAAC,EAAEE,CAAC,CAAC4lB,SAAS,GAAG7lB,CAAC,CAAC;AAChE;AACA;AACA,SAASyqB,EAAEA,CAAC1qB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAG,CAACD,CAAC,GAAGwZ,EAAE,MAAM,CAAC;IAAE7X,CAAC,GAAG,CAAC3B,CAAC,GAAGyZ,EAAE,MAAM,CAAC;IAAEjlB,CAAC;IAAEgM,CAAC,GAAG,CAACT,CAAC,CAACmpB,UAAU,CAAC,KAAK,CAAC;EACvE,OAAO,YAAM;IACX,IAAInJ,CAAC,EACH,OAAOyK,EAAE,CAACvK,CAAC,EAAE,IAAI,CAAC,EAAEA,CAAC;IACvBzrB,CAAC,KAAK,KAAK,CAAC,KAAKA,CAAC,GAAG81B,EAAE,CAAC9pB,CAAC,GAAGT,CAAC,GAAG,KAAK,GAAGA,CAAC,CAAC,EAAEE,CAAC,KAAKzL,CAAC,GAAG;IACtD,eAAgBguB,EAAE,CAAChuB,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI6L,CAAC,GACH;IACAsB,CAAC,IAAI6f,EAAE,GAAG7rB,QAAQ,CAAC+0B,UAAU,CAACl2B,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGA,CAAC,CAACm2B,SAAS,CAAC,CAAC,CAAC,CACtD;IACD,IAAI1qB,CAAC,EAAE;MACL,IAAI2B,CAAC,GACH;QACA,eAAgB4gB,EAAE,CAACniB,CAAC,CACrB;QAAEwB,CAAC,GACF;QACAxB,CAAC,CAACuqB,SACH;MACDJ,EAAE,CAAC5oB,CAAC,EAAEC,CAAC,CAAC;IACV,CAAC,MACC2oB,EAAE,CAACnqB,CAAC,EAAEA,CAAC,CAAC;IACV,OAAOA,CAAC;EACV,CAAC;AACH;AACA;AACA,SAASwqB,EAAEA,CAAC9qB,CAAC,EAAEC,CAAC,EAAa;EAAA,IAAXC,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;EACzB,IAAImK,CAAC,GAAG,CAAC5B,CAAC,CAACmpB,UAAU,CAAC,KAAK,CAAC;IAAE10B,CAAC,OAAA4F,MAAA,CAAO6F,CAAC,OAAA7F,MAAA,CAAIuH,CAAC,GAAG5B,CAAC,GAAG,KAAK,GAAGA,CAAC,QAAA3F,MAAA,CAAK6F,CAAC,MAAG;IAAEO,CAAC;EACxE,OAAO,YAAM;IACX,IAAIuf,CAAC,EACH,OAAOyK,EAAE,CAACvK,CAAC,EAAE,IAAI,CAAC,EAAEA,CAAC;IACvB,IAAI,CAACzf,CAAC,EAAE;MACN,IAAIH,CAAC,GACH;QACAiqB,EAAE,CAAC91B,CAAC,CACL;QAAEoN,CAAC,GACF;QACA,eAAgB4gB,EAAE,CAACniB,CAAC,CACrB;MACDG,CAAC,GAAG;MACJ,eAAgBgiB,EAAE,CAAC5gB,CAAC,CAAC;IACvB;IACA,IAAIC,CAAC,GACH;IACArB,CAAC,CAACmqB,SAAS,CAAC,CAAC,CAAC,CACf;IACD,OAAOH,EAAE,CAAC3oB,CAAC,EAAEA,CAAC,CAAC,EAAEA,CAAC;EACpB,CAAC;AACH;AACA,SAASipB,EAAEA,CAAC/qB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAI+f,CAAC,EAAE;IACLpB,CAAC,CAACkH,SAAS,GAAG5F,CAAC,EAAEE,EAAE,CAAC,CAAC;IACrB;EACF;EACApgB,CAAC,KAAK,IAAI,IAAIA,CAAC,CAACgjB,MAAM,CACpB;EACA/iB,CACF,CAAC;AACH;AACA,SAAS+qB,EAAEA,CAAChrB,CAAC,EAAEC,CAAC,EAAE;EAChB,OAAOgrB,EAAE,CAACjrB,CAAC,EAAEC,CAAC,CAAC;AACjB;AACA,SAASirB,EAAEA,CAAClrB,CAAC,EAAEC,CAAC,EAAE;EAAA,IAAAkrB,QAAA;EAChBvJ,EAAE,CAAC,CAAC,EAAE3hB,CAAC,CAACmrB,KAAK,IAAAD,QAAA,GAAGlrB,CAAC,CAACmrB,KAAK,cAAAD,QAAA,cAAAA,QAAA,GAAI,CAAC,CAAC;EAC7B,IAAMjrB,CAAC,GAAGD,CAAC,CAACgU,MAAM;IAAErS,CAAC,GAAGoe,CAAC;IAAEvrB,CAAC,GAAGyrB,CAAC;EAChC,IAAI;IACF,KAAK,IAAIzf,CAAC,GACR;IACA,eAAgBgiB,EAAE,CAACviB,CAAC,CACrB,EAAEO,CAAC,KAAKA,CAAC,CAAC+f,QAAQ,KAAK,CAAC,IAAI;IAC7B/f,CAAC,CAACzL,IAAI,KAAK2kB,EAAE,CAAC,GACZlZ,CAAC,GAAG;IACJ,eAAgB4f,EAAE,CAAC5f,CAAC,CAAC;IACvB,IAAI,CAACA,CAAC,EACJ,MAAMqZ,EAAE;IACVmG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEE,EAAE,CACR;IACA1f,CACF,CAAC,EAAE2f,EAAE,CAAC,CAAC;IACP,IAAM9f,CAAC,GAAG2qB,EAAE,CAACjrB,CAAC,EAAAiG,mBAAA,CAAAA,mBAAA,KAAOhG,CAAC;MAAEorB,MAAM,EAAE5qB;IAAC,EAAE,CAAC;IACpC,IAAIyf,CAAC,KAAK,IAAI,IAAIA,CAAC,CAACM,QAAQ,KAAK,CAAC,IAAI;IACtCN,CAAC,CAAClrB,IAAI,KAAK6kB,EAAE,EACX,MAAMiG,EAAE,CAAC,CAAC,EAAEhG,EAAE;IAChB,OAAOmG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;IACf3f,CAAC;EACH,CAAC,CAAC,OAAOA,CAAC,EAAE;IACV,IAAIA,CAAC,KAAKwZ,EAAE,EACV,OAAO7Z,CAAC,CAACqrB,OAAO,KAAK,CAAC,CAAC,IAAIlO,EAAE,CAAC,CAAC,EAAEwE,EAAE,CAAC,CAAC,EAAEqB,EAAE,CAAC/iB,CAAC,CAAC,EAAE+f,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE+K,EAAE,CAAChrB,CAAC,EAAEC,CAAC,CAAC;IAChE,MAAMK,CAAC;EACT,CAAC,SAAS;IACR2f,EAAE,CAACre,CAAC,CAAC,EAAEue,EAAE,CAAC1rB,CAAC,CAAC;EACd;AACF;AACA,IAAM82B,EAAE,GAAG,eAAgB,IAAIzV,GAAG,CAAC,CAAC;AACpC,SAASmV,EAAEA,CAACjrB,CAAC,EAAAwrB,IAAA,EAAiF;EAAA,IAArEvrB,CAAC,GAAAurB,IAAA,CAATvX,MAAM;IAAa/T,CAAC,GAAAsrB,IAAA,CAATH,MAAM;IAAAI,UAAA,GAAAD,IAAA,CAAKE,KAAK;IAAE9pB,CAAC,GAAA6pB,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;IAAUh3B,CAAC,GAAA+2B,IAAA,CAATG,MAAM;IAAclrB,CAAC,GAAA+qB,IAAA,CAAVI,OAAO;IAAAC,UAAA,GAAAL,IAAA,CAAKJ,KAAK;IAAE9qB,CAAC,GAAAurB,UAAA,cAAG,CAAC,CAAC,GAAAA,UAAA;EACxFjK,EAAE,CAAC,CAAC;EACJ,IAAI/f,CAAC,GAAG,eAAgB,IAAIuX,GAAG,CAAC,CAAC;IAAEtX,CAAC,GAAG,SAAJA,CAACA,CAAIH,CAAC,EAAK;MAC5C,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,CAAC,CAACrN,MAAM,EAAEgO,CAAC,EAAE,EAAE;QACjC,IAAIye,CAAC,GAAGpf,CAAC,CAACW,CAAC,CAAC;QACZ,IAAI,CAACT,CAAC,CAACmU,GAAG,CAAC+K,CAAC,CAAC,EAAE;UACblf,CAAC,CAAClG,GAAG,CAAColB,CAAC,CAAC;UACR,IAAID,CAAC,GAAGqH,EAAE,CAACpH,CAAC,CAAC;UACb9gB,CAAC,CAACb,gBAAgB,CAAC2hB,CAAC,EAAEkI,EAAE,EAAE;YAAEI,OAAO,EAAEvI;UAAE,CAAC,CAAC;UACzC,IAAIE,CAAC,GAAGuK,EAAE,CAAC9V,GAAG,CAACsL,CAAC,CAAC;UACjBC,CAAC,KAAK,KAAK,CAAC,IAAIprB,QAAQ,CAACwJ,gBAAgB,CAAC2hB,CAAC,EAAEkI,EAAE,EAAE;YAAEI,OAAO,EAAEvI;UAAE,CAAC,CAAC,EAAEyK,EAAE,CAACtV,GAAG,CAAC8K,CAAC,EAAE,CAAC,CAAC,IAAIwK,EAAE,CAACtV,GAAG,CAAC8K,CAAC,EAAEC,CAAC,GAAG,CAAC,CAAC;QACpG;MACF;IACF,CAAC;EACDlf,CAAC,CAAC2Z,EAAE,CAACqN,EAAE,CAAC,CAAC,EAAEC,EAAE,CAACptB,GAAG,CAACmG,CAAC,CAAC;EACpB,IAAInB,CAAC,GAAG,KAAK,CAAC;IAAEyB,CAAC,GAAGokB,EAAE,CAAC,YAAM;MAC3B,IAAI7kB,CAAC,GAAGzB,CAAC,aAADA,CAAC,cAADA,CAAC,GAAID,CAAC,CAAC0iB,WAAW,CAACJ,EAAE,CAAC,CAAC,CAAC;MAChC,OAAOwE,EAAE,CAAC,YAAM;QACd,IAAItmB,CAAC,EAAE;UACLsnB,EAAE,CAAC,CAAC,CAAC,CAAC;UACN,IAAIzlB,CAAC,GACH;UACA6c,CACD;UACD7c,CAAC,CAAC3B,CAAC,GAAGF,CAAC;QACT;QACAhM,CAAC,KAAKmN,CAAC,CAACkqB,QAAQ,GAAGr3B,CAAC,CAAC,EAAEurB,CAAC,IAAIyK,EAAE,CAC5B;QACA9oB,CAAC,EACD,IACF,CAAC,EAAEhB,CAAC,GAAGX,CAAC,CAAC2B,CAAC,EAAEC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAEoe,CAAC,KAAKpB,CAAC,CAACkH,SAAS,GAAG5F,CAAC,CAAC,EAAEzf,CAAC,IAAIwnB,EAAE,CAAC,CAAC;MACzD,CAAC,CAAC,EAAE,YAAM;QACR,IAAInH,CAAC;QAAC,IAAAiL,UAAA,GAAAzU,0BAAA,CACQzV,CAAC;UAAAmqB,MAAA;QAAA;UAAf,KAAAD,UAAA,CAAAjqB,CAAA,MAAAkqB,MAAA,GAAAD,UAAA,CAAA3rB,CAAA,IAAA6C,IAAA,GAAiB;YAAA,IAARX,CAAC,GAAA0pB,MAAA,CAAA93B,KAAA;YACR+L,CAAC,CAACqpB,mBAAmB,CAAChnB,CAAC,EAAE2mB,EAAE,CAAC;YAC5B,IAAIlI,CAAC,GACH;YACAwK,EAAE,CAAC9V,GAAG,CAACnT,CAAC,CACT;YACD,EAAEye,CAAC,KAAK,CAAC,IAAInrB,QAAQ,CAAC0zB,mBAAmB,CAAChnB,CAAC,EAAE2mB,EAAE,CAAC,EAAEsC,EAAE,UAAO,CAACjpB,CAAC,CAAC,IAAIipB,EAAE,CAACtV,GAAG,CAAC3T,CAAC,EAAEye,CAAC,CAAC;UAChF;QAAC,SAAAQ,GAAA;UAAAwK,UAAA,CAAA/rB,CAAA,CAAAuhB,GAAA;QAAA;UAAAwK,UAAA,CAAAlqB,CAAA;QAAA;QACDknB,EAAE,UAAO,CAACjnB,CAAC,CAAC,EAAEH,CAAC,KAAKzB,CAAC,KAAK,CAAC4gB,CAAC,GAAGnf,CAAC,CAACmoB,UAAU,KAAK,IAAI,IAAIhJ,CAAC,CAACmL,WAAW,CAACtqB,CAAC,CAAC,CAAC;MAC3E,CAAC;IACH,CAAC,CAAC;EACF,OAAOuqB,EAAE,CAACjW,GAAG,CAACtV,CAAC,EAAEyB,CAAC,CAAC,EAAEzB,CAAC;AACxB;AACA,IAAIurB,EAAE,GAAG,eAAgB,IAAIC,OAAO,CAAC,CAAC;AACtC,SAASC,EAAEA,CAACpsB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAMC,CAAC,GAAGgsB,EAAE,CAACzW,GAAG,CAACzV,CAAC,CAAC;EACnB,OAAOE,CAAC,IAAIgsB,EAAE,UAAO,CAAClsB,CAAC,CAAC,EAAEE,CAAC,CAACD,CAAC,CAAC,IAAI+E,OAAO,CAACpC,OAAO,CAAC,CAAC;AACrD;AACA,SAASypB,EAAEA,CAACrsB,CAAC,EAAEC,CAAC,EAAmB;EAAA,IAAAqsB,KAAA,GAAA70B,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAR,CAAC,CAAC,EAAE,CAAC,CAAC;IAAA80B,KAAA,GAAAnV,cAAA,CAAAkV,KAAA;IAAdpsB,CAAC,GAAAqsB,KAAA;IAAE3qB,CAAC,GAAA2qB,KAAA;EACrBvM,CAAC,IAAI9f,CAAC,KAAK,CAAC,IAAIkgB,EAAE,CAAC,CAAC;EACpB,IAAI3rB,CAAC,GAAGuL,CAAC;IAAES,CAAC,GAAG,IAAI;IAAEH,CAAC,GAAG,IAAI;IAAEuB,CAAC,GAAGkY,CAAC;IAAEjY,CAAC,GAAG5B,CAAC,GAAG,CAAC,GAAG+a,EAAE,GAAG,CAAC;IAAEta,CAAC,GAAG,CAAC,CAAC;EAChE,IAAMyB,CAAC,GAAG,SAAJA,CAACA,CAAIE,CAAC,EAAa;MAAA,IAAXye,CAAC,GAAAtpB,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;MAClBkJ,CAAC,GAAG,CAAC,CAAC,EAAEgB,CAAC,CAACof,CAAC,EAAEze,CAAC,CAAC;IACjB,CAAC;IAAEX,CAAC,GAAG,SAAJA,CAACA,CAAIW,CAAC,EAAEye,CAAC,EAAK;MACf,IAAIlf,CAAC,MAAMA,CAAC,GAAGS,CAAC,CAAC,EAAE;MACnB,IAAIwe,CAAC,GAAG,CAAC,CAAC;MACV,IAAId,CAAC,IAAIpe,CAAC,KAAK,CAAC,CAAC,EAAE;QACjB,IAAI1B,CAAC,KAAK,CAAC,EAAE;UACX,IAAM+gB,CAAC,GACL;UACAxsB,CAAC,CAACO,IACH;UACDisB,CAAC,KAAKtH,EAAE,GAAG/X,CAAC,GAAG,CAAC,GAAGqf,CAAC,KAAKrH,EAAE,GAAGhY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAIA,CAAC,GAAG4qB,QAAQ,CAACvL,CAAC,CAACwL,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE7qB,CAAC,KAAKA,CAAC,KAAKA,CAAC,GAAGC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3G;QACA,IAAMmf,CAAC,GAAGpf,CAAC,GAAG1B,CAAC;QACf,CAAC,CAAC2B,CAAC,KAAKmf,CAAC,KAAKvsB,CAAC,GAAG8rB,EAAE,CAAC,CAAC,EAAEJ,EAAE,CAAC1rB,CAAC,CAAC,EAAEwrB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEa,CAAC,GAAG,CAAC,CAAC,EAAElf,CAAC,GAAG,CAAC,CAAC,CAAC;MACxD;MACAC,CAAC,IAAIpB,CAAC,GAAGinB,EAAE,CAACjnB,CAAC,CAAC,GAAGsgB,CAAC,KAAKtgB,CAAC,GAAGsmB,EAAE,CAAC;QAAA,OAAMhG,CAAC,CAACtsB,CAAC,CAAC;MAAA,EAAC,CAAC,EAAE6L,CAAC,IAAIomB,EAAE,CAACpmB,CAAC,EAAE,YAAM;QAC3DA,CAAC,GAAG,IAAI;MACV,CAAC,CAAC,KAAKA,CAAC,GAAGonB,EAAE,CAACpnB,CAAC,CAAC,GAAGygB,CAAC,KAAKzgB,CAAC,GAAGymB,EAAE,CAAC;QAAA,OAAMhG,CAAC,CAACtsB,CAAC,EAAE,CAACyL,CAAC,GAAG,CAAC,EAAE0B,CAAC,CAAC,CAAC;MAAA,EAAC,CAAC,EAAEnB,CAAC,IAAIimB,EAAE,CAACjmB,CAAC,EAAE,YAAM;QACzEA,CAAC,GAAG,IAAI;MACV,CAAC,CAAC,CAAC,EAAEqgB,CAAC,IAAIb,EAAE,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;EACD6G,EAAE,CAAC,YAAM;IACPnmB,CAAC,GAAG,CAAC,CAAC,EAAEV,CAAC,CAACmC,CAAC,CAAC,EAAEzB,CAAC,IAAIgB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;EAClC,CAAC,EAAEG,CAAC,CAAC,EAAEke,CAAC,KAAKvrB,CAAC,GAAGyrB,CAAC,CAAC;AACrB;AACA,SAASwM,EAAEA,CAAC1sB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAEnN,CAAC,EAAE;EACzB,IAAIgM,CAAC,GAAGT,CAAC;IAAEM,CAAC,GAAG,EAAE;IAAEuB,CAAC;EACpBilB,EAAE,CAAC,YAAM;IAAA,IAAA6F,GAAA;IACP,IAAIrsB,CAAC,MAAMA,CAAC,IAAAqsB,GAAA,GAAG1sB,CAAC,CAAC,CAAC,cAAA0sB,GAAA,cAAAA,GAAA,GAAI,EAAE,CAAC,EAAE;MACzB3M,CAAC,IAAII,EAAE,CAAC,CAAC;MACT;IACF;IACAve,CAAC,KAAK,KAAK,CAAC,KAAK0d,EAAE,CAAC1d,CAAC,CAAC,EAAEA,CAAC,GAAG,KAAK,CAAC,CAAC,EAAEvB,CAAC,KAAK,EAAE,KAAKuB,CAAC,GAAGklB,EAAE,CAAC,YAAM;MAC7D,IAAI/G,CAAC,EAAE;QACLE,CAAC,CAAClrB,IAAI;QACN,KAAK,IAAI8M,CAAC,GAAGse,EAAE,CAAC,CAAC,EAAEzf,CAAC,GAAGmB,CAAC,EAAEA,CAAC,KAAK,IAAI,KAAKA,CAAC,CAAC0e,QAAQ,KAAK,CAAC,IAAI;QAC7D1e,CAAC,CAAC9M,IAAI,KAAK,EAAE,CAAC,GACZ2L,CAAC,GAAGmB,CAAC,EAAEA,CAAC,GAAG;QACX,eAAgBue,EAAE,CAACve,CAAC,CAAC;QACvB,IAAIA,CAAC,KAAK,IAAI,EACZ,MAAMge,EAAE,CAAC,CAAC,EAAEhG,EAAE;QAChB2Q,EAAE,CAACvK,CAAC,EAAEvf,CAAC,CAAC,EAAEF,CAAC,GAAG0f,EAAE,CAACre,CAAC,CAAC;QACnB;MACF;MACA,IAAIM,CAAC,GAAG9B,CAAC,GAAG,EAAE;QAAEqB,CAAC,GAAG4oB,EAAE,CAACnoB,CAAC,CAAC;MACzBqoB,EAAE,CACA;MACA,eAAgBhI,EAAE,CAAC9gB,CAAC,CAAC,EACrB;MACAA,CAAC,CAACkpB,SACJ,CAAC,EAAEpqB,CAAC,CAACuiB,MAAM,CAACrhB,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;AACJ;AACA,SAASirB,EAAEA,CAAC5sB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAEnN,CAAC,EAAE;EACzB,IAAIoN,CAAC;EACLme,CAAC,IAAII,EAAE,CAAC,CAAC;EACT,IAAI3f,CAAC,GAAG,CAACoB,CAAC,GAAG5B,CAAC,CAAC4sB,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGhrB,CAAC,CAAC3B,CAAC,CAAC;IAAEI,CAAC,GAAG,CAAC,CAAC;EACvDG,CAAC,KAAK,CAAC,CAAC,KAAKA,CAAC,GAAGR,CAAC,CAAC6sB,QAAQ,EAAExsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEG,CAAC,KAAK,KAAK,CAAC,IAAIA,CAAC,CAACT,CAAC,EAAEM,CAAC,GAAG;IAAA,OAAMsB,CAAC;EAAA,IAAGA,CAAC,CAAC;AAC7E;AACA,SAASmrB,EAAEA,CAAC/sB,CAAC,EAAEC,CAAC,EAAE;EAChBwc,EAAE,CAAC,YAAM;IAAA,IAAAuQ,OAAA;IACP,IAAI9sB,CAAC,GAAGF,CAAC,CAACitB,WAAW,CAAC,CAAC;MAAErrB,CAAC,GACxB;MACA1B,CAAC,CAAC6pB,IAAI,IACJ;MACA7pB,CAAC,IAED,wBAAA8sB,OAAA,GACA9sB,CAAC,CAACgtB,IAAI,cAAAF,OAAA,cAAAA,OAAA,GAAI;MACV9sB,CAAC,CAACwpB,aAAa,CAACwD,IAEnB;IACD,IAAI,CAACtrB,CAAC,CAACzH,aAAa,CAAC,GAAG,GAAG8F,CAAC,CAACqI,IAAI,CAAC,EAAE;MAClC,IAAM7T,CAAC,GAAGmB,QAAQ,CAACwI,aAAa,CAAC,OAAO,CAAC;MACzC3J,CAAC,CAAC04B,EAAE,GAAGltB,CAAC,CAACqI,IAAI,EAAE7T,CAAC,CAACkE,WAAW,GAAGsH,CAAC,CAACmtB,IAAI,EAAExrB,CAAC,CAAC+gB,WAAW,CAACluB,CAAC,CAAC;IACzD;EACF,CAAC,CAAC;AACJ;AACA,IAAM44B,EAAE,GAAAxW,kBAAA,2BACO;AACf,SAASyW,EAAEA,CAACttB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;EACnB,IAAI0B,CAAC,GAAG,EAAE,GAAG5B,CAAC;EACd,IAAIE,CAAC,EAAE;IACL,KAAK,IAAIzL,CAAC,IAAIyL,CAAC,EACb,IAAIA,CAAC,CAACzL,CAAC,CAAC,EACNmN,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAG,GAAG,GAAGnN,CAAC,GAAGA,CAAC,CAAC,KACrB,IAAImN,CAAC,CAACtN,MAAM,EACf,KAAK,IAAImM,CAAC,GAAGhM,CAAC,CAACH,MAAM,EAAEgM,CAAC,GAAG,CAAC,EAAE,CAACA,CAAC,GAAGsB,CAAC,CAAC2U,OAAO,CAAC9hB,CAAC,EAAE6L,CAAC,CAAC,KAAK,CAAC,GAAI;MAC1D,IAAIuB,CAAC,GAAGvB,CAAC,GAAGG,CAAC;MACb,CAACH,CAAC,KAAK,CAAC,IAAI+sB,EAAE,CAAC7O,QAAQ,CAAC5c,CAAC,CAACtB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAMuB,CAAC,KAAKD,CAAC,CAACtN,MAAM,IAAI+4B,EAAE,CAAC7O,QAAQ,CAAC5c,CAAC,CAACC,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,GAAG,CAACtB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAGsB,CAAC,CAAC6qB,SAAS,CAAC,CAAC,EAAEnsB,CAAC,CAAC,IAAIsB,CAAC,CAAC6qB,SAAS,CAAC5qB,CAAC,GAAG,CAAC,CAAC,GAAGvB,CAAC,GAAGuB,CAAC;IACnJ;EACN;EACA,OAAOD,CAAC,KAAK,EAAE,GAAG,IAAI,GAAGA,CAAC;AAC5B;AACA,SAAS2rB,EAAEA,CAACvtB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAEnN,CAAC,EAAEgM,CAAC,EAAE;EAC5B,IAAIH,CAAC,GAAGN,CAAC,CAACiiB,WAAW;EACrB,IAAIjC,CAAC,IAAI1f,CAAC,KAAKJ,CAAC,EAAE;IAChB,IAAI2B,CAAC,GAAGyrB,EAAE,CAACptB,CAAC,EAAE0B,CAAC,EAAEnB,CAAC,CAAC;IACnB,CAAC,CAACuf,CAAC,IAAIne,CAAC,KAAK7B,CAAC,CAAC5F,YAAY,CAAC,OAAO,CAAC,MAAMyH,CAAC,IAAI,IAAI,GAAG7B,CAAC,CAACwtB,eAAe,CAAC,OAAO,CAAC,GAAGxtB,CAAC,CAACytB,SAAS,GAAG5rB,CAAC,CAAC,EAAE7B,CAAC,CAACiiB,WAAW,GAAG/hB,CAAC;EACxH,CAAC,MAAM,IAAIO,CAAC,IAAIhM,CAAC,KAAKgM,CAAC,EACrB,KAAK,IAAIqB,CAAC,IAAIrB,CAAC,EAAE;IACf,IAAIE,CAAC,GAAG,CAAC,CAACF,CAAC,CAACqB,CAAC,CAAC;IACd,CAACrN,CAAC,IAAI,IAAI,IAAIkM,CAAC,KAAK,CAAC,CAAClM,CAAC,CAACqN,CAAC,CAAC,KAAK9B,CAAC,CAACvE,SAAS,CAACiyB,MAAM,CAAC5rB,CAAC,EAAEnB,CAAC,CAAC;EACzD;EACF,OAAOF,CAAC;AACV;AACA,IAAMktB,EAAE,GAAGntB,MAAM,CAAC,mBAAmB,CAAC;EAAEotB,EAAE,GAAGptB,MAAM,CAAC,SAAS,CAAC;AAC9D,SAASqtB,EAAEA,CAAC7tB,CAAC,EAAE;EACb,IAAIggB,CAAC,EAAE;IACL,IAAI/f,CAAC,GAAG,CAAC,CAAC;MAAEC,CAAC,GAAG,SAAJA,CAACA,CAAA,EAAS;QACpB,IAAI,CAACD,CAAC,EAAE;UACN,IAAIA,CAAC,GAAG,CAAC,CAAC,EAAED,CAAC,CAAC8tB,YAAY,CAAC,OAAO,CAAC,EAAE;YACnC,IAAIlsB,CAAC,GAAG5B,CAAC,CAAC9L,KAAK;YACf65B,EAAE,CAAC/tB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAEA,CAAC,CAAC9L,KAAK,GAAG0N,CAAC;UACnC;UACA,IAAI5B,CAAC,CAAC8tB,YAAY,CAAC,SAAS,CAAC,EAAE;YAC7B,IAAIr5B,CAAC,GAAGuL,CAAC,CAACtH,OAAO;YACjBq1B,EAAE,CAAC/tB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAEA,CAAC,CAACtH,OAAO,GAAGjE,CAAC;UACvC;QACF;MACF,CAAC;IACDuL,CAAC,CAAC0oB,MAAM,GAAGxoB,CAAC,EAAEyc,EAAE,CAACzc,CAAC,CAAC,EAAEmoB,EAAE,CAAC,CAAC;EAC3B;AACF;AACA,SAAS2F,EAAEA,CAAChuB,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAIC,CAAC,GAAG+tB,EAAE,CAACjuB,CAAC,CAAC;EACbE,CAAC,CAAChM,KAAK,MAAMgM,CAAC,CAAChM,KAAK,GAAG;EACvB+L,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI,KAAK,CAAC,CAAC;EAAI;EAChB;EACAD,CAAC,CAAC9L,KAAK,KAAK+L,CAAC,KAAKA,CAAC,KAAK,CAAC,IAAID,CAAC,CAACkuB,QAAQ,KAAK,UAAU,CAAC,KAAKluB,CAAC,CAAC9L,KAAK,GAAG+L,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI,EAAE,CAAC;AAChF;AACA,SAAS8tB,EAAEA,CAAC/tB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;EACtB,IAAInN,CAAC,GAAGw5B,EAAE,CAACjuB,CAAC,CAAC;EACbggB,CAAC,KAAKvrB,CAAC,CAACwL,CAAC,CAAC,GAAGD,CAAC,CAAC5F,YAAY,CAAC6F,CAAC,CAAC,EAAEA,CAAC,KAAK,KAAK,IAAIA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,MAAM,IAAID,CAAC,CAACkuB,QAAQ,KAAK,MAAM,CAAC,IAAIz5B,CAAC,CAACwL,CAAC,CAAC,MAAMxL,CAAC,CAACwL,CAAC,CAAC,GAAGC,CAAC,CAAC,KAAKD,CAAC,KAAK,SAAS,KAAKD,CAAC,CAACsb,EAAE,CAAC,GAAGpb,CAAC,CAAC,EAAEA,CAAC,IAAI,IAAI,GAAGF,CAAC,CAACwtB,eAAe,CAACvtB,CAAC,CAAC,GAAG,OAAOC,CAAC,IAAI,QAAQ,IAAIiuB,EAAE,CAACnuB,CAAC,CAAC,CAACwe,QAAQ,CAACve,CAAC,CAAC,GAAGD,CAAC,CAACC,CAAC,CAAC,GAAGC,CAAC,GAAGF,CAAC,CAAC9H,YAAY,CAAC+H,CAAC,EAAEC,CAAC,CAAC,CAAC;AACpR;AACA,SAAS+tB,EAAEA,CAACjuB,CAAC,EAAE;EAAA,IAAAouB,eAAA;EACb;IACE;IACA;IAAA,CAAAA,eAAA,GACApuB,CAAC,CAACkiB,YAAY,cAAAkM,eAAA,cAAAA,eAAA,GAAKpuB,CAAC,CAACkiB,YAAY,GAAA1kB,qBAAA,CAAAA,qBAAA,KAC9BmwB,EAAE,EAAG3tB,CAAC,CAACkuB,QAAQ,CAAC1P,QAAQ,CAAC,GAAG,CAAC,GAC7BoP,EAAE,EAAG5tB,CAAC,CAACquB,YAAY,KAAKrU,EAAE;EAC5B;AAEL;AACA,IAAIsU,EAAE,GAAG,eAAgB,IAAIxY,GAAG,CAAC,CAAC;AAClC,SAASqY,EAAEA,CAACnuB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAGquB,EAAE,CAAC7Y,GAAG,CAACzV,CAAC,CAACkuB,QAAQ,CAAC;EAC1B,IAAIjuB,CAAC,EAAE,OAAOA,CAAC;EACfquB,EAAE,CAACrY,GAAG,CAACjW,CAAC,CAACkuB,QAAQ,EAAEjuB,CAAC,GAAG,EAAE,CAAC;EAC1B,KAAK,IAAIC,CAAC,EAAE0B,CAAC,GAAG5B,CAAC,EAAEvL,CAAC,GAAGqtB,OAAO,CAAC3hB,SAAS,EAAE1L,CAAC,KAAKmN,CAAC,GAAI;IACnD1B,CAAC,GAAG2b,EAAE,CAACja,CAAC,CAAC;IACT,KAAK,IAAInB,CAAC,IAAIP,CAAC,EACbA,CAAC,CAACO,CAAC,CAAC,CAACwV,GAAG,IAAIhW,CAAC,CAACkE,IAAI,CAAC1D,CAAC,CAAC;IACvBmB,CAAC,GAAGoa,EAAE,CAACpa,CAAC,CAAC;EACX;EACA,OAAO3B,CAAC;AACV;AACA,SAASsuB,EAAEA,CAACvuB,CAAC,EAAEC,CAAC,EAAS;EAAA,IAAPC,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAGwI,CAAC;EACrB4oB,EAAE,CAAC7oB,CAAC,EAAE,QAAQ,EAAE,UAAC4B,CAAC,EAAK;IACrB,IAAInN,CAAC,GAAGmN,CAAC,GAAG5B,CAAC,CAACwuB,cAAc,GAAGxuB,CAAC,CAACtH,OAAO;IACxCwH,CAAC,CAACzL,CAAC,CAAC;EACN,CAAC,CAAC;EAAE;EACJ;EACA,CAACurB,CAAC,IAAIhgB,CAAC,CAACwuB,cAAc,KAAKxuB,CAAC,CAACtH,OAAO;EAAI;EACxC8sB,EAAE,CAACvlB,CAAC,CAAC,IAAI,IAAI,KAAKC,CAAC,CAACF,CAAC,CAACtH,OAAO,CAAC,EAAEiuB,EAAE,CAAC,YAAM;IACvC,IAAI/kB,CAAC,GAAG3B,CAAC,CAAC,CAAC;IACXD,CAAC,CAACtH,OAAO,GAAG,CAAC,CAACkJ,CAAC;EACjB,CAAC,CAAC;AACJ;AACA,SAAS6sB,EAAEA,CAACzuB,CAAC,EAAEC,CAAC,EAAE;EAChB,OAAOD,CAAC,KAAKC,CAAC,IAAI,CAACD,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACob,EAAE,CAAC,MAAMnb,CAAC;AACtD;AACA,SAASyuB,EAAEA,CAAA,EAAkB;EAAA,IAAjB1uB,CAAC,GAAAvI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEwI,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,OAAAmD,SAAA,MAAApD,SAAA;EAAA,IAAE6L,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,OAAAmD,SAAA,MAAApD,SAAA;EAAA,IAAEuN,CAAC,GAAAnK,SAAA,CAAAnD,MAAA,OAAAmD,SAAA,MAAApD,SAAA;EACzB,OAAOiyB,EAAE,CAAC,YAAM;IACd,IAAI7xB,CAAC,EAAEgM,CAAC;IACR,OAAOkmB,EAAE,CAAC,YAAM;MACdlyB,CAAC,GAAGgM,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAE+kB,EAAE,CAAC,YAAM;QACtBxlB,CAAC,KAAKE,CAAC,CAAA8F,KAAA,SAAA6Q,kBAAA,CAAIpW,CAAC,EAAC,KAAKR,CAAC,CAAA+F,KAAA,UAAChG,CAAC,EAAA3F,MAAA,CAAAwc,kBAAA,CAAKpW,CAAC,GAAC,EAAEhM,CAAC,IAAIg6B,EAAE,CAACvuB,CAAC,CAAA8F,KAAA,SAAA6Q,kBAAA,CAAIpiB,CAAC,EAAC,EAAEuL,CAAC,CAAC,IAAIC,CAAC,CAAA+F,KAAA,UAAC,IAAI,EAAA3L,MAAA,CAAAwc,kBAAA,CAAKpiB,CAAC,GAAC,CAAC;MACrE,CAAC,CAAC;IACJ,CAAC,CAAC,EAAE,YAAM;MACRgoB,EAAE,CAAC,YAAM;QACPhc,CAAC,IAAIguB,EAAE,CAACvuB,CAAC,CAAA8F,KAAA,SAAA6Q,kBAAA,CAAIpW,CAAC,EAAC,EAAET,CAAC,CAAC,IAAIC,CAAC,CAAA+F,KAAA,UAAC,IAAI,EAAA3L,MAAA,CAAAwc,kBAAA,CAAKpW,CAAC,GAAC;MACtC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC,EAAET,CAAC;AACP;AACA,SAAS2uB,EAAEA,CAAC3uB,CAAC,EAAE;EACbmf,CAAC,KAAK,IAAI,IAAI2I,EAAE,CAAC,CAAC,EAAE5B,EAAE,CAAC,YAAM;IAC3B,IAAMjmB,CAAC,GAAGulB,EAAE,CAACxlB,CAAC,CAAC;IACf,IAAI,OAAOC,CAAC,IAAI,UAAU,EAAE,OAC1B,yBACAA,CAAC;EAEL,CAAC,CAAC;AACJ;AACA,SAAS2uB,EAAEA,CAAC5uB,CAAC,EAAE;EACbmf,CAAC,KAAK,IAAI,IAAI2I,EAAE,CAAC,CAAC,EAAE6G,EAAE,CAAC;IAAA,OAAM;MAAA,OAAMnJ,EAAE,CAACxlB,CAAC,CAAC;IAAA;EAAA,EAAC;AAC3C;AACA,IAAI6uB,EAAE,GAAG,CAAC,CAAC;AACX,SAASC,EAAEA,CAAC9uB,CAAC,EAAE;EACb,IAAIC,CAAC,GAAG4uB,EAAE;EACV,IAAI;IACF,OAAOA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC7uB,CAAC,CAAC,CAAC,EAAE6uB,EAAE,CAAC;EAC3B,CAAC,SAAS;IACRA,EAAE,GAAG5uB,CAAC;EACR;AACF;AACA,SAAS8uB,CAACA,CAAC/uB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;EAAA,IAAAotB,GAAA,EAAAC,IAAA,EAAAC,KAAA;EACrB,IAAIC,EAAE;EACN,IAAI16B,CAAC,GAAG,CAACyL,CAAC,GAAGmZ,EAAE,MAAM,CAAC;IAAE5Y,CAAC,GAAG,CAAC,CAAC;IAAEH,CAAC,GAAG,CAACJ,CAAC,GAAGqZ,EAAE,MAAM,CAAC;IAAE1X,CAAC,GAAG,CAAC3B,CAAC,GAAGsZ,EAAE,MAAM,CAAC;IAAE1X,CAAC,GAAG,CAAC,CAAC;IAAEnB,CAAC;EACjFL,CAAC,IAAA0uB,GAAA,GAAYF,EAAE,CAAC;IAAA,OACd,gBACA9uB,CAAC,CAACC,CAAC,CAAC;EAAA,CACL,CAAC,EAAAgvB,IAAA,GAAA7X,cAAA,CAAA4X,GAAA,MAHGruB,CAAC,GAAAsuB,IAAA,KAAEntB,CAAC,GAAAmtB,IAAA,KAAAD,GAAA,IAGJruB,CAAC,GAAG;EACTX,CAAC,CAACC,CAAC,CAAC;EACJ,IAAImC,CAAC,GAAGgZ,EAAE,IAAIpb,CAAC,IAAIqb,EAAE,IAAIrb,CAAC;IAAE2B,CAAC,GAAGrB,CAAC,MAAA4uB,KAAA,GAAM,CAACC,EAAE,GAAGvT,EAAE,CAAC5b,CAAC,EAAEC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGkvB,EAAE,CAAClZ,GAAG,cAAAiZ,KAAA,cAAAA,KAAA,GAAM9sB,CAAC,IAAInC,CAAC,IAAID,CAAC,IAAK,UAACovB,CAAC;MAAA,OAAKpvB,CAAC,CAACC,CAAC,CAAC,GAAGmvB,CAAC;IAAA,CAAC,CAAE,IAAI,KAAK,CAAC;IAAE9sB,CAAC,GACnI;IACAV,CACD;IAAEmf,CAAC,GAAG,CAAC,CAAC;IAAED,CAAC,GAAG,CAAC,CAAC;IAAEE,CAAC,GAAG,SAAJA,CAACA,CAAA;MAAA,OAAUF,CAAC,GAAG,CAAC,CAAC,EAAEC,CAAC,KAAKA,CAAC,GAAG,CAAC,CAAC,EAAElf,CAAC,GAAGS,CAAC,GAAGkjB,EAAE,CAC5D;MACA5jB,CACF,CAAC,GAAGU,CAAC,GAAG;MACRV,CAAC,CAAC,EAAEU,CAAC;IAAA,CAAC;EACN3B,CAAC,KAAK,KAAK,CAAC,IAAIiB,CAAC,KAAK,KAAK,CAAC,KAAKD,CAAC,IAAIlB,CAAC,IAAI4c,EAAE,CAAC,CAAC,EAAE1c,CAAC,GAAGqgB,CAAC,CAAC,CAAC,EAAErf,CAAC,IAAIA,CAAC,CAAChB,CAAC,CAAC,CAAC;EACpE,IAAIsgB,CAAC;EACL,IAAIA,CAAC,GAAG,SAAJA,CAACA,CAAA,EAAS;IACZ,IAAImO,CAAC,GACH;IACApvB,CAAC,CAACC,CAAC,CACJ;IACD,OAAOmvB,CAAC,KAAK,KAAK,CAAC,GAAGpO,CAAC,CAAC,CAAC,IAAID,CAAC,GAAG,CAAC,CAAC,EAAED,CAAC,GAAG,CAAC,CAAC,EAAEsO,CAAC,CAAC;EACjD,CAAC,EAAE,CAAClvB,CAAC,GAAGoZ,EAAE,MAAM,CAAC,EACf,OAAO2H,CAAC;EACV,IAAItf,CAAC,EAAE;IACL,IAAIuf,CAAC,GAAGlhB,CAAC,CAACqvB,QAAQ;IAClB,OAAO,UAASD,CAAC,EAAEE,CAAC,EAAE;MACpB,OAAO73B,SAAS,CAACnD,MAAM,GAAG,CAAC,IAAI,CAAC,CAACg7B,CAAC,IAAIpO,CAAC,IAAIpf,CAAC,KAAKH,CAAC,CAAC2tB,CAAC,GAAGrO,CAAC,CAAC,CAAC,GAAGmO,CAAC,CAAC,EAAEA,CAAC,IAAInO,CAAC,CAAC,CAAC;IAC3E,CAAC;EACH;EACA,IAAIE,CAAC,GAAG,CAAC,CAAC;IAAE3J,CAAC,GAAG,eAAgB0G,EAAE,CAACvd,CAAC,CAAC;IAAE4uB,EAAE,GAAG,eAAgBtQ,EAAE,CAAC,YAAM;MACnE,IAAImQ,CAAC,GAAGnO,CAAC,CAAC,CAAC;QAAEqO,CAAC,GAAGn5B,CAAC,CAACqhB,CAAC,CAAC;MACrB,OAAO2J,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC,EAAEmO,CAAC,IAAI9X,CAAC,CAACpV,CAAC,GAAGgtB,CAAC;IAClC,CAAC,CAAC;EACF,OAAO36B,CAAC,KAAK86B,EAAE,CAAC1R,MAAM,GAAGd,EAAE,CAAC,EAAE,UAASqS,CAAC,EAAEE,CAAC,EAAE;IAC3C,IAAI73B,SAAS,CAACnD,MAAM,GAAG,CAAC,EAAE;MACxB,IAAMk7B,CAAC,GAAGF,CAAC,GAAGn5B,CAAC,CAACo5B,EAAE,CAAC,GAAGjvB,CAAC,GAAGmgB,EAAE,CAAC2O,CAAC,CAAC,GAAGA,CAAC;MACnC,OAAOG,EAAE,CAAC1R,MAAM,CAAC2R,CAAC,CAAC,KAAKrO,CAAC,GAAG,CAAC,CAAC,EAAE7C,CAAC,CAAC9G,CAAC,EAAEgY,CAAC,CAAC,EAAE1O,CAAC,IAAIxe,CAAC,KAAK,KAAK,CAAC,KAAKA,CAAC,GAAGktB,CAAC,CAAC,EAAEhK,EAAE,CAAC;QAAA,OAAMrvB,CAAC,CAACo5B,EAAE,CAAC;MAAA,EAAC,CAAC,EAAEH,CAAC;IAC5F;IACA,OAAOj5B,CAAC,CAACo5B,EAAE,CAAC;EACd,CAAC;AACH;AACA,SAASE,EAAEA,CAACzvB,CAAC,EAAE;EACb,OAAO,IAAI0vB,EAAE,CAAC1vB,CAAC,CAAC;AAClB;AACA,IAAI2vB,EAAE,EAAEC,EAAE;AAAC,IACLF,EAAE;EACN;AACF;AACA;AACA;AACA;EACE,SAAAA,GAAYzvB,CAAC,EAAE;IAAA,IAAA4vB,SAAA;MAAA7c,MAAA;IAAAjf,qBAAA,OAAA27B,EAAA;IACb;IACA1X,EAAE,CAAC,IAAI,EAAE2X,EAAE,CAAC;IACZ;IACA3X,EAAE,CAAC,IAAI,EAAE4X,EAAE,CAAC;IACZ,IAAInvB,CAAC;IACL,IAAIP,CAAC,GAAG,eAAgB,IAAI4V,GAAG,CAAC,CAAC;MAAElU,CAAC,GAAG,SAAJA,CAACA,CAAItB,CAAC,EAAEuB,CAAC,EAAK;QAC/C,IAAIC,CAAC,GAAG,eAAgBoc,EAAE,CAACrc,CAAC,CAAC;QAC7B,OAAO3B,CAAC,CAAC+V,GAAG,CAAC3V,CAAC,EAAEwB,CAAC,CAAC,EAAEA,CAAC;MACvB,CAAC;IACD,IAAMrN,CAAC,GAAG,IAAIisB,KAAK,CAAAza,mBAAA,CAAAA,mBAAA,KACZhG,CAAC,CAACyrB,KAAK,IAAI,CAAC,CAAC;MAAEI,QAAQ,EAAE,CAAC;IAAC,IAChC;MACErW,GAAG,WAAHA,GAAGA,CAACnV,CAAC,EAAEuB,CAAC,EAAE;QAAA,IAAAiuB,MAAA;QACR,OAAO35B,CAAC,EAAA25B,MAAA,GAAC5vB,CAAC,CAACuV,GAAG,CAAC5T,CAAC,CAAC,cAAAiuB,MAAA,cAAAA,MAAA,GAAIluB,CAAC,CAACC,CAAC,EAAEuT,OAAO,CAACK,GAAG,CAACnV,CAAC,EAAEuB,CAAC,CAAC,CAAC,CAAC;MAC/C,CAAC;MACDmU,GAAG,WAAHA,GAAGA,CAAC1V,CAAC,EAAEuB,CAAC,EAAE;QAAA,IAAAkuB,OAAA;QACR,OAAOluB,CAAC,KAAKwZ,EAAE,GAAG,CAAC,CAAC,IAAIllB,CAAC,EAAA45B,OAAA,GAAC7vB,CAAC,CAACuV,GAAG,CAAC5T,CAAC,CAAC,cAAAkuB,OAAA,cAAAA,OAAA,GAAInuB,CAAC,CAACC,CAAC,EAAEuT,OAAO,CAACK,GAAG,CAACnV,CAAC,EAAEuB,CAAC,CAAC,CAAC,CAAC,EAAEuT,OAAO,CAACY,GAAG,CAAC1V,CAAC,EAAEuB,CAAC,CAAC,CAAC;MACpF,CAAC;MACDoU,GAAG,WAAHA,GAAGA,CAAC3V,CAAC,EAAEuB,CAAC,EAAEC,CAAC,EAAE;QAAA,IAAAkuB,OAAA;QACX,OAAO1R,CAAC,EAAA0R,OAAA,GAAC9vB,CAAC,CAACuV,GAAG,CAAC5T,CAAC,CAAC,cAAAmuB,OAAA,cAAAA,OAAA,GAAIpuB,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,EAAEA,CAAC,CAAC,EAAEsT,OAAO,CAACa,GAAG,CAAC3V,CAAC,EAAEuB,CAAC,EAAEC,CAAC,CAAC;MACxD;IACF,CACF,CAAC;IACDoW,EAAE,CAAC,IAAI,EAAE0X,EAAE,EAAE,CAAC3vB,CAAC,CAACgwB,OAAO,GAAG/E,EAAE,GAAGF,EAAE,EAAE/qB,CAAC,CAACiwB,SAAS,EAAE;MAC9Cjc,MAAM,EAAEhU,CAAC,CAACgU,MAAM;MAChBoX,MAAM,EAAEprB,CAAC,CAACorB,MAAM;MAChBK,KAAK,EAAEj3B,CAAC;MACRm3B,OAAO,EAAE3rB,CAAC,CAAC2rB,OAAO;MAClBR,KAAK,GAAAyE,SAAA,GAAE5vB,CAAC,CAACmrB,KAAK,cAAAyE,SAAA,cAAAA,SAAA,GAAI,CAAC,CAAC;MACpBvE,OAAO,EAAErrB,CAAC,CAACqrB;IACb,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC7qB,CAAC,GAAGR,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACyrB,KAAK,KAAK,IAAI,IAAIjrB,CAAC,CAAC0vB,MAAM,CAAC,IAAIlwB,CAAC,CAACmwB,IAAI,KAAK,CAAC,CAAC,KAAK/K,CAAC,CAAC,CAAC,EAAEnN,EAAE,CAAC,IAAI,EAAEyX,EAAE,EAAEl7B,CAAC,CAACq3B,QAAQ,CAAC;IAAC,IAAAuE,MAAA,YAAAA,OAAA;MAC9G,IAAM/vB,CAAC,GAAAgwB,YAAA,CAAAC,GAAA;MACVjwB,CAAC,KAAK,MAAM,IAAIA,CAAC,KAAK,UAAU,IAAIA,CAAC,KAAK,KAAK,IAAIqb,EAAE,CAAC3I,MAAI,EAAE1S,CAAC,EAAE;QAC7DmV,GAAG,WAAHA,GAAGA,CAAA,EAAG;UACJ,OAAOsC,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACtvB,CAAC,CAAC;QACvB,CAAC;QACD,yBACA2V,GAAG,WAAHA,GAAGA,CAACpU,CAAC,EAAE;UACLkW,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACtvB,CAAC,CAAC,GAAGuB,CAAC;QACpB,CAAC;QACDb,UAAU,EAAE,CAAC;MACf,CAAC,CAAC;IAAC;IAVL,SAAAuvB,GAAA,MAAAD,YAAA,GAAgB75B,MAAM,CAACC,IAAI,CAACqhB,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAAC,EAAAW,GAAA,GAAAD,YAAA,CAAAh8B,MAAA,EAAAi8B,GAAA;MAAAF,MAAA;IAAA;IAWxCtY,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACY,IAAI,GAAG;IACnB,UAAClwB,CAAC,EAAK;MACL7J,MAAM,CAACg6B,MAAM,CAACh8B,CAAC,EAAE6L,CAAC,CAAC;IACrB,CAAC,EAAEyX,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACc,QAAQ,GAAG,YAAM;MAC9BtE,EAAE,CAACrU,CAAC,CAAC/E,MAAI,EAAE4c,EAAE,CAAC,CAAC;IACjB,CAAC;EACH;EACA;EAAA,OAAA57B,kBAAA,CAAA07B,EAAA;IAAAz7B,GAAA;IAAAC,KAAA,EACA,SAAAs8B,IAAIA,CAACvwB,CAAC,EAAE;MACN8X,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACY,IAAI,CAACvwB,CAAC,CAAC;IACrB;IACA;AACF;AACA;AACA;AACA;EAJE;IAAAhM,GAAA;IAAAC,KAAA,EAKA,SAAAy8B,GAAGA,CAAC1wB,CAAC,EAAEC,CAAC,EAAE;MAAA,IAAAiT,MAAA;MACR4E,CAAC,CAAC,IAAI,EAAE4X,EAAE,CAAC,CAAC1vB,CAAC,CAAC,GAAG8X,CAAC,CAAC,IAAI,EAAE4X,EAAE,CAAC,CAAC1vB,CAAC,CAAC,IAAI,EAAE;MACrC,IAAM2B,CAAC,GAAG,SAAJA,CAACA,CAAA;QAAA,SAAAgvB,IAAA,GAAAn5B,SAAA,CAAAnD,MAAA,EAAOG,CAAC,OAAAuiB,KAAA,CAAA4Z,IAAA,GAAAC,IAAA,MAAAA,IAAA,GAAAD,IAAA,EAAAC,IAAA;UAADp8B,CAAC,CAAAo8B,IAAA,IAAAp5B,SAAA,CAAAo5B,IAAA;QAAA;QAAA,OAAK3wB,CAAC,CAACwB,IAAI,CAAAsE,KAAA,CAAN9F,CAAC,GAAMiT,MAAI,EAAA9Y,MAAA,CAAK5F,CAAC,EAAC;MAAA;MACtC,OAAOsjB,CAAC,CAAC,IAAI,EAAE4X,EAAE,CAAC,CAAC1vB,CAAC,CAAC,CAACkE,IAAI,CAACvC,CAAC,CAAC,EAAE,YAAM;QACnCmW,CAAC,CAAC5E,MAAI,EAAEwc,EAAE,CAAC,CAAC1vB,CAAC,CAAC,GAAG8X,CAAC,CAAC5E,MAAI,EAAEwc,EAAE,CAAC,CAAC1vB,CAAC,CAAC,CAAChG,MAAM,CACpC;QACA,UAACxF,CAAC;UAAA,OAAKA,CAAC,KAAKmN,CAAC;QAAA,CAChB,CAAC;MACH,CAAC;IACH;EAAC;IAAA3N,GAAA;IAAAC,KAAA,EACD,SAAAw8B,QAAQA,CAAA,EAAG;MACT3Y,CAAC,CAAC,IAAI,EAAE6X,EAAE,CAAC,CAACc,QAAQ,CAAC,CAAC;IACxB;EAAC;AAAA;AAEHf,EAAE,GAAG,IAAIxD,OAAO,CAAC,CAAC,EAAEyD,EAAE,GAAG,IAAIzD,OAAO,CAAC,CAAC;AACtC,IAAI2E,EAAE;AACN,OAAOC,WAAW,IAAI,UAAU,KAAKD,EAAE,0BAAAE,YAAA;EACrC;AACF;AACA;AACA;AACA;EACE,SAAAF,GAAY7wB,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;IAAA,IAAAkS,MAAA;IAAA/f,qBAAA,OAAA+8B,EAAA;IACnBhd,MAAA,GAAAgB,gBAAA,OAAAgc,EAAA;IACA;IACAjZ,EAAE,CAAA/D,MAAA,EAAO,QAAQ,CAAC;IAClB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,KAAK,CAAC;IACf;IACA+D,EAAE,CAAA/D,MAAA,EAAO,KAAK,CAAC;IACf;IACA+D,EAAE,CAAA/D,MAAA,EAAO,MAAM,EAAE,CAAC,CAAC,CAAC;IACpB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IACnB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IACnB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,OAAO,EAAE,CAAC,CAAC,CAAC;IACrB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,KAAK,EAAE,CAAC,CAAC,CAAC;IACnB;IACA+D,EAAE,CAAA/D,MAAA,EAAO,OAAO,EAAE,eAAgB,IAAIgC,GAAG,CAAC,CAAC,CAAC;IAC5C;IACA+B,EAAE,CAAA/D,MAAA,EAAO,MAAM,CAAC;IAChBA,MAAA,CAAKmd,MAAM,GAAGhxB,CAAC,EAAE6T,MAAA,CAAKod,GAAG,GAAGhxB,CAAC,EAAE0B,CAAC,IAAIkS,MAAA,CAAKqd,YAAY,CAAC;MAAEC,IAAI,EAAE;IAAO,CAAC,CAAC;IAAC,OAAAtd,MAAA;EAC1E;EACA;AACF;AACA;AACA;AACA;EAJEiB,eAAA,CAAA+b,EAAA,EAAAE,YAAA;EAAA,OAAAh9B,kBAAA,CAAA88B,EAAA;IAAA78B,GAAA;IAAAC,KAAA,EAKA,SAAAkL,gBAAgBA,CAACa,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;MACxB,IAAI,IAAI,CAACyvB,GAAG,CAACpxB,CAAC,CAAC,GAAG,IAAI,CAACoxB,GAAG,CAACpxB,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAACoxB,GAAG,CAACpxB,CAAC,CAAC,CAACkE,IAAI,CAACjE,CAAC,CAAC,EAAE,IAAI,CAACoxB,GAAG,EAAE;QAClE,IAAM78B,CAAC,GAAG,IAAI,CAAC68B,GAAG,CAACX,GAAG,CAAC1wB,CAAC,EAAEC,CAAC,CAAC;QAC5B,IAAI,CAACqxB,KAAK,CAACtb,GAAG,CAAC/V,CAAC,EAAEzL,CAAC,CAAC;MACtB;MACAugB,mBAAA,CAAA8b,EAAA,gCAAuB7wB,CAAC,EAAEC,CAAC,EAAE0B,CAAC;IAChC;IACA;AACF;AACA;AACA;AACA;EAJE;IAAA3N,GAAA;IAAAC,KAAA,EAKA,SAAAo1B,mBAAmBA,CAACrpB,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;MAC3B,IAAIoT,mBAAA,CAAA8b,EAAA,mCAA0B7wB,CAAC,EAAEC,CAAC,EAAE0B,CAAC,IAAG,IAAI,CAAC0vB,GAAG,EAAE;QAChD,IAAM78B,CAAC,GAAG,IAAI,CAAC88B,KAAK,CAAC9b,GAAG,CAACvV,CAAC,CAAC;QAC3BzL,CAAC,KAAKA,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC88B,KAAK,UAAO,CAACrxB,CAAC,CAAC,CAAC;MAClC;IACF;EAAC;IAAAjM,GAAA;IAAAC,KAAA;MAAA,IAAAs9B,kBAAA,GAAAlrB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CACD,SAAAuC,QAAA;QAAA,IAAAuqB,MAAA;QAAA,IAAAxxB,CAAA,EAAAC,CAAA,EAAA0B,CAAA,EAAA8vB,WAAA,EAAAC,OAAA,EAAAC,GAAA,EAAAC,WAAA,EAAAC,OAAA,EAAAC,GAAA,EAAAC,EAAA,EAAAv9B,CAAA,EAAAmC,GAAA,EAAAq7B,WAAA,EAAAC,OAAA,EAAAzxB,CAAA,EAAAH,CAAA;QAAA,OAAAP,yBAAA,GAAAoB,IAAA,UAAAqG,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAtC,IAAA,GAAAsC,QAAA,CAAA9D,IAAA;YAAA;cAAA,MACM,IAAI,CAACwuB,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAACb,GAAG;gBAAA7pB,QAAA,CAAA9D,IAAA;gBAAA;cAAA;cACvB1D,CAAC,GAAG,SAAJA,CAACA,CAAYxL,CAAC,EAAE;gBAClB,OAAO,UAACgM,CAAC,EAAK;kBACZ,IAAMH,CAAC,GAAG1K,QAAQ,CAACwI,aAAa,CAAC,MAAM,CAAC;kBACxC3J,CAAC,KAAK,SAAS,KAAK6L,CAAC,CAACoE,IAAI,GAAGjQ,CAAC,CAAC,EAAEs2B,EAAE,CAACtqB,CAAC,EAAEH,CAAC,CAAC;gBAC3C,CAAC;cACH,CAAC;cAAAmH,QAAA,CAAA9D,IAAA;cAAA,OACSqB,OAAO,CAACpC,OAAO,CAAC,CAAC;YAAA;cAAA,MAAE,CAAC,IAAI,CAACuvB,IAAI,IAAI,IAAI,CAACb,GAAG;gBAAA7pB,QAAA,CAAA9D,IAAA;gBAAA;cAAA;cAAA,OAAA8D,QAAA,CAAAjE,MAAA;YAAA;cAE7CtD,CAAC,GAAG,CAAC,CAAC,EAAE0B,CAAC,GAAGwwB,EAAE,CAAC,IAAI,CAAC;cAAAV,WAAA,GAAApa,0BAAA,CACV,IAAI,CAAC4Z,GAAG;cAAA;gBAAxB,KAAAQ,WAAA,CAAA5vB,CAAA,MAAA6vB,OAAA,GAAAD,WAAA,CAAAtxB,CAAA,IAAA6C,IAAA,GACE;kBADSxO,GAAC,GAAAk9B,OAAA,CAAAz9B,KAAA;kBACVO,GAAC,IAAImN,CAAC,KAAKnN,GAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC49B,GAAG,CAACvF,QAAQ,IAAI,IAAI,CAACuF,GAAG,CAACvF,QAAQ,GAAG7sB,CAAC,CAACxL,GAAC,CAAC,EAAEyL,CAAC,WAAQ,GAAG,CAAC,CAAC,IAAIA,CAAC,CAACzL,GAAC,CAAC,GAAGwL,CAAC,CAACxL,GAAC,CAAC,CAAC;gBAAA;cAAC,SAAA8sB,GAAA;gBAAAmQ,WAAA,CAAA1xB,CAAA,CAAAuhB,GAAA;cAAA;gBAAAmQ,WAAA,CAAA7vB,CAAA;cAAA;cAAAgwB,WAAA,GAAAva,0BAAA,CAC/F,IAAI,CAACgb,UAAU;cAAA;gBAA/B,KAAAT,WAAA,CAAA/vB,CAAA,MAAAgwB,OAAA,GAAAD,WAAA,CAAAzxB,CAAA,IAAA6C,IAAA,GAAiC;kBAAtBxO,GAAC,GAAAq9B,OAAA,CAAA59B,KAAA;kBACJuM,EAAC,GAAG,IAAI,CAAC8xB,KAAK,CAAC99B,GAAC,CAACiQ,IAAI,CAAC;kBAC5BjE,EAAC,IAAI,IAAI,CAAC4xB,GAAG,KAAK,IAAI,CAACA,GAAG,CAAC5xB,EAAC,CAAC,GAAG+xB,EAAE,CAAC/xB,EAAC,EAAEhM,GAAC,CAACP,KAAK,EAAE,IAAI,CAACu+B,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACvE;cAAC,SAAAlR,GAAA;gBAAAsQ,WAAA,CAAA7xB,CAAA,CAAAuhB,GAAA;cAAA;gBAAAsQ,WAAA,CAAAhwB,CAAA;cAAA;cACD,KAAWpN,CAAC,IAAI,IAAI,CAACg+B,KAAK,EACxB,EAAEh+B,CAAC,IAAI,IAAI,CAAC49B,GAAG,CAAC,IAAI,IAAI,CAAC59B,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC49B,GAAG,CAAC59B,CAAC,CAAC,GAAG,IAAI,CAACA,CAAC,CAAC,EAAE,OAAO,IAAI,CAACA,CAAC,CAAC,CAAC;cACnF,IAAI,CAAC68B,GAAG,GAAG7B,EAAE,CAAC;gBACZS,SAAS,EAAE,IAAI,CAACe,MAAM;gBACtBhd,MAAM,EAAE,IAAI,CAACye,UAAU,IAAI,IAAI;gBAC/BhH,KAAK,EAAAzlB,mBAAA,CAAAA,mBAAA,KACA,IAAI,CAACosB,GAAG;kBACXxF,OAAO,EAAE3sB,CAAC;kBACViwB,MAAM,EAAE;gBAAI;cAEhB,CAAC,CAAC,EAAE,IAAI,CAACwC,IAAI,GAAGpM,EAAE,CAAC,YAAM;gBACvBI,EAAE,CAAC,YAAM;kBACP,IAAIlyB,CAAC;kBACLg9B,MAAI,CAACmB,GAAG,GAAG,CAAC,CAAC;kBAAC,IAAAC,WAAA,GAAAvb,0BAAA,CACEoE,EAAE,CAAC+V,MAAI,CAACH,GAAG,CAAC;oBAAAwB,OAAA;kBAAA;oBAA5B,KAAAD,WAAA,CAAA/wB,CAAA,MAAAgxB,OAAA,GAAAD,WAAA,CAAAzyB,CAAA,IAAA6C,IAAA,GAA8B;sBAAA,IAAnBxC,CAAC,GAAAqyB,OAAA,CAAA5+B,KAAA;sBACV,IAAI,EAAE,CAACO,CAAC,GAAGg9B,MAAI,CAACgB,KAAK,CAAChyB,CAAC,CAAC,KAAK,IAAI,IAAIhM,CAAC,CAACs+B,OAAO,CAAC,EAAE;sBACjDtB,MAAI,CAACY,GAAG,CAAC5xB,CAAC,CAAC,GAAGgxB,MAAI,CAACH,GAAG,CAAC7wB,CAAC,CAAC;sBACzB,IAAMH,CAAC,GAAGkyB,EAAE,CACV/xB,CAAC,EACDgxB,MAAI,CAACY,GAAG,CAAC5xB,CAAC,CAAC,EACXgxB,MAAI,CAACgB,KAAK,EACV,aACF,CAAC;sBACDnyB,CAAC,IAAI,IAAI,GAAGmxB,MAAI,CAACjE,eAAe,CAACiE,MAAI,CAACgB,KAAK,CAAChyB,CAAC,CAAC,CAACuyB,SAAS,IAAIvyB,CAAC,CAAC,GAAGgxB,MAAI,CAACv5B,YAAY,CAACu5B,MAAI,CAACgB,KAAK,CAAChyB,CAAC,CAAC,CAACuyB,SAAS,IAAIvyB,CAAC,EAAEH,CAAC,CAAC;oBACrH;kBAAC,SAAAihB,GAAA;oBAAAsR,WAAA,CAAA7yB,CAAA,CAAAuhB,GAAA;kBAAA;oBAAAsR,WAAA,CAAAhxB,CAAA;kBAAA;kBACD4vB,MAAI,CAACmB,GAAG,GAAG,CAAC,CAAC;gBACf,CAAC,CAAC;cACJ,CAAC,CAAC;cACF,KAAWn+B,GAAC,IAAI,IAAI,CAAC48B,GAAG;gBAAAY,WAAA,GAAA3a,0BAAA,CACN,IAAI,CAAC+Z,GAAG,CAAC58B,GAAC,CAAC;gBAAA;kBAA3B,KAAAw9B,WAAA,CAAAnwB,CAAA,MAAAowB,OAAA,GAAAD,WAAA,CAAA7xB,CAAA,IAAA6C,IAAA,GAA6B;oBAAlBxC,CAAC,GAAAyxB,OAAA,CAAAh+B,KAAA;oBACJoM,CAAC,GAAG,IAAI,CAACgxB,GAAG,CAACX,GAAG,CAACl8B,GAAC,EAAEgM,CAAC,CAAC;oBAC5B,IAAI,CAAC8wB,KAAK,CAACtb,GAAG,CAACxV,CAAC,EAAEH,CAAC,CAAC;kBACtB;gBAAC,SAAAihB,GAAA;kBAAA0Q,WAAA,CAAAjyB,CAAA,CAAAuhB,GAAA;gBAAA;kBAAA0Q,WAAA,CAAApwB,CAAA;gBAAA;cAAA;cACH,IAAI,CAACwvB,GAAG,GAAG,CAAC,CAAC;YAAC;YAAA;cAAA,OAAA5pB,QAAA,CAAAnC,IAAA;UAAA;QAAA,GAAA4B,OAAA;MAAA,CAEjB;MAAA,SApDK+rB,iBAAiBA,CAAA;QAAA,OAAAzB,kBAAA,CAAAxrB,KAAA,OAAAvO,SAAA;MAAA;MAAA,OAAjBw7B,iBAAiB;IAAA,IAqDvB;IACA;IACA;AACF;AACA;AACA;AACA;EAJE;IAAAh/B,GAAA;IAAAC,KAAA,EAKA,SAAAg/B,wBAAwBA,CAACjzB,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;MAChC,IAAInN,CAAC;MACL,IAAI,CAACm+B,GAAG,KAAK3yB,CAAC,GAAG,IAAI,CAACsyB,KAAK,CAACtyB,CAAC,CAAC,EAAE,IAAI,CAACoyB,GAAG,CAACpyB,CAAC,CAAC,GAAGuyB,EAAE,CAACvyB,CAAC,EAAE2B,CAAC,EAAE,IAAI,CAAC6wB,KAAK,EAAE,QAAQ,CAAC,EAAE,CAACh+B,CAAC,GAAG,IAAI,CAAC68B,GAAG,KAAK,IAAI,IAAI78B,CAAC,CAAC+7B,IAAI,CAAAhzB,qBAAA,KAAIyC,CAAC,EAAG,IAAI,CAACoyB,GAAG,CAACpyB,CAAC,CAAC,CAAE,CAAC,CAAC;IACvI;EAAC;IAAAhM,GAAA;IAAAC,KAAA,EACD,SAAAi/B,oBAAoBA,CAAA,EAAG;MAAA,IAAAC,MAAA;MACrB,IAAI,CAACjB,IAAI,GAAG,CAAC,CAAC,EAAEntB,OAAO,CAACpC,OAAO,CAAC,CAAC,CAACE,IAAI,CAAC,YAAM;QAC3C,CAACswB,MAAI,CAACjB,IAAI,IAAIiB,MAAI,CAAC9B,GAAG,KAAK8B,MAAI,CAAC9B,GAAG,CAACZ,QAAQ,CAAC,CAAC,EAAE0C,MAAI,CAACT,IAAI,CAAC,CAAC,EAAES,MAAI,CAAC9B,GAAG,GAAG,KAAK,CAAC,CAAC;MACjF,CAAC,CAAC;IACJ;IACA;AACF;AACA;EAFE;IAAAr9B,GAAA;IAAAC,KAAA,EAGA,SAAAq+B,KAAKA,CAACtyB,CAAC,EAAE;MAAA,IAAAozB,MAAA;MACP,OAAO3X,EAAE,CAAC,IAAI,CAAC+W,KAAK,CAAC,CAACa,IAAI,CACxB,UAACpzB,CAAC;QAAA,OAAKmzB,MAAI,CAACZ,KAAK,CAACvyB,CAAC,CAAC,CAAC8yB,SAAS,KAAK/yB,CAAC,IAAI,CAACozB,MAAI,CAACZ,KAAK,CAACvyB,CAAC,CAAC,CAAC8yB,SAAS,IAAI9yB,CAAC,CAACqzB,WAAW,CAAC,CAAC,KAAKtzB,CAAC;MAAA,CAC3F,CAAC,IAAIA,CAAC;IACR;EAAC;AAAA,eAAA4V,gBAAA,CAjIqDkb,WAAW,EAkIlE,CAAC;AACF,SAASyB,EAAEA,CAACxyB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAE;EACtB,IAAInB,CAAC;EACL,IAAMhM,CAAC,GAAG,CAACgM,CAAC,GAAGP,CAAC,CAACF,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGS,CAAC,CAAChI,IAAI;EAC9C,IAAIwH,CAAC,GAAGxL,CAAC,KAAK,SAAS,IAAI,OAAOwL,CAAC,IAAI,SAAS,GAAGA,CAAC,IAAI,IAAI,GAAGA,CAAC,EAAE,CAAC2B,CAAC,IAAI,CAAC1B,CAAC,CAACF,CAAC,CAAC,EAC3E,OAAOC,CAAC;EACV,IAAI2B,CAAC,KAAK,aAAa,EACrB,QAAQnN,CAAC;IACP,KAAK,QAAQ;IACb,KAAK,OAAO;MACV,OAAOwL,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG/K,IAAI,CAACC,SAAS,CAAC8K,CAAC,CAAC;IAC7C,KAAK,SAAS;MACZ,OAAOA,CAAC,GAAG,EAAE,GAAG,IAAI;IACtB,KAAK,QAAQ;MACX,OAAOA,CAAC,aAADA,CAAC,cAADA,CAAC,GAAI,IAAI;IAClB;MACE,OAAOA,CAAC;EACZ,CAAC,MAED,QAAQxL,CAAC;IACP,KAAK,QAAQ;IACb,KAAK,OAAO;MACV,OAAOwL,CAAC,IAAI/K,IAAI,CAACuK,KAAK,CAACQ,CAAC,CAAC;IAC3B,KAAK,SAAS;MACZ,OAAOA,CAAC;IACV;IACA,KAAK,QAAQ;MACX,OAAOA,CAAC,IAAI,IAAI,GAAG,CAACA,CAAC,GAAGA,CAAC;IAC3B;MACE,OAAOA,CAAC;EACZ;AACJ;AACA,SAASmyB,EAAEA,CAACpyB,CAAC,EAAE;EACb,IAAMC,CAAC,GAAG,CAAC,CAAC;EACZ,OAAOD,CAAC,CAACwzB,UAAU,CAACx0B,OAAO,CAAC,UAACkB,CAAC,EAAK;IACjCD,CAAC,CACC;IACAC,CAAC,CAACuzB,IAAI,IAAI,SAAS,CACpB,GAAG,CAAC,CAAC;EACR,CAAC,CAAC,EAAExzB,CAAC;AACP;AACA,SAASyzB,EAAEA,CAAC1zB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE0B,CAAC,EAAEnN,CAAC,EAAEgM,CAAC,EAAE;EAC5B,IAAIH,CAAC,0BAAAqzB,GAAA;IACH,SAAArzB,EAAA,EAAc;MAAA,IAAAszB,MAAA;MAAA7/B,qBAAA,OAAAuM,CAAA;MACZszB,MAAA,GAAA9e,gBAAA,OAAAxU,CAAA,GAAMN,CAAC,EAAEE,CAAC,EAAEzL,CAAC,IAAGm/B,MAAA,CAAKnB,KAAK,GAAGxyB,CAAC;MAAC,OAAA2zB,MAAA;IACjC;IAAC7e,eAAA,CAAAzU,CAAA,EAAAqzB,GAAA;IAAA,OAAA3/B,kBAAA,CAAAsM,CAAA;MAAArM,GAAA;MAAAwhB,GAAA,EACD,SAAAA,IAAA,EAAgC;QAC9B,OAAOiG,EAAE,CAACzb,CAAC,CAAC,CAAC4mB,GAAG,CACd,UAAChlB,CAAC;UAAA,OAAK,CAAC5B,CAAC,CAAC4B,CAAC,CAAC,CAACmxB,SAAS,IAAInxB,CAAC,EAAE0xB,WAAW,CAAC,CAAC;QAAA,CAC5C,CAAC;MACH;IAAC;EAAA,EARmBzC,EAAE,CASvB;EACD,OAAOpV,EAAE,CAACzb,CAAC,CAAC,CAACjB,OAAO,CAAC,UAAC6C,CAAC,EAAK;IAC1B8Z,EAAE,CAACrb,CAAC,CAACH,SAAS,EAAE0B,CAAC,EAAE;MACjB4T,GAAG,WAAHA,GAAGA,CAAA,EAAG;QACJ,OAAO,IAAI,CAAC6b,GAAG,IAAIzvB,CAAC,IAAI,IAAI,CAACyvB,GAAG,GAAG,IAAI,CAACA,GAAG,CAACzvB,CAAC,CAAC,GAAG,IAAI,CAACwwB,GAAG,CAACxwB,CAAC,CAAC;MAC9D,CAAC;MACDoU,GAAG,WAAHA,GAAGA,CAACnU,CAAC,EAAE;QACL,IAAIH,CAAC;QACLG,CAAC,GAAG0wB,EAAE,CAAC3wB,CAAC,EAAEC,CAAC,EAAE7B,CAAC,CAAC,EAAE,IAAI,CAACoyB,GAAG,CAACxwB,CAAC,CAAC,GAAGC,CAAC;QAChC,IAAInB,CAAC,GAAG,IAAI,CAAC2wB,GAAG;QAChB,IAAI3wB,CAAC,EAAE;UACL,IAAIyB,CAAC,GAAG,CAACT,CAAC,GAAGia,EAAE,CAACjb,CAAC,EAAEkB,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGF,CAAC,CAAC8T,GAAG;UAC/CrT,CAAC,GAAGzB,CAAC,CAACkB,CAAC,CAAC,GAAGC,CAAC,GAAGnB,CAAC,CAAC6vB,IAAI,CAAAhzB,qBAAA,KAAIqE,CAAC,EAAGC,CAAC,CAAE,CAAC;QACnC;MACF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,EAAEF,CAAC,CAAC5C,OAAO,CAAC,UAAC6C,CAAC,EAAK;IACnB8Z,EAAE,CAACrb,CAAC,CAACH,SAAS,EAAE0B,CAAC,EAAE;MACjB4T,GAAG,WAAHA,GAAGA,CAAA,EAAG;QACJ,IAAI3T,CAAC;QACL,OAAO,CAACA,CAAC,GAAG,IAAI,CAACwvB,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGxvB,CAAC,CAACD,CAAC,CAAC;MAC/C;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,EAAE7B,CAAC,CAACjI,OAAO,GAAG;EAChBuI,CAAC,EAAEA,CAAC;AACN;AACA,IAAMuzB,EAAE,GAAG,IAAIC,WAAW,CAAC,CAAC;AAC5B,SAASC,EAAEA,CAAC/zB,CAAC,EAAE;EACb,OAAO6W,kBAAA,CAAI,IAAImd,UAAU,CAACh0B,CAAC,CAAC,EAAE6mB,GAAG,CAAC,UAAC5mB,CAAC;IAAA,OAAKA,CAAC,CAAC0I,QAAQ,CAAC,EAAE,CAAC,CAACsrB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAAA,EAAC,CAACC,IAAI,CAAC,EAAE,CAAC;AACpF;AAAC,SACcC,EAAEA,CAAA9rB,EAAA;EAAA,OAAA+rB,GAAA,CAAApuB,KAAA,OAAAvO,SAAA;AAAA;AAAA,SAAA28B,IAAA;EAAAA,GAAA,GAAA9tB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAAgK,UAAkB3O,CAAC;IAAA,IAAAC,CAAA;MAAAC,CAAA;MAAA0B,CAAA;MAAAnN,CAAA;MAAA4/B,OAAA,GAAA58B,SAAA;IAAA,OAAAsI,yBAAA,GAAAoB,IAAA,UAAA0N,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAA3J,IAAA,GAAA2J,UAAA,CAAAnL,IAAA;QAAA;UAAE1D,CAAC,GAAAo0B,OAAA,CAAA//B,MAAA,QAAA+/B,OAAA,QAAAhgC,SAAA,GAAAggC,OAAA,MAAG,SAAS;UAAEn0B,CAAC,GAAAm0B,OAAA,CAAA//B,MAAA,QAAA+/B,OAAA,QAAAhgC,SAAA,GAAAggC,OAAA,MAAG,GAAG;UACnCzyB,CAAC,GAAG5L,IAAI,CAACs+B,GAAG,CAAC,CAAC,CAAC3rB,QAAQ,CAAC,EAAE,CAAC;UACjC3I,CAAC,KAAKA,CAAC,GAAGu0B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAGv0B,CAAC,CAAC,CAAC;UAAC4O,UAAA,CAAAnL,IAAA;UAAA,OACzB+wB,EAAE,CAAC9yB,CAAC,EAAE5B,CAAC,EAAEC,CAAC,CAAC;QAAA;UAArBxL,CAAC,GAAAqa,UAAA,CAAAzL,IAAA;UAAA,OAAAyL,UAAA,CAAAtL,MAAA,WACA;YACLmxB,SAAS,EAAE10B,CAAC;YACZ20B,SAAS,EAAEngC,CAAC;YACZogC,IAAI,EAAEjzB,CAAC;YACPkzB,SAAS,EAAE;UACb,CAAC;QAAA;QAAA;UAAA,OAAAhmB,UAAA,CAAAxJ,IAAA;MAAA;IAAA,GAAAqJ,SAAA;EAAA,CACF;EAAA,OAAAylB,GAAA,CAAApuB,KAAA,OAAAvO,SAAA;AAAA;AAAA,SACci9B,EAAEA,CAAArqB,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAwqB,GAAA,CAAA/uB,KAAA,OAAAvO,SAAA;AAAA;AAAA,SAAAs9B,IAAA;EAAAA,GAAA,GAAAzuB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA2K,UAAkBtP,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAAA,OAAAH,yBAAA,GAAAoB,IAAA,UAAAqO,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAAtK,IAAA,GAAAsK,UAAA,CAAA9L,IAAA;QAAA;UAAA,MACnB,QAAOqxB,MAAM,iCAAAryB,aAAA,CAANqyB,MAAM,KAAG,GAAG,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAACC,MAAM,CAAC;YAAAxlB,UAAA,CAAA9L,IAAA;YAAA;UAAA;UAAA,MACxE,IAAIX,KAAK,CAAC,kIAAkI,CAAC;QAAA;UAAAyM,UAAA,CAAAxH,EAAA,GAC9I8rB,EAAE;UAAAtkB,UAAA,CAAA9L,IAAA;UAAA,OACDqxB,MAAM,CAACC,MAAM,CAACC,MAAM,CACxBh1B,CAAC,CAAC1H,WAAW,CAAC,CAAC,EACfq7B,EAAE,CAACsB,MAAM,CAACn1B,CAAC,GAAGC,CAAC,CACjB,CAAC;QAAA;UAAAwP,UAAA,CAAA2lB,EAAA,GAAA3lB,UAAA,CAAApM,IAAA;UAAA,OAAAoM,UAAA,CAAAjM,MAAA,eAAAiM,UAAA,CAAAxH,EAAA,EAAAwH,UAAA,CAAA2lB,EAAA;QAAA;QAAA;UAAA,OAAA3lB,UAAA,CAAAnK,IAAA;MAAA;IAAA,GAAAgK,SAAA;EAAA,CAEJ;EAAA,OAAAylB,GAAA,CAAA/uB,KAAA,OAAAvO,SAAA;AAAA;AACD,SAAS49B,EAAEA,CAACr1B,CAAC,EAAEC,CAAC,EAAiC;EAAA,IAA/BC,CAAC,GAAAzI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,SAAS;EAAA,IAAEmK,CAAC,GAAAnK,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,GAAG;EAAA,IAAEhD,CAAC,GAAAgD,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,CAAC;EAC7C,IAAMgJ,CAAC,GAAG,IAAI60B,eAAe,CAAC,CAAC;IAAEh1B,CAAC,GAAGtK,IAAI,CAACs+B,GAAG,CAAC,CAAC;EAC/C,OAAO;IACLiB,OAAO,EAAEjvB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAC,SAAAuE,SAAA;MAAA,IAAApH,CAAA;MAAA,OAAA/B,yBAAA,GAAAoB,IAAA,UAAAgI,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAjE,IAAA,GAAAiE,SAAA,CAAAzF,IAAA;UAAA;YACC7B,CAAC,GAAGrN,CAAC;UAAA;YAAA,MAAEqN,CAAC,IAAIF,CAAC;cAAAwH,SAAA,CAAAzF,IAAA;cAAA;YAAA;YAAA,KAChBlD,CAAC,CAAC+0B,MAAM,CAACC,OAAO;cAAArsB,SAAA,CAAAzF,IAAA;cAAA;YAAA;YAAA,OAAAyF,SAAA,CAAA5F,MAAA,WACX,IAAI;UAAA;YAAA4F,SAAA,CAAAzF,IAAA;YAAA,OACH+wB,EAAE,CAACz0B,CAAC,EAAE6B,CAAC,EAAE5B,CAAC,CAAC;UAAA;YAAAkJ,SAAA,CAAAnB,EAAA,GAAAmB,SAAA,CAAA/F,IAAA;YAAA+F,SAAA,CAAAgsB,EAAA,GAAKp1B,CAAC;YAAA,MAAAoJ,SAAA,CAAAnB,EAAA,KAAAmB,SAAA,CAAAgsB,EAAA;cAAAhsB,SAAA,CAAAzF,IAAA;cAAA;YAAA;YAAA,OAAAyF,SAAA,CAAA5F,MAAA,WAClB;cACLkyB,MAAM,EAAE5zB,CAAC;cACT6zB,IAAI,EAAE3/B,IAAI,CAACs+B,GAAG,CAAC,CAAC,GAAGh0B;YACrB,CAAC;UAAA;YAPmBwB,CAAC,IAAI,CAAC;YAAAsH,SAAA,CAAAzF,IAAA;YAAA;UAAA;YAAA,OAAAyF,SAAA,CAAA5F,MAAA,WASvB,IAAI;UAAA;UAAA;YAAA,OAAA4F,SAAA,CAAA9D,IAAA;QAAA;MAAA,GAAA4D,QAAA;IAAA,CACZ,GAAE,CAAC;IACJ0sB,UAAU,EAAEn1B;EACd,CAAC;AACH;AACA,SAASo1B,EAAEA,CAAA,EAAG;EACZ,IAAI;IACF,OAAOC,IAAI,CAACC,cAAc,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC,CAACC,QAAQ;EACzD,CAAC,CAAC,OAAAC,QAAA,EAAM,CACR;AACF;AACA,SAASC,EAAEA,CAACn2B,CAAC,EAAE;EACb,IAAMC,CAAC,GAAGm2B,IAAI,CAACp2B,CAAC,CAAC;IAAEE,CAAC,GAAG,IAAI8zB,UAAU,CAAC/zB,CAAC,CAAC3L,MAAM,CAAC;EAC/C,KAAK,IAAIsN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,CAAC,CAAC3L,MAAM,EAAEsN,CAAC,EAAE,EAC/B1B,CAAC,CAAC0B,CAAC,CAAC,GAAG3B,CAAC,CAACo2B,UAAU,CAACz0B,CAAC,CAAC;EACxB,OAAO1B,CAAC;AACV;AACA,SAASo2B,EAAEA,CAACt2B,CAAC,EAAU;EAAA,IAARC,CAAC,GAAAxI,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,EAAE;EACnB,IAAMyI,CAAC,GAAG,IAAI8zB,UAAU,CAAC/zB,CAAC,CAAC;EAC3B,KAAK,IAAI2B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,CAAC,EAAE2B,CAAC,EAAE,EACxB1B,CAAC,CAAC0B,CAAC,CAAC,GAAG5B,CAAC,GAAG,GAAG,EAAEA,CAAC,GAAGu0B,IAAI,CAACgC,KAAK,CAACv2B,CAAC,GAAG,GAAG,CAAC;EACzC,OAAOE,CAAC;AACV;AAAC,SACcs2B,EAAEA,CAAAxrB,GAAA;EAAA,OAAAyrB,GAAA,CAAAzwB,KAAA,OAAAvO,SAAA;AAAA;AAAA,SAAAg/B,IAAA;EAAAA,GAAA,GAAAnwB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA+xB,UAAkB12B,CAAC;IAAA,IAAAC,CAAA;MAAAC,CAAA;MAAA0B,CAAA;MAAAnN,CAAA;MAAAgM,CAAA;MAAAH,CAAA;MAAAuB,CAAA;MAAAC,CAAA;MAAAnB,CAAA;MAAAyB,CAAA;MAAAu0B,OAAA,GAAAl/B,SAAA;IAAA,OAAAsI,yBAAA,GAAAoB,IAAA,UAAAy1B,WAAAC,UAAA;MAAA,kBAAAA,UAAA,CAAA1xB,IAAA,GAAA0xB,UAAA,CAAAlzB,IAAA;QAAA;UAAE1D,CAAC,GAAA02B,OAAA,CAAAriC,MAAA,QAAAqiC,OAAA,QAAAtiC,SAAA,GAAAsiC,OAAA,MAAG,EAAE;UAAEz2B,CAAC,GAAAy2B,OAAA,CAAAriC,MAAA,QAAAqiC,OAAA,QAAAtiC,SAAA,GAAAsiC,OAAA,MAAG,GAAG;UAAE/0B,CAAC,GAAA+0B,OAAA,CAAAriC,MAAA,QAAAqiC,OAAA,QAAAtiC,SAAA,GAAAsiC,OAAA,MAAG,CAAC;UACnCliC,CAAC,GAAG,SAAS,EAAEgM,CAAC,GAAG,IAAI60B,eAAe,CAAC,CAAC,EAAEh1B,CAAC,GAAGtK,IAAI,CAACs+B,GAAG,CAAC,CAAC,EAAEzyB,CAAC;YAAA,IAAAi1B,KAAA,GAAAxwB,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAG,SAAAoyB,UAAA;cAAA,IAAA30B,CAAA,EAAAT,CAAA;cAAA,OAAA5B,yBAAA,GAAAoB,IAAA,UAAA61B,WAAAC,UAAA;gBAAA,kBAAAA,UAAA,CAAA9xB,IAAA,GAAA8xB,UAAA,CAAAtzB,IAAA;kBAAA;oBACzDvB,CAAC,GAAGR,CAAC;kBAAA;oBAAA,MAAEQ,CAAC,IAAIlC,CAAC;sBAAA+2B,UAAA,CAAAtzB,IAAA;sBAAA;oBAAA;oBAAA,MAChBlD,CAAC,CAAC+0B,MAAM,CAACC,OAAO,IAAI,CAAC3zB,CAAC,IAAI,CAACnB,CAAC;sBAAAs2B,UAAA,CAAAtzB,IAAA;sBAAA;oBAAA;oBAAA,OAAAszB,UAAA,CAAAzzB,MAAA,WACvB,IAAI;kBAAA;oBAAAyzB,UAAA,CAAA9xB,IAAA;oBAAA8xB,UAAA,CAAAtzB,IAAA;oBAAA,OAEKqxB,MAAM,CAACC,MAAM,CAACiC,OAAO,CACnC;sBACExyB,IAAI,EAAEjQ,CAAC;sBACP0iC,EAAE,EAAEb,EAAE,CAACl0B,CAAC;oBACV,CAAC,EACDN,CAAC,EACDnB,CACF,CAAC;kBAAA;oBAPKgB,CAAC,GAAAs1B,UAAA,CAAA5zB,IAAA;oBAAA,KAQH1B,CAAC;sBAAAs1B,UAAA,CAAAtzB,IAAA;sBAAA;oBAAA;oBAAA,OAAAszB,UAAA,CAAAzzB,MAAA,WACI;sBACL4zB,SAAS,EAAE,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAAC31B,CAAC,CAAC;sBACtCg0B,IAAI,EAAE3/B,IAAI,CAACs+B,GAAG,CAAC,CAAC,GAAGh0B;oBACrB,CAAC;kBAAA;oBAAA22B,UAAA,CAAAtzB,IAAA;oBAAA;kBAAA;oBAAAszB,UAAA,CAAA9xB,IAAA;oBAAA8xB,UAAA,CAAAhvB,EAAA,GAAAgvB,UAAA;kBAAA;oBAhBiB70B,CAAC,IAAI,CAAC;oBAAA60B,UAAA,CAAAtzB,IAAA;oBAAA;kBAAA;oBAAA,OAAAszB,UAAA,CAAAzzB,MAAA,WAoBvB,IAAI;kBAAA;kBAAA;oBAAA,OAAAyzB,UAAA,CAAA3xB,IAAA;gBAAA;cAAA,GAAAyxB,SAAA;YAAA,CACZ;YAAA,gBAtB+Dl1B,CAACA,CAAA;cAAA,OAAAi1B,KAAA,CAAA9wB,KAAA,OAAAvO,SAAA;YAAA;UAAA;UAuB7DqK,CAAC,GAAG,IAAI,EAAEnB,CAAC,GAAG,IAAI;UAAAk2B,UAAA,CAAA1xB,IAAA;UAEpBxE,CAAC,GAAGw1B,EAAE,CAACn2B,CAAC,CAAC;UAAC62B,UAAA,CAAAlzB,IAAA;UAAA,OACMqxB,MAAM,CAACC,MAAM,CAACC,MAAM,CAClC,SAAS,EACTrB,EAAE,CAACsB,MAAM,CAACl1B,CAAC,CACb,CAAC;QAAA;UAHKmC,CAAC,GAAAy0B,UAAA,CAAAxzB,IAAA;UAAAwzB,UAAA,CAAAlzB,IAAA;UAAA,OAIGqxB,MAAM,CAACC,MAAM,CAACsC,SAAS,CAC/B,KAAK,EACLn1B,CAAC,EACD3N,CAAC,EACD,CAAC,CAAC,EACF,CAAC,SAAS,CACZ,CAAC;QAAA;UANDqN,CAAC,GAAA+0B,UAAA,CAAAxzB,IAAA;UAAAwzB,UAAA,CAAAlzB,IAAA;UAAA;QAAA;UAAAkzB,UAAA,CAAA1xB,IAAA;UAAA0xB,UAAA,CAAA5uB,EAAA,GAAA4uB,UAAA;UAAA,OAAAA,UAAA,CAAArzB,MAAA,WAQM;YACL+xB,OAAO,EAAEvwB,OAAO,CAACwyB,MAAM,CAAC,CAAC;YACzB5B,UAAU,EAAEn1B;UACd,CAAC;QAAA;UAAA,OAAAo2B,UAAA,CAAArzB,MAAA,WAEI;YACL+xB,OAAO,EAAE1zB,CAAC,CAAC,CAAC;YACZ+zB,UAAU,EAAEn1B;UACd,CAAC;QAAA;QAAA;UAAA,OAAAo2B,UAAA,CAAAvxB,IAAA;MAAA;IAAA,GAAAoxB,SAAA;EAAA,CACF;EAAA,OAAAD,GAAA,CAAAzwB,KAAA,OAAAvO,SAAA;AAAA;AACD,IAAIggC,CAAC,GAAG,eAAiB,UAACz3B,CAAC;IAAA,OAAMA,CAAC,CAAC03B,KAAK,GAAG,OAAO,EAAE13B,CAAC,CAAC23B,QAAQ,GAAG,UAAU,EAAE33B,CAAC,CAAC43B,SAAS,GAAG,WAAW,EAAE53B,CAAC,CAAC63B,UAAU,GAAG,YAAY,EAAE73B,CAAC,CAAC83B,OAAO,GAAG,SAAS,EAAE93B,CAAC;EAAA,CAAC,CAAEy3B,CAAC,IAAI,CAAC,CAAC,CAAC;EAAEM,EAAE,GAAG,eAAgBjN,EAAE,CAAC,mfAAmf,CAAC;EAAEkN,EAAE,GAAG,eAAgBtN,EAAE,CAAC,qHAAqH,EAAE,CAAC,CAAC;EAAEuN,EAAE,GAAG,eAAgBvN,EAAE,CAAC,yEAAyE,CAAC;EAAEwN,EAAE,GAAG,eAAgBxN,EAAE,CAAC,0CAA0C,CAAC;EAAEyN,EAAE,GAAG,eAAgBzN,EAAE,CAAC,m0CAAm0C,CAAC;EAAE0N,EAAE,GAAG,eAAgB1N,EAAE,CAAC,sCAAsC,CAAC;EAAE2N,EAAE,GAAG,eAAgB3N,EAAE,CAAC,sCAAsC,CAAC;EAAE4N,EAAE,GAAG,eAAgB5N,EAAE,CAAC,mUAAmU,CAAC;EAAE6N,EAAE,GAAG,eAAgB7N,EAAE,CAAC,qFAAqF,CAAC;EAAE8N,EAAE,GAAG,eAAgB9N,EAAE,CAAC,uDAAuD,CAAC;EAAE+N,EAAE,GAAG,eAAgB/N,EAAE,CAAC,yNAAyN,EAAE,CAAC,CAAC;AACzuG,IAAMgO,EAAE,GAAG;EACTpwB,IAAI,EAAE,eAAe;EACrB8kB,IAAI;AAQN,CAAC;AACD,SAASuL,EAAEA,CAAC34B,CAAC,EAAEC,CAAC,EAAE;EAChB,IAAI24B,EAAE,EAAEC,EAAE;EACV9Q,EAAE,CAAC9nB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE8sB,EAAE,CAAC/sB,CAAC,EAAE04B,EAAE,CAAC;EACpB,IAAIx4B,CAAC,GAAG6uB,CAAC,CAAC9uB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAE2B,CAAC,GAAGmtB,CAAC,CAAC9uB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAExL,CAAC,GAAGs6B,CAAC,CAAC9uB,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEQ,CAAC,GAAGsuB,CAAC,CAAC9uB,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEK,CAAC,GAAGyuB,CAAC,CAAC9uB,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAE4B,CAAC,GAAGktB,CAAC,CAAC9uB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE6B,CAAC,GAAGitB,CAAC,CAAC9uB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAAEU,CAAC,GAAGouB,CAAC,CAAC9uB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEmC,CAAC,GAAG2sB,CAAC,CAAC9uB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAE0B,CAAC,GAAGotB,CAAC,CAAC9uB,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEqC,CAAC,GAAGysB,CAAC,CAAC9uB,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAE8gB,CAAC,GAAGgO,CAAC,CAAC9uB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE6gB,CAAC,GAAGiO,CAAC,CAAC9uB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE+gB,CAAC,GAAG+N,CAAC,CAAC9uB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEghB,CAAC,GAAG8N,CAAC,CAAC9uB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAEihB,CAAC,GAAG6N,CAAC,CAAC9uB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC;IAAEkhB,CAAC,GAAG4N,CAAC,CAAC9uB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAEuX,CAAC,GAAGuX,CAAC,CAAC9uB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEsvB,EAAE,GAAGR,CAAC,CAAC9uB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEkvB,EAAE,GAAGJ,CAAC,CAAC9uB,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAEmvB,CAAC,GAAGL,CAAC,CAAC9uB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAEqvB,CAAC,GAAGP,CAAC,CAAC9uB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAEuvB,CAAC,GAAGT,CAAC,CAAC9uB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE64B,EAAE,GAAG/J,CAAC,CAAC9uB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAAE84B,EAAE,GAAGhK,CAAC,CAAC9uB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;MAAA,OAAMs0B,IAAI,CAACyE,GAAG,CAAC,EAAE,EAAE3lB,SAAS,CAAC4lB,mBAAmB,IAAI,CAAC,CAAC;IAAA,EAAC;IAAEC,EAAE,GAAGnK,CAAC,CAAC9uB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;EAC73B,IAAMk5B,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAAEC,EAAE,GAAG,kBAAkB;IAAEC,EAAE,GAAG,qBAAqB;IAAEC,EAAE,GAAG,SAALA,EAAEA,CAAIl5B,CAAC,EAAES,CAAC,EAAK;MAChHZ,CAAC,CAACkwB,MAAM,CAACoJ,aAAa,CAAC,IAAIC,WAAW,CAACp5B,CAAC,EAAE;QAAEq5B,MAAM,EAAE54B;MAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAE64B,EAAE,GAAG,CAACb,EAAE,GAAG,CAACD,EAAE,GAAGhjC,QAAQ,CAAC+jC,eAAe,CAACC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGhB,EAAE,CAACiB,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGhB,EAAE,CAAC,CAAC,CAAC;IAAEiB,EAAE,GAAG,eAAgB7a,EAAE,CAAC,YAAM;MAC3I,IAAI7e,CAAC;MACL,OAAO3L,CAAC,CAAC,CAAC,IAAI,IAAI+jB,GAAG,CAAC/jB,CAAC,CAAC,CAAC,EAAEqU,QAAQ,CAACixB,MAAM,CAAC,CAAChQ,IAAI,CAACiQ,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC55B,CAAC,GAAG3L,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI2L,CAAC,CAACoe,QAAQ,CAAC,cAAc,CAAC,CAAC;IACjI,CAAC,CAAC;IAAEyb,EAAE,GAAG,eAAgBhb,EAAE,CAAC;MAAA,OAAMxe,CAAC,CAAC,CAAC,GAAGy5B,EAAE,CAACz5B,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAAA,EAAC;IAAE05B,EAAE,GAAG,eAAgBlb,EAAE,CAAC;MAAA,OAAMqQ,CAAC,CAAC,CAAC,GAAG4K,EAAE,CAAC5K,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAAA,EAAC;IAAE8K,CAAC,GAAG,eAAgBnb,EAAE,CAAC,YAAM;MACzI,IAAI7e,CAAC;MACL,OAAA6F,mBAAA;QACEo0B,aAAa,EAAEjB,EAAE;QACjBjxB,KAAK,EAAE,uCAAuC;QAC9CmyB,OAAO,EAAE,kCAAkC;QAC3CC,MAAM,4BAAAlgC,MAAA,CAA2Bg/B,EAAE,wCAAAh/B,MAAA,CAAiC,CAAC,CAAC+F,CAAC,GAAGjK,CAAC,CAACgkC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG/5B,CAAC,CAACi6B,aAAa,KAAKjB,EAAE,kBAAc;QACxIoB,KAAK,EAAE,iBAAiB;QACxBC,QAAQ,EAAE,UAAU;QACpBC,SAAS,EAAE,cAAc;QACzBC,SAAS,EAAE;MAA2B,GACnCxkC,CAAC,CAACgkC,EAAE,CAAC;IAEZ,CAAC,CAAC;IAAES,EAAE,GAAG,eAAgB3b,EAAE,CAAC;MAAA,OAAM+B,CAAC,CAAC,CAAC,OAAA3mB,MAAA,CAAO4mB,CAAC,CAAC,CAAC,cAAW;IAAA,EAAC;EAC3D,IAAI4Z,EAAE,GAAG7c,EAAE,CAAC,CAAC,CAAC,CAAC;IAAE8c,CAAC,GAAG9c,EAAE,CAACyC,EAAE,CAACgX,CAAC,CAACI,UAAU,CAAC,CAAC;IAAEkD,CAAC,GAAG/c,EAAE,CAAC,KAAK,CAAC,CAAC;IAAEgd,EAAE,GAAGhd,EAAE,CAAC,IAAI,CAAC;IAAEid,EAAE,GAAG,IAAI;IAAEl5B,CAAC,GAAG,IAAI;IAAEm5B,EAAE,GAAGld,EAAE,CAAC,IAAI,CAAC;IAAEmd,EAAE,GAAG,IAAI;IAAEC,EAAE,GAAG,EAAE;IAAEC,EAAE,GAAGrd,EAAE,CAAC,IAAI,CAAC;EAC/IkI,EAAE,CAAC,YAAM;IACPoV,EAAE,CAACnlC,CAAC,CAAC+kC,EAAE,CAAC,CAAC;EACX,CAAC,CAAC,EAAEhV,EAAE,CAAC,YAAM;IACXqV,EAAE,CAACplC,CAAC,CAAC2kC,CAAC,CAAC,CAAC;EACV,CAAC,CAAC,EAAElM,EAAE,CAAC,YAAM;IACX4M,EAAE,CAAC,CAAC,EAAEz5B,CAAC,KAAKA,CAAC,CAACunB,mBAAmB,CAAC,QAAQ,EAAEmS,EAAE,CAAC,EAAE15B,CAAC,CAACunB,mBAAmB,CAAC,OAAO,EAAEoS,EAAE,CAAC,EAAE35B,CAAC,CAACunB,mBAAmB,CAAC,SAAS,EAAEqS,EAAE,CAAC,EAAE55B,CAAC,GAAG,IAAI,CAAC,EAAEo5B,EAAE,KAAKS,YAAY,CAACT,EAAE,CAAC,EAAEA,EAAE,GAAG,IAAI,CAAC,EAAEvlC,QAAQ,CAAC0zB,mBAAmB,CAAC,OAAO,EAAEuS,EAAE,CAAC,EAAEjmC,QAAQ,CAAC0zB,mBAAmB,CAAC,QAAQ,EAAEwS,EAAE,CAAC,EAAEjzB,MAAM,CAACygB,mBAAmB,CAAC,QAAQ,EAAEyS,EAAE,CAAC;EAC5S,CAAC,CAAC,EAAEpN,EAAE,CAAC,YAAM;IACX,IAAIvuB,CAAC;IACL47B,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAEA,CAAC,CAAC,SAAS,EAAEjD,EAAE,CAAC,CAAC,CAAC,EAAEkD,EAAE,CAAC,CAAC,EAAED,CAAC,CAAC,SAAS,EAAEZ,EAAE,CAAC9mC,MAAM,GAAG8mC,EAAE,CAACvU,GAAG,CAAC,UAAChmB,CAAC;MAAA,OAAKA,CAAC,CAAC4D,WAAW,CAACy3B,UAAU;IAAA,EAAC,CAAChI,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE1E,CAAC,CAAC,CAAC,IAAIwM,CAAC,CAAC,iBAAiB,CAAC,EAAEr7B,CAAC,CAAC,CAAC,IAAIw7B,EAAE,CAACx7B,CAAC,CAAC,CAAC,CAAC,EAAET,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI87B,CAAC,CAAC,MAAM,EAAE97B,CAAC,CAAC,CAAC,CAAC,EAAEkC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAIg6B,EAAE,CAACh6B,CAAC,CAAC,CAAC,CAAC,EAAEL,CAAC,GAAG,CAAC3B,CAAC,GAAGjK,CAAC,CAAC4kC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG36B,CAAC,CAACrH,OAAO,CAAC,MAAM,CAAC,EAAEgJ,CAAC,KAAKA,CAAC,CAAC3C,gBAAgB,CAAC,QAAQ,EAAEq8B,EAAE,EAAE;MAAE9S,OAAO,EAAE,CAAC;IAAE,CAAC,CAAC,EAAE5mB,CAAC,CAAC3C,gBAAgB,CAAC,OAAO,EAAEs8B,EAAE,CAAC,EAAEx7B,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI6B,CAAC,CAAC3C,gBAAgB,CAAC,SAAS,EAAEu8B,EAAE,CAAC,CAAC,EAAEz7B,CAAC,CAAC,CAAC,KAAK,QAAQ,KAAKsX,CAAC,CAAC,CAAC,GAAG6kB,EAAE,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,EAAEnmC,CAAC,CAAC2jC,EAAE,CAAC,KAAK/Y,CAAC,CAAC,CAAC,IAAID,CAAC,CAAC,CAAC,CAAC,IAAIkb,CAAC,CAAC,mGAAmG,CAAC,EAAEO,qBAAqB,CAAC,YAAM;MAC9nBjD,EAAE,CAAC,MAAM,CAAC;IACZ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,SAASkD,EAAEA,CAACp8B,CAAC,EAAES,CAAC,EAAE;IAChB,OAAO47B,IAAI,CAACvnC,IAAI,CAACC,SAAS,CAAC;MACzBw/B,SAAS,EAAEv0B,CAAC,CAACu0B,SAAS;MACtBC,SAAS,EAAEx0B,CAAC,CAACw0B,SAAS;MACtBc,MAAM,EAAE70B,CAAC,CAAC60B,MAAM;MAChBb,IAAI,EAAEz0B,CAAC,CAACy0B,IAAI;MACZC,SAAS,EAAE10B,CAAC,CAAC00B,SAAS;MACtBrd,IAAI,EAAE+X,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;MACvBmG,IAAI,EAAE90B,CAAC,CAAC80B;IACV,CAAC,CAAC,CAAC;EACL;EACA,SAAS6F,EAAEA,CAAA,EAAG;IACZ,SAAAkB,GAAA,MAAAC,GAAA,GAAgBvB,EAAE,EAAAsB,GAAA,GAAAC,GAAA,CAAAroC,MAAA,EAAAooC,GAAA;MAAb,IAAMt8B,CAAC,GAAAu8B,GAAA,CAAAD,GAAA;MACVt8B,CAAC,CAACw8B,OAAO,CAAC,CAAC;IAAC;EAChB;EACA,SAASC,EAAEA,CAAA,EAAG;IACZpoC,CAAC,CAAC,CAAC,IAAI06B,EAAE,CAAC,CAAC,IAAIh5B,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACE,QAAQ,GAAG2E,EAAE,CAAC,CAAC,GAAGQ,EAAE,CAACrF,CAAC,CAACK,OAAO,EAAE3hC,CAAC,CAACikC,CAAC,CAAC,CAACE,OAAO,CAAC;EACzE;EAAC,SACcyC,EAAEA,CAAA;IAAA,OAAAC,GAAA,CAAAh3B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAAulC,IAAA;IAAAA,GAAA,GAAA12B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA8E,SAAA;MAAA,IAAArJ,CAAA,EAAA68B,CAAA,EAAAp8B,CAAA,EAAAq8B,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAApV,CAAA,EAAA9lB,CAAA,EAAAm7B,CAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,GAAA;MAAA,OAAAz9B,yBAAA,GAAAoB,IAAA,UAAA2I,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA5E,IAAA,GAAA4E,SAAA,CAAApG,IAAA;UAAA;YAAA,KAEMwd,CAAC,CAAC,CAAC;cAAApX,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MACCq4B,CAAC,CAAC,eAAe,CAAC,EAAE,IAAIh5B,KAAK,CAAC,eAAe,CAAC;UAAA;YAAA,KAClD7M,CAAC,CAAC8jC,EAAE,CAAC;cAAAlwB,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,OAAAoG,SAAA,CAAAvG,MAAA,YACAw4B,CAAC,CAAC,0BAA0B,CAAC,EAAE7lC,CAAC,CAAC8jC,EAAE,CAAC;UAAA;YAAA,KACzCzK,CAAC,CAAC,CAAC;cAAAzlB,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,OAAAoG,SAAA,CAAAvG,MAAA,YACEw4B,CAAC,CAAC,2BAA2B,EAAE;cAAEvkB,IAAI,EAAE+X,CAAC,CAAC;YAAE,CAAC,CAAC,EAAE2E,EAAE,CAAC,OAAO3E,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,CAACA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;UAAA;YAEjG,IAAI,CAAC/6B,CAAC,CAAC,CAAC,IAAIsN,CAAC,EAAE;cACPk7B,CAAC,GAAGl7B,CAAC,CAAC3H,YAAY,CAAC,QAAQ,CAAC;cAClC6iC,CAAC,IAAI,IAAI,IAAIA,CAAC,CAACze,QAAQ,CAAC,QAAQ,CAAC,IAAI/pB,CAAC,CAACwoC,CAAC,GAAG,SAAS,CAAC;YACvD;YAAC,IACIxoC,CAAC,CAAC,CAAC;cAAAsV,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MACA,IAAIX,KAAK,CAAC,iCAAiC,CAAC;UAAA;YACpDg5B,CAAC,CAAC,yBAAyB,EAAEvnC,CAAC,CAAC,CAAC,CAAC;YAC7BoM,CAAC,GAAG,IAAI,EAAEq8B,CAAC,GAAG,IAAI;YAAA,KAClB58B,CAAC,CAAC,CAAC;cAAAyJ,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MACDq4B,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO17B,CAAC,CAAC,CAAC,IAAI,QAAQ;cAAAyJ,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MAC5C9C,CAAC,GAAG48B,UAAU,CAACn9B,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAACO,CAAC;cAAAkJ,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MAC3B,IAAIX,KAAK,qCAAA3I,MAAA,CAAqCiG,CAAC,CAAC,CAAC,CAAE,CAAC;UAAA;YAAAyJ,SAAA,CAAApG,IAAA;YAAA;UAAA;YAE5D9C,CAAC,GAAGP,CAAC,CAAC,CAAC;UAAC;YACN68B,CAAC,GAAG;cACRx1B,OAAO,EAAEynB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG;gBAAE,sBAAsB,EAAE;cAAI,CAAC,GAAG,CAAC;YAC3D,CAAC;YAAA,KACGvuB,CAAC;cAAAkJ,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAAoG,SAAA,CAAApG,IAAA;YAAA,OACW9C,CAAC,CAACpM,CAAC,CAAC,CAAC,EAAE0oC,CAAC,CAAC;UAAA;YAAnBD,CAAC,GAAAnzB,SAAA,CAAA1G,IAAA;YAAA,MAAoB,CAAC65B,CAAC,IAAI,EAAEA,CAAC,YAAYQ,QAAQ,CAAC;cAAA3zB,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MAC/C,IAAIX,KAAK,CAAC,kDAAkD,CAAC;UAAA;YAAA+G,SAAA,CAAApG,IAAA;YAAA;UAAA;YAAAoG,SAAA,CAAApG,IAAA;YAAA,OAE3DkE,KAAK,CAACpT,CAAC,CAAC,CAAC,EAAE0oC,CAAC,CAAC;UAAA;YAAvBD,CAAC,GAAAnzB,SAAA,CAAA1G,IAAA;UAAA;YAAA,MACC65B,CAAC,CAACn1B,MAAM,KAAK,GAAG;cAAAgC,SAAA,CAAApG,IAAA;cAAA;YAAA;YAAA,MACZ,IAAIX,KAAK,0BAAA3I,MAAA,CAA0B6iC,CAAC,CAACn1B,MAAM,MAAG,CAAC;UAAA;YACjDq1B,CAAC,GAAGF,CAAC,CAACv1B,OAAO,CAAC8N,GAAG,CAAC,iBAAiB,CAAC;YAAA1L,SAAA,CAAApG,IAAA;YAAA,OAAYu5B,CAAC,CAACl1B,IAAI,CAAC,CAAC;UAAA;YAAlBggB,CAAC,GAAAje,SAAA,CAAA1G,IAAA;YAAmBnB,CAAC,GAAG,IAAIwG,eAAe,CAAC,CAACtI,CAAC,GAAG4nB,CAAC,CAAC6M,IAAI,CAACgF,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGz5B,CAAC,CAAC,CAAC,CAAC,CAAC;YAAEi9B,CAAC,GAAGn7B,CAAC,CAACuT,GAAG,CAAC,SAAS,CAAC,IAAIvT,CAAC,CAACuT,GAAG,CAAC,QAAQ,CAAC;YACjL,IAAI4nB,CAAC,EAAE;cACCJ,EAAC,GAAG,IAAIjnC,IAAI,CAAC,CAACqnC,CAAC,GAAG,GAAG,CAAC,EAAEE,EAAE,GAAG3oC,KAAK,CAACqoC,EAAC,CAAChnC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGgnC,EAAC,CAAChnC,OAAO,CAAC,CAAC,GAAGD,IAAI,CAACs+B,GAAG,CAAC,CAAC;cACpFiJ,EAAE,GAAG,CAAC,IAAIpB,EAAE,CAACoB,EAAE,CAAC;YAClB;YACA,IAAIH,CAAC,EACH,IAAI;cACIH,GAAC,GAAG/nC,IAAI,CAACuK,KAAK,CAAC29B,CAAC,CAAC;cACvBH,GAAC,IAAIt6B,aAAA,CAAOs6B,GAAC,KAAI,QAAQ,KAAKA,GAAC,CAACU,SAAS,KAAKV,GAAC,CAACU,SAAS,GAAG,IAAInlB,GAAG,CAACykB,GAAC,CAACU,SAAS,EAAE,IAAInlB,GAAG,CAAC/jB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACkU,QAAQ,CAAC,CAAC,CAAC,EAAEi1B,EAAE,CAACX,GAAC,CAAC,CAAC;YACpH,CAAC,CAAC,OAAOA,CAAC,EAAE;cACVjB,CAAC,CAAC,0CAA0C,EAAEiB,CAAC,CAAC;YAClD;YAAC,OAAAlzB,SAAA,CAAAvG,MAAA,WACIwkB,CAAC;UAAA;UAAA;YAAA,OAAAje,SAAA,CAAAzE,IAAA;QAAA;MAAA,GAAAmE,QAAA;IAAA,CAEX;IAAA,OAAAuzB,GAAA,CAAAh3B,KAAA,OAAAvO,SAAA;EAAA;EACD,SAASomC,EAAEA,CAACz9B,CAAC,EAAE;IACb,IAAI88B,CAAC;IACL,IAAMr8B,CAAC,GAAGkB,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC5H,aAAa,CAAC,OAAOiG,CAAC,IAAI,QAAQ,mBAAA/F,MAAA,CAAkB+F,CAAC,WAAO,+CAA+C,CAAC;IAC7I,OAAO,CAAC,CAAC88B,CAAC,GAAGr8B,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC3M,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGgpC,CAAC,CAAC73B,KAAK,CAACxE,CAAC,CAAC3M,KAAK,CAACqiB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC;EACxG;EACA,SAASunB,EAAEA,CAAA,EAAG;IACZ,OAAO1O,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG;MAC3B2O,gBAAgB,EAAE,KAAK,CAAC;MACxBC,UAAU,EAAE,KAAK,CAAC;MAClBC,YAAY,EAAE,KAAK,CAAC;MACpBC,KAAK,EAAE,CAAC,CAAC;MACTC,iBAAiB,EAAE,KAAK,CAAC;MACzBC,iBAAiB,EAAE,KAAK,CAAC;MACzBC,MAAM,EAAE,CAAC,CAAC;MACVC,SAAS,EAAE,KAAK,CAAC;MACjBpgC,IAAI,EAAE,KAAK,CAAC;MACZ+3B,QAAQ,EAAE,KAAK;IACjB,CAAC,GAAGtzB,aAAA,CAAOysB,CAAC,CAAC,CAAC,KAAI,QAAQ,GAAGA,CAAC,CAAC,CAAC,GAAG;MACjC2O,gBAAgB,EAAE,KAAK,CAAC;MACxBC,UAAU,EAAE,KAAK,CAAC;MAClBC,YAAY,EAAE,KAAK,CAAC;MACpBC,KAAK,EAAE,KAAK,CAAC;MACbC,iBAAiB,EAAE,KAAK,CAAC;MACzBC,iBAAiB,EAAE,KAAK,CAAC;MACzBC,MAAM,EAAE,KAAK,CAAC;MACdC,SAAS,EAAE,KAAK,CAAC;MACjBpgC,IAAI,EAAE,KAAK,CAAC;MACZ+3B,QAAQ,EAAE,KAAK;IACjB,CAAC;EACH;EACA,SAASsI,EAAEA,CAACn+B,CAAC,EAAE;IACb,OAAOyW,kBAAA,CACF,CAAC9U,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAClM,gBAAgB,CAACuK,CAAC,IAAI,IAAI,IAAIA,CAAC,CAAC9L,MAAM,GAAG8L,CAAC,CAACymB,GAAG,CAAC,UAACqW,CAAC;MAAA,uBAAA7iC,MAAA,CAAoB6iC,CAAC;IAAA,CAAI,CAAC,CAAChJ,IAAI,CAAC,IAAI,CAAC,GAAG,kFAAkF,CAAC,KAAK,EAAE,EAC9MsK,MAAM,CACN,UAACtB,CAAC,EAAEC,CAAC,EAAK;MACR,IAAMC,CAAC,GAAGD,CAAC,CAACz4B,IAAI;QAAEsjB,CAAC,GAAGmV,CAAC,CAACjpC,KAAK;MAC7B,OAAOkpC,CAAC,IAAIpV,CAAC,KAAKkV,CAAC,CAACE,CAAC,CAAC,GAAG,IAAI,CAAC3lB,IAAI,CAACuQ,CAAC,CAAC,GAAGA,CAAC,CAACyW,OAAO,CAAC,IAAIC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,QACvF,CAAC,GAAG1W,CAAC,CAAC,EAAEkV,CAAC;IACJ,CAAC,EACD,CAAC,CACH,CAAC;EACH;EACA,SAASjB,EAAEA,CAAA,EAAG;IACZ,IAAM77B,CAAC,GAAGmvB,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,GAAGA,EAAE,CAAC,CAAC,CAACsK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAAC,IAAA8E,WAAA,GAAArnB,0BAAA,CACrCmmB,UAAU,CAACmB,aAAa;MAAAC,OAAA;IAAA;MAAxC,KAAAF,WAAA,CAAA78B,CAAA,MAAA+8B,OAAA,GAAAF,WAAA,CAAAv+B,CAAA,IAAA6C,IAAA,GACE;QAAA,IADSpC,CAAC,GAAAg+B,OAAA,CAAA3qC,KAAA;QACV,CAAC,CAACkM,CAAC,IAAIA,CAAC,CAACoe,QAAQ,CAAC3d,CAAC,CAACq7B,UAAU,CAAC,KAAKd,EAAE,CAACj3B,IAAI,CAAC,IAAItD,CAAC,CAAC;UAChDie,EAAE,EAAE3oB,CAAC,CAAC4kC,CAAC,CAAC;UACR+D,OAAO,EAAEzC,EAAE;UACX0C,QAAQ,EAAEzF,EAAE;UACZ0F,gBAAgB,EAAEC,EAAE;UACpBC,iBAAiB,EAAEC,EAAE;UACrBC,QAAQ,EAAEC,EAAE;UACZ9uB,GAAG,EAAEyrB,CAAC;UACN13B,KAAK,EAAEw4B,EAAE;UACTwC,KAAK,EAAEC,EAAE;UACTC,QAAQ,EAAEC,EAAE;UACZC,iBAAiB,EAAEC,EAAE;UACrBC,MAAM,EAAEtD;QACV,CAAC,CAAC,CAAC;MAAA;IAAC,SAAA/a,GAAA;MAAAod,WAAA,CAAA3+B,CAAA,CAAAuhB,GAAA;IAAA;MAAAod,WAAA,CAAA98B,CAAA;IAAA;EACR;EACA,SAASm6B,CAACA,CAAA,EAAO;IAAA,IAAA6D,QAAA;IAAA,SAAAC,KAAA,GAAAroC,SAAA,CAAAnD,MAAA,EAAH8L,CAAC,OAAA4W,KAAA,CAAA8oB,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAD3/B,CAAC,CAAA2/B,KAAA,IAAAtoC,SAAA,CAAAsoC,KAAA;IAAA;IACb,CAACl+B,CAAC,CAAC,CAAC,IAAIzB,CAAC,CAAC4/B,IAAI,CAAC,UAACn/B,CAAC;MAAA,OAAKA,CAAC,YAAYmC,KAAK;IAAA,EAAC,KAAK,CAAA68B,QAAA,GAAA33B,OAAO,EAAC9H,CAAC,CAAC,CAAC,CAAC,YAAY4C,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,CAAAgD,KAAA,CAAA65B,QAAA,GAAC,QAAQ,WAAAxlC,MAAA,CAAW4mB,CAAC,CAAC,CAAC,QAAA5mB,MAAA,CAAQ+F,CAAC,EAAC;EACjI;EACA,SAAS6/B,EAAEA,CAAA,EAAG;IACZ,CAACxI,CAAC,CAACI,UAAU,EAAEJ,CAAC,CAACC,KAAK,EAAED,CAAC,CAACK,OAAO,CAAC,CAACtZ,QAAQ,CAACroB,CAAC,CAAC2kC,CAAC,CAAC,CAAC,GAAG1L,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAACrtB,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAACm+B,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG5hB,CAAC,CAACuc,EAAE,EAAE,CAAC,CAAC,CAAC,GAAGrjB,CAAC,CAAC,CAAC,GAAG6kB,EAAE,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,GAAGhe,CAAC,CAACuc,EAAE,EAAE,CAAC,CAAC,CAAC;EAChK;EACA,SAASgB,EAAEA,CAACz7B,CAAC,EAAE;IACb,IAAMS,CAAC,GAAGT,CAAC,CAAC6T,MAAM;IAClB7R,CAAC,CAAC,CAAC,IAAIvB,CAAC,IAAI,CAAC1K,CAAC,CAAC4kC,CAAC,CAAC,CAACr/B,QAAQ,CAACmF,CAAC,CAAC,KAAK1K,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACE,QAAQ,IAAIz3B,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI/J,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,CAAC,KAAK1hC,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAAC6C,OAAO,GAAG,MAAM,CAAC;EACnI;EACA,SAASkoB,EAAEA,CAAA,EAAG;IACZ15B,CAAC,CAAC,CAAC,IAAIjM,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,IAAIsI,EAAE,CAAC,CAAC;EACtC;EACA,SAAS7E,EAAEA,CAACl7B,CAAC,EAAE;IACb,SAAAggC,GAAA,MAAAC,IAAA,GAAgBjF,EAAE,EAAAgF,GAAA,GAAAC,IAAA,CAAA/rC,MAAA,EAAA8rC,GAAA;MAAb,IAAMv/B,CAAC,GAAAw/B,IAAA,CAAAD,GAAA;MACV,OAAOv/B,CAAC,CAACy/B,aAAa,IAAI,UAAU,IAAIz/B,CAAC,CAACy/B,aAAa,CAACnqC,CAAC,CAAC+kC,EAAE,CAAC,CAAC;IAAC;EACnE;EACA,SAASS,EAAEA,CAACv7B,CAAC,EAAE;IACbjK,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,IAAIyE,EAAE,CAAC,CAAC;EAC/B;EACA,SAASb,EAAEA,CAACr7B,CAAC,EAAE;IACb2B,CAAC,IAAI7B,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG/J,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,IAAIz3B,CAAC,CAACmgC,cAAc,CAAC,CAAC,EAAEngC,CAAC,CAACd,eAAe,CAAC,CAAC,EAAEg9B,EAAE,CAAC,CAAC,CAACx5B,IAAI,CAAC,YAAM;MAC1Gf,CAAC,IAAI,IAAI,IAAIA,CAAC,CAACy+B,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC,IAAIrqC,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACE,QAAQ,KAAKv3B,CAAC,CAACmgC,cAAc,CAAC,CAAC,EAAEngC,CAAC,CAACd,eAAe,CAAC,CAAC,EAAEnJ,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACG,SAAS,IAAI6I,EAAE,CAAC,CAAC,CAAC,GAAG1+B,CAAC,IAAIK,CAAC,CAAC,CAAC,IAAIlC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI/J,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,KAAKz3B,CAAC,CAACmgC,cAAc,CAAC,CAAC,EAAEngC,CAAC,CAACd,eAAe,CAAC,CAAC,EAAEnJ,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAAC6C,OAAO,GAAG,OAAO,EAAEusB,EAAE,CAAC,CAAC,CAAC;EAC5O;EACA,SAASzE,EAAEA,CAAA,EAAG;IACZoB,EAAE,CAAC,CAAC;EACN;EACA,SAAS2D,EAAEA,CAAA,EAAG;IACZtqC,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACG,SAAS,IAAIzhC,CAAC,CAACikC,CAAC,CAAC,CAACO,SAAS,IAAIr9B,KAAK,CAACnH,CAAC,CAACikC,CAAC,CAAC,CAACO,SAAS,CAAC;EACjE;EACA,SAASY,EAAEA,CAACn7B,CAAC,EAAE;IACb,SAAAsgC,GAAA,MAAAC,IAAA,GAAgBvF,EAAE,EAAAsF,GAAA,GAAAC,IAAA,CAAArsC,MAAA,EAAAosC,GAAA;MAAb,IAAM7/B,CAAC,GAAA8/B,IAAA,CAAAD,GAAA;MACV,OAAO7/B,CAAC,CAAC+/B,aAAa,IAAI,UAAU,IAAI//B,CAAC,CAAC+/B,aAAa,CAACzqC,CAAC,CAAC2kC,CAAC,CAAC,CAAC;IAAC;IAChE14B,CAAC,CAAC,CAAC,IAAIjM,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACI,UAAU,IAAI0E,qBAAqB,CAAC,YAAM;MAC1D4D,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE7hB,CAAC,CAACuc,EAAE,EAAE1kC,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACE,QAAQ,CAAC;EAChC;EACA,SAASoE,EAAEA,CAAA,EAAG;IACZ35B,CAAC,CAAC,CAAC,IAAI+9B,EAAE,CAAC,CAAC;EACb;EACA,SAASjG,EAAEA,CAAC95B,CAAC,EAAE;IACb,OAAOlL,IAAI,CAACuK,KAAK,CAACW,CAAC,CAAC;EACtB;EACA,SAAS+/B,EAAEA,CAAA,EAAS;IAAA,IAAR//B,CAAC,GAAA3I,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,EAAE;IAChB,IAAItB,CAAC,CAAC4kC,CAAC,CAAC,EACN,IAAIE,EAAE,KAAKA,EAAE,GAAG,CAACt5B,CAAC,CAAC,CAAC,GAAG/L,QAAQ,CAACuE,aAAa,CAACwH,CAAC,CAAC,CAAC,CAAC,GAAGI,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC5H,aAAa,CAAC,8FAA8F,CAAC,KAAK4H,CAAC,CAAC,EAAEk5B,EAAE,EAAE;MACpM,IAAMp6B,CAAC,GAAG2rB,QAAQ,CAAClqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE46B,CAAC,GAAGjC,EAAE,CAACn+B,qBAAqB,CAAC,CAAC;QAAEqgC,CAAC,GAAGhnC,CAAC,CAAC4kC,CAAC,CAAC,CAACj+B,qBAAqB,CAAC,CAAC;QAAEsgC,CAAC,GAAGxnC,QAAQ,CAAC+jC,eAAe,CAACkH,YAAY;QAAE7Y,CAAC,GAAGpyB,QAAQ,CAAC+jC,eAAe,CAACmH,WAAW;QAAE5+B,CAAC,GAAGE,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG86B,CAAC,CAAC6D,MAAM,GAAG5D,CAAC,CAAClgC,MAAM,GAAG4D,CAAC,GAAGT,CAAC,GAAGg9B,CAAC,GAAGh7B,CAAC,CAAC,CAAC,KAAK,KAAK;QAAEi7B,CAAC,GAAG9I,IAAI,CAACyM,GAAG,CAAC5gC,CAAC,EAAEm0B,IAAI,CAACyE,GAAG,CAAChR,CAAC,GAAG5nB,CAAC,GAAG+8B,CAAC,CAACjgC,KAAK,EAAEggC,CAAC,CAAClgC,IAAI,GAAGkgC,CAAC,CAAChgC,KAAK,GAAG,CAAC,GAAGigC,CAAC,CAACjgC,KAAK,GAAG,CAAC,CAAC,CAAC;MAC9U,IAAIgF,CAAC,GAAG/L,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAACpU,GAAG,MAAAtC,MAAA,CAAM6iC,CAAC,CAACvgC,GAAG,IAAIwgC,CAAC,CAAClgC,MAAM,GAAG4D,CAAC,CAAC,OAAI,GAAG1K,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAACpU,GAAG,MAAAtC,MAAA,CAAM6iC,CAAC,CAAC6D,MAAM,GAAGlgC,CAAC,OAAI,EAAE1K,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAAC/T,IAAI,MAAA3C,MAAA,CAAMgjC,CAAC,OAAI,EAAElnC,CAAC,CAAC4kC,CAAC,CAAC,CAAC7iC,YAAY,CAAC,eAAe,EAAEgK,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,EAAE/L,CAAC,CAAC6kC,EAAE,CAAC,EAAE;QAC1L,IAAMiC,CAAC,GAAG9mC,CAAC,CAAC6kC,EAAE,CAAC,CAACl+B,qBAAqB,CAAC,CAAC;QACvC3G,CAAC,CAAC6kC,EAAE,CAAC,CAACjqB,KAAK,CAAC/T,IAAI,GAAGkgC,CAAC,CAAClgC,IAAI,GAAGqgC,CAAC,GAAGH,CAAC,CAAChgC,KAAK,GAAG,CAAC,GAAG+/B,CAAC,CAAC//B,KAAK,GAAG,CAAC,GAAG,IAAI;MAClE;IACF,CAAC,MACC8+B,CAAC,CAAC,wCAAwC,CAAC;EACjD;EAAC,SACciF,EAAEA,CAAAh2B,GAAA;IAAA,OAAAi2B,GAAA,CAAAl7B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAAypC,IAAA;IAAAA,GAAA,GAAA56B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA8F,SAAkBrK,CAAC;MAAA,IAAAS,CAAA,EAAAsgC,GAAA,EAAA/D,CAAA,EAAApV,CAAA,EAAA9lB,CAAA,EAAAm7B,CAAA,EAAAJ,CAAA,EAAAM,EAAA,EAAA6D,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAArE,CAAA,EAAAC,CAAA;MAAA,OAAAp9B,yBAAA,GAAAoB,IAAA,UAAAwJ,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAzF,IAAA,GAAAyF,SAAA,CAAAjH,IAAA;UAAA;YAAA,IACZm1B,EAAE,CAAC,CAAC;cAAAluB,SAAA,CAAAjH,IAAA;cAAA;YAAA;YAAA,MACD,IAAIX,KAAK,CAAC,8BAA8B,CAAC;UAAA;YACjDg5B,CAAC,CAAC,qCAAqC,EAAElD,EAAE,CAAC,CAAC,CAAC;YACxCj4B,CAAC,GAAG;cAAE2gC,OAAO,EAAEphC;YAAE,CAAC;YACxB,IAAIgvB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;cAAA+R,GAAA,GAYVrD,EAAE,CAAC,CAAC,EAVYV,CAAC,GAAA+D,GAAA,CAAnBpD,gBAAgB,EACJ/V,CAAC,GAAAmZ,GAAA,CAAbnD,UAAU,EACI97B,CAAC,GAAAi/B,GAAA,CAAflD,YAAY,EACLZ,CAAC,GAAA8D,GAAA,CAARjD,KAAK,EACcjB,CAAC,GAAAkE,GAAA,CAApB/C,iBAAiB,EACEb,EAAE,GAAA4D,GAAA,CAArBhD,iBAAiB,EACTiD,EAAE,GAAAD,GAAA,CAAV9C,MAAM,EACKgD,EAAE,GAAAF,GAAA,CAAb7C,SAAS,EACHgD,EAAE,GAAAH,GAAA,CAARjjC,IAAI,EACMqjC,EAAE,GAAAJ,GAAA,CAAZlL,QAAQ;cAEVp1B,CAAC,CAACk9B,gBAAgB,GAAGX,CAAC,EAAEv8B,CAAC,CAACm9B,UAAU,GAAGhW,CAAC,EAAEnnB,CAAC,CAACo9B,YAAY,GAAG/7B,CAAC,EAAErB,CAAC,CAACq9B,KAAK,GAAGb,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAGQ,EAAE,CAACR,CAAC,CAAC,EAAEx8B,CAAC,CAACs9B,iBAAiB,GAAGZ,EAAE,EAAE18B,CAAC,CAACu9B,iBAAiB,GAAGnB,CAAC,KAAKvD,EAAE,GAAG,CAACA,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE74B,CAAC,CAACw9B,MAAM,GAAG+C,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG7C,EAAE,CAAC6C,EAAE,CAAC,EAAEvgC,CAAC,CAACy9B,SAAS,GAAG+C,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,IAAI,MAAM,EAAExgC,CAAC,CAAC3C,IAAI,GAAGojC,EAAE,EAAEzgC,CAAC,CAACo1B,QAAQ,GAAGsL,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,IAAI1L,EAAE,CAAC,CAAC;YAClU;YAACjrB,SAAA,CAAAjH,IAAA;YAAA,OACekE,KAAK,CAACixB,EAAE,CAAC,CAAC,EAAE;cAC1Bj+B,IAAI,EAAE3F,IAAI,CAACC,SAAS,CAAC0L,CAAC,CAAC;cACvB8G,OAAO,EAAE;gBAAE,cAAc,EAAE;cAAmB,CAAC;cAC/CzE,MAAM,EAAE;YACV,CAAC,CAAC;UAAA;YAJIg6B,CAAC,GAAAtyB,SAAA,CAAAvH,IAAA;YAAA,MAKH65B,CAAC,CAACn1B,MAAM,KAAK,GAAG;cAAA6C,SAAA,CAAAjH,IAAA;cAAA;YAAA;YAAA,MACZ,IAAIX,KAAK,0BAAA3I,MAAA,CAA0B6iC,CAAC,CAACn1B,MAAM,MAAG,CAAC;UAAA;YAAA6C,SAAA,CAAAjH,IAAA;YAAA,OACvCu5B,CAAC,CAACl1B,IAAI,CAAC,CAAC;UAAA;YAAlBm1B,CAAC,GAAAvyB,SAAA,CAAAvH,IAAA;YAAA,MACH85B,CAAC,IAAI,IAAI,IAAIA,CAAC,CAACqE,OAAO,IAAIljB,CAAC,CAAC+c,EAAE,EAAE5a,EAAE,CAAC0c,CAAC,CAACqE,OAAO,CAAC,CAAC,EAAElI,EAAE,CAAC,oBAAoB,EAAE6D,CAAC,CAAC,EAAEv7B,CAAC,CAAC,CAAC,IAAIu7B,CAAC,CAACsE,cAAc,KAAK,KAAK;cAAA72B,SAAA,CAAAjH,IAAA;cAAA;YAAA;YAAA,MAC1G,IAAIX,KAAK,CAAC,8CAA8C,CAAC;UAAA;UAAA;YAAA,OAAA4H,SAAA,CAAAtF,IAAA;QAAA;MAAA,GAAAmF,QAAA;IAAA,CAClE;IAAA,OAAAy2B,GAAA,CAAAl7B,KAAA,OAAAvO,SAAA;EAAA;EACD,SAAS0kC,EAAEA,CAAC/7B,CAAC,EAAE;IACb47B,CAAC,CAAC,QAAQ,EAAE57B,CAAC,CAAC,EAAE+6B,EAAE,KAAKS,YAAY,CAACT,EAAE,CAAC,EAAEA,EAAE,GAAG,IAAI,CAAC,EAAE/6B,CAAC,GAAG,CAAC,GAAGy8B,EAAE,CAAC,CAAC,GAAG1B,EAAE,GAAG/e,UAAU,CAACygB,EAAE,EAAEz8B,CAAC,CAAC;EAC5F;EACA,SAASg8B,EAAEA,CAACh8B,CAAC,EAAE;IACb47B,CAAC,CAAC,UAAU,EAAE57B,CAAC,CAAC,EAAEgC,CAAC,CAAC,CAAC,KAAKhC,CAAC,KAAKjK,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAAC/T,IAAI,GAAG,EAAE,EAAE7G,CAAC,CAAC4kC,CAAC,CAAC,CAAChqB,KAAK,CAACpU,GAAG,GAAG,EAAE,CAAC,EAAEyF,CAAC,CAAChC,CAAC,KAAK,CAAC,CAAC,IAAIA,CAAC,KAAK,EAAE,GAAG,MAAM,GAAGA,CAAC,KAAK,CAAC,CAAC,IAAIA,CAAC,KAAK,OAAO,GAAG,KAAK,CAAC,GAAGgC,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,IAAIlC,CAAC,CAAC,CAAC,IAAIA,CAAC,CAAC,UAAU,CAAC,EAAEtK,QAAQ,CAACwJ,gBAAgB,CAAC,QAAQ,EAAE08B,EAAE,CAAC,EAAElmC,QAAQ,CAACwJ,gBAAgB,CAAC,OAAO,EAAEy8B,EAAE,CAAC,EAAEhzB,MAAM,CAACzJ,gBAAgB,CAAC,QAAQ,EAAE28B,EAAE,CAAC,IAAI77B,CAAC,CAAC,CAAC,KAAK,UAAU,IAAIA,CAAC,CAAC,KAAK,CAAC,CAAC;EACjV;EACA,SAASwhC,EAAEA,CAACthC,CAAC,EAAE;IACb,IAAI,CAACA,CAAC,CAACu0B,SAAS,EACd,MAAM,IAAI3xB,KAAK,CAAC,mDAAmD,CAAC;IACtE,IAAI5C,CAAC,CAAC00B,SAAS,KAAK,KAAK,CAAC,EACxB,MAAM,IAAI9xB,KAAK,CAAC,mDAAmD,CAAC;IACtE,IAAI,CAACm2B,EAAE,CAAC3a,QAAQ,CAACpe,CAAC,CAACu0B,SAAS,CAACn8B,WAAW,CAAC,CAAC,CAAC,EACzC,MAAM,IAAIwK,KAAK,6CAAA3I,MAAA,CAA6C8+B,EAAE,CAACjF,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC9E,IAAI,CAAC9zB,CAAC,CAACw0B,SAAS,IAAIx0B,CAAC,CAACw0B,SAAS,CAACtgC,MAAM,GAAG,EAAE,EACzC,MAAM,IAAI0O,KAAK,CAAC,wCAAwC,CAAC;IAC3D,IAAI,CAAC5C,CAAC,CAACy0B,IAAI,IAAIz0B,CAAC,CAACy0B,IAAI,CAACvgC,MAAM,GAAG,EAAE,EAC/B,MAAM,IAAI0O,KAAK,CAAC,mCAAmC,CAAC;EACxD;EAAC,SACcu8B,EAAEA,CAAAr0B,GAAA;IAAA,OAAAy2B,GAAA,CAAA37B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAAkqC,IAAA;IAAAA,GAAA,GAAAr7B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAAyG,SAAkBhL,CAAC;MAAA,IAAAS,CAAA,EAAAq8B,CAAA;MAAA,OAAAn9B,yBAAA,GAAAoB,IAAA,UAAAmK,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAApG,IAAA,GAAAoG,SAAA,CAAA5H,IAAA;UAAA;YACb9C,CAAC,GAAG,IAAI;YAAA,MACR,QAAQ,IAAIgI,MAAM;cAAA0C,SAAA,CAAA5H,IAAA;cAAA;YAAA;YAAA4H,SAAA,CAAApG,IAAA;YAAAoG,SAAA,CAAA5H,IAAA;YAAA,OAERi+B,EAAE,CAACxhC,CAAC,EAAEA,CAAC,CAACyhC,SAAS,CAAC;UAAA;YAA5BhhC,CAAC,GAAA0K,SAAA,CAAAlI,IAAA;YAAAkI,SAAA,CAAA5H,IAAA;YAAA;UAAA;YAAA4H,SAAA,CAAApG,IAAA;YAAAoG,SAAA,CAAAtD,EAAA,GAAAsD,SAAA;YAEDywB,CAAC,CAAAzwB,SAAA,CAAAtD,EAAE,CAAC;UAAC;YAAA,MAEH,CAACpH,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC60B,MAAM,MAAM,KAAK,CAAC,IAAI,YAAY,IAAIt1B,CAAC;cAAAmL,SAAA,CAAA5H,IAAA;cAAA;YAAA;YAAA,OAAA4H,SAAA,CAAA/H,MAAA,WAC1D;cAAExO,IAAI,EAAEoL,CAAC;cAAE0hC,QAAQ,EAAEjhC;YAAE,CAAC;UAAA;YAAA,MAE/B,YAAY,IAAIT,CAAC;cAAAmL,SAAA,CAAA5H,IAAA;cAAA;YAAA;YAAA4H,SAAA,CAAA5H,IAAA;YAAA,OACH6yB,EAAE,CAACp2B,CAAC,CAAC2hC,UAAU,EAAE3hC,CAAC,CAACnM,GAAG,EAAEmM,CAAC,CAACyhC,SAAS,CAAC;UAAA;YAA9C3E,CAAC,GAAA3xB,SAAA,CAAAlI,IAAA;YAAAkI,SAAA,CAAA6pB,EAAA,GACQh1B,CAAC;YAAAmL,SAAA,CAAA5H,IAAA;YAAA,OAAkBu5B,CAAC,CAAC3H,OAAO;UAAA;YAAAhqB,SAAA,CAAAy2B,EAAA,GAAAz2B,SAAA,CAAAlI,IAAA;YAAA,OAAAkI,SAAA,CAAA/H,MAAA;cAAlCxO,IAAI,EAAAuW,SAAA,CAAA6pB,EAAA;cAAK0M,QAAQ,EAAAv2B,SAAA,CAAAy2B;YAAA;UAAA;YAAAz2B,SAAA,CAAA02B,EAAA,GAGpB7hC,CAAC;YAAAmL,SAAA,CAAA5H,IAAA;YAAA,OACS0xB,EAAE,CAACj1B,CAAC,CAACw0B,SAAS,EAAEx0B,CAAC,CAACy0B,IAAI,EAAEz0B,CAAC,CAACu0B,SAAS,EAAEv0B,CAAC,CAACyhC,SAAS,IAAI3gB,CAAC,CAAC,CAAC,CAAC,CAACqU,OAAO;UAAA;YAAAhqB,SAAA,CAAA22B,EAAA,GAAA32B,SAAA,CAAAlI,IAAA;YAAA,OAAAkI,SAAA,CAAA/H,MAAA;cADhFxO,IAAI,EAAAuW,SAAA,CAAA02B,EAAA;cACJH,QAAQ,EAAAv2B,SAAA,CAAA22B;YAAA;UAAA;UAAA;YAAA,OAAA32B,SAAA,CAAAjG,IAAA;QAAA;MAAA,GAAA8F,QAAA;IAAA,CAEX;IAAA,OAAAu2B,GAAA,CAAA37B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SACcmqC,EAAEA,CAAAj2B,GAAA;IAAA,OAAAw2B,GAAA,CAAAn8B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAA0qC,IAAA;IAAAA,GAAA,GAAA77B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAAoH,SAAkB3L,CAAC;MAAA,IAAAS,CAAA;QAAAq8B,CAAA;QAAAC,CAAA;QAAAj7B,CAAA;QAAAk7B,CAAA;QAAApV,CAAA;QAAAoa,IAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,MAAA,GAAA9qC,SAAA;MAAA,OAAAsI,yBAAA,GAAAoB,IAAA,UAAA8K,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA/G,IAAA,GAAA+G,SAAA,CAAAvI,IAAA;UAAA;YAAE9C,CAAC,GAAA0hC,MAAA,CAAAjuC,MAAA,QAAAiuC,MAAA,QAAAluC,SAAA,GAAAkuC,MAAA,MAAG,OAAO/S,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAGA,CAAC,CAAC,CAAC,GAAGtO,CAAC,CAAC,CAAC;YAAEgc,CAAC,GAAAqF,MAAA,CAAAjuC,MAAA,QAAAiuC,MAAA,QAAAluC,SAAA,GAAAkuC,MAAA,MAAGhO,IAAI,CAACiO,IAAI,CAACzJ,EAAE,CAAC,CAAC,CAAC;YACxEoE,CAAC,GAAG,EAAE;YACZD,CAAC,GAAG3I,IAAI,CAACyE,GAAG,CAAC,EAAE,EAAEzE,IAAI,CAACyM,GAAG,CAAC,CAAC,EAAE9D,CAAC,CAAC,CAAC;YAChC,KAASh7B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg7B,CAAC,EAAEh7B,CAAC,EAAE,EACxBi7B,CAAC,CAACh5B,IAAI,CAACs+B,kBAAkB,CAACvJ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5BkE,CAAC,GAAG7I,IAAI,CAACiO,IAAI,CAAC3hC,CAAC,GAAGq8B,CAAC,CAAC;YAAAhxB,SAAA,CAAAvI,IAAA;YAAA,OAAYqB,OAAO,CAAC09B,GAAG,CAACvF,CAAC,CAACtW,GAAG,CAAC,UAAC3kB,CAAC,EAAEm7B,CAAC,EAAK;cAChE,IAAMJ,CAAC,GAAGI,CAAC,GAAGD,CAAC;cACf,OAAO,IAAIp4B,OAAO,CAAC,UAACu4B,EAAE,EAAK;gBACzBr7B,CAAC,CAAC9C,gBAAgB,CAAC,SAAS,EAAE,UAACgiC,EAAE,EAAK;kBACpC,IAAIA,EAAE,CAACpsC,IAAI,EACT,SAAA2tC,GAAA,MAAAC,EAAA,GAAiBzF,CAAC,EAAAwF,GAAA,GAAAC,EAAA,CAAAtuC,MAAA,EAAAquC,GAAA;oBAAb,IAAMtB,EAAE,GAAAuB,EAAA,CAAAD,GAAA;oBACXtB,EAAE,KAAKn/B,CAAC,IAAIm/B,EAAE,CAACwB,WAAW,CAAC;sBAAEpqC,IAAI,EAAE;oBAAQ,CAAC,CAAC;kBAAC;kBAClD8kC,EAAE,CAAC6D,EAAE,CAACpsC,IAAI,CAAC;gBACb,CAAC,CAAC,EAAEkN,CAAC,CAAC2gC,WAAW,CAAC;kBAChBrB,OAAO,EAAEphC,CAAC;kBACV4gC,GAAG,EAAE/D,CAAC,GAAGG,CAAC;kBACV0F,KAAK,EAAE7F,CAAC;kBACRxkC,IAAI,EAAE;gBACR,CAAC,CAAC;cACJ,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;UAAA;YAfyBuvB,CAAC,GAAA9b,SAAA,CAAA7I,IAAA;YAgB7B,KAAA++B,IAAA,MAAAC,GAAA,GAAgBlF,CAAC,EAAAiF,IAAA,GAAAC,GAAA,CAAA/tC,MAAA,EAAA8tC,IAAA;cAANlgC,EAAC,GAAAmgC,GAAA,CAAAD,IAAA;cACVlgC,EAAC,CAAC6gC,SAAS,CAAC,CAAC;YAAC;YAAA,OAAA72B,SAAA,CAAA1I,MAAA,WACTwkB,CAAC,CAACsL,IAAI,CAAC,UAACpxB,CAAC;cAAA,OAAK,CAAC,CAACA,CAAC;YAAA,EAAC,IAAI,IAAI;UAAA;UAAA;YAAA,OAAAgK,SAAA,CAAA5G,IAAA;QAAA;MAAA,GAAAyG,QAAA;IAAA,CAClC;IAAA,OAAAo2B,GAAA,CAAAn8B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SACc4kC,EAAEA,CAAA;IAAA,OAAA2G,GAAA,CAAAh9B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAAurC,IAAA;IAAAA,GAAA,GAAA18B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA+H,SAAA;MAAA,IAAAtM,CAAA;MAAA,OAAAL,yBAAA,GAAAoB,IAAA,UAAAyL,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA1H,IAAA,GAAA0H,SAAA,CAAAlJ,IAAA;UAAA;YAAA,IACO6T,CAAC,CAAC,CAAC;cAAA3K,SAAA,CAAAlJ,IAAA;cAAA;YAAA;YACN87B,EAAE,CAAChI,CAAC,CAACC,KAAK,CAAC;YAAC,OAAA7qB,SAAA,CAAArJ,MAAA;UAAA;YAGRpD,CAAC,GAAGg7B,EAAE,CAAC9H,IAAI,CAAC,UAACzyB,CAAC;cAAA,OAAKA,CAAC,CAAC4D,WAAW,CAACy3B,UAAU,KAAK,aAAa;YAAA,EAAC;YAAA,MAChE,CAAC97B,CAAC,IAAI,EAAE,SAAS,IAAIA,CAAC,CAAC;cAAAyM,SAAA,CAAAlJ,IAAA;cAAA;YAAA;YACzB87B,EAAE,CAAChI,CAAC,CAACC,KAAK,CAAC,EAAEsE,CAAC,CAAC,iFAAiF,CAAC;YAAC,OAAAnvB,SAAA,CAAArJ,MAAA;UAAA;YAAA,MAGhG,SAAS,IAAIpD,CAAC,IAAI,OAAOA,CAAC,CAAC0+B,OAAO,IAAI,UAAU;cAAAjyB,SAAA,CAAAlJ,IAAA;cAAA;YAAA;YAAA,OAAAkJ,SAAA,CAAArJ,MAAA,WAC3CpD,CAAC,CAAC0+B,OAAO,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAjyB,SAAA,CAAAvH,IAAA;QAAA;MAAA,GAAAoH,QAAA;IAAA,CACrB;IAAA,OAAAs2B,GAAA,CAAAh9B,KAAA,OAAAvO,SAAA;EAAA;EACD,SAASmmC,EAAEA,CAACx9B,CAAC,EAAE;IACbA,CAAC,CAAC2hC,UAAU,KAAK,KAAK,CAAC,IAAIvqB,CAAC,CAACpX,CAAC,CAAC2hC,UAAU,CAAC,EAAE3hC,CAAC,CAAC6iC,IAAI,KAAK,KAAK,CAAC,KAAK/iC,CAAC,CAACE,CAAC,CAAC6iC,IAAI,CAAC,EAAE/iC,CAAC,CAAC,CAAC,KAAK,QAAQ,KAAKsX,CAAC,CAAC,CAAC,GAAG6kB,EAAE,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEl8B,CAAC,CAAC8iC,SAAS,KAAK,KAAK,CAAC,IAAIthC,CAAC,CAAC,CAAC,CAACxB,CAAC,CAAC8iC,SAAS,CAAC,EAAE9iC,CAAC,CAAC+iC,WAAW,KAAK,KAAK,CAAC,IAAI7iC,CAAC,CAACF,CAAC,CAAC+iC,WAAW,CAAC,EAAE/iC,CAAC,CAACgjC,cAAc,KAAK,KAAK,CAAC,IAAIzhC,CAAC,CAACvB,CAAC,CAACgjC,cAAc,CAAC,EAAEhjC,CAAC,CAACijC,KAAK,KAAK,KAAK,CAAC,IAAIvhC,CAAC,CAAC1B,CAAC,CAACijC,KAAK,CAAC,EAAEjjC,CAAC,CAACkjC,cAAc,KAAK,KAAK,CAAC,IAAIhhC,CAAC,CAAClC,CAAC,CAACkjC,cAAc,CAAC,EAAEljC,CAAC,CAACmjC,QAAQ,KAAK,KAAK,CAAC,IAAInH,EAAE,CAACh8B,CAAC,CAACmjC,QAAQ,CAAC,EAAEnjC,CAAC,CAACojC,MAAM,KAAK,KAAK,CAAC,KAAKrH,EAAE,CAAC/7B,CAAC,CAACojC,MAAM,CAAC,EAAE7iC,CAAC,CAACP,CAAC,CAACojC,MAAM,CAAC,CAAC,EAAEpjC,CAAC,CAACw0B,SAAS,KAAKn0B,CAAC,CAAC,OAAOL,CAAC,CAACw0B,SAAS,IAAI,QAAQ,GAAGx0B,CAAC,CAACw0B,SAAS,GAAG1/B,IAAI,CAACC,SAAS,CAACiL,CAAC,CAACw0B,SAAS,CAAC,CAAC,EAAE8M,EAAE,CAACvrC,CAAC,CAAC8jC,EAAE,CAAC,CAAC,CAAC,EAAE75B,CAAC,CAACqjC,YAAY,KAAK,KAAK,CAAC,IAAIhvC,CAAC,CAAC2L,CAAC,CAACqjC,YAAY,CAAC,EAAErjC,CAAC,CAACsjC,KAAK,KAAK,KAAK,CAAC,IAAI7hC,CAAC,CAAC,CAAC,CAACzB,CAAC,CAACsjC,KAAK,CAAC,EAAEtjC,CAAC,CAACujC,UAAU,KAAK,KAAK,CAAC,IAAI5iB,CAAC,CAAC,CAAC,CAAC3gB,CAAC,CAACujC,UAAU,CAAC,EAAEvjC,CAAC,CAACwjC,QAAQ,KAAK,KAAK,CAAC,IAAI9iB,CAAC,CAAC,CAAC,CAAC1gB,CAAC,CAACwjC,QAAQ,CAAC,EAAExjC,CAAC,CAACyhC,SAAS,KAAK,KAAK,CAAC,IAAI3gB,CAAC,CAAC,CAAC9gB,CAAC,CAACyhC,SAAS,CAAC,EAAEzhC,CAAC,CAACyjC,SAAS,KAAK,KAAK,CAAC,IAAI1iB,CAAC,CAAC,CAAC,CAAC/gB,CAAC,CAACyjC,SAAS,CAAC,EAAEzjC,CAAC,CAACsE,IAAI,KAAK,KAAK,CAAC,IAAIuc,CAAC,CAAC7gB,CAAC,CAACsE,IAAI,CAAC,EAAEtE,CAAC,CAAC0jC,eAAe,KAAK,KAAK,CAAC,IAAI3U,EAAE,CAAC,CAAC,CAAC/uB,CAAC,CAAC0jC,eAAe,CAAC,EAAE1jC,CAAC,CAAC2jC,UAAU,KAAK,KAAK,CAAC,IAAI3U,CAAC,CAACzsB,aAAA,CAAOvC,CAAC,CAAC2jC,UAAU,KAAI,QAAQ,GAAG3jC,CAAC,CAAC2jC,UAAU,GAAG,CAAC,CAAC3jC,CAAC,CAAC2jC,UAAU,CAAC,EAAE3jC,CAAC,CAAC4jC,OAAO,IAAI1U,CAAC,CAAC,OAAOlvB,CAAC,CAAC4jC,OAAO,IAAI,QAAQ,GAAG5jC,CAAC,CAAC4jC,OAAO,GAAG9uC,IAAI,CAACC,SAAS,CAACiL,CAAC,CAAC4jC,OAAO,CAAC,CAAC,EAAE5jC,CAAC,CAACqX,IAAI,KAAK,KAAK,CAAC,IAAI+X,CAAC,CAAC,OAAOpvB,CAAC,CAACqX,IAAI,IAAI,QAAQ,GAAGrX,CAAC,CAACqX,IAAI,GAAG,CAAC,CAACrX,CAAC,CAACqX,IAAI,CAAC,EAAErX,CAAC,CAACu9B,SAAS,KAAK,KAAK,CAAC,IAAI7E,EAAE,CAAC14B,CAAC,CAACu9B,SAAS,CAAC,EAAEv9B,CAAC,CAAC6jC,OAAO,KAAK,KAAK,CAAC,IAAIlL,EAAE,CAAC,CAAC34B,CAAC,CAAC6jC,OAAO,CAAC,EAAE7jC,CAAC,CAAC8jC,SAAS,KAAK,KAAK,CAAC,IAAIhL,EAAE,CAAC94B,CAAC,CAAC8jC,SAAS,CAAC;EACzvC;EACA,SAASjF,EAAEA,CAAA,EAAG;IACZ,OAAO;MACLgE,IAAI,EAAE/iC,CAAC,CAAC,CAAC;MACTgjC,SAAS,EAAEthC,CAAC,CAAC,CAAC;MACd6hC,YAAY,EAAEhvC,CAAC,CAAC,CAAC;MACjBivC,KAAK,EAAE7hC,CAAC,CAAC,CAAC;MACVwhC,KAAK,EAAEvhC,CAAC,CAAC,CAAC;MACV0hC,MAAM,EAAE7iC,CAAC,CAAC,CAAC;MACX4iC,QAAQ,EAAEnhC,CAAC,CAAC,CAAC;MACbghC,cAAc,EAAEzhC,CAAC,CAAC,CAAC;MACnB2hC,cAAc,EAAEhhC,CAAC,CAAC,CAAC;MACnBqhC,UAAU,EAAE5iB,CAAC,CAAC,CAAC;MACf6iB,QAAQ,EAAE9iB,CAAC,CAAC,CAAC;MACbpc,IAAI,EAAEuc,CAAC,CAAC,CAAC;MACT4gB,SAAS,EAAE3gB,CAAC,CAAC,CAAC;MACd2iB,SAAS,EAAE1iB,CAAC,CAAC,CAAC;MACd4gB,UAAU,EAAEvqB,CAAC,CAAC,CAAC;MACfssB,eAAe,EAAE3U,EAAE,CAAC,CAAC;MACrB4U,UAAU,EAAE3U,CAAC,CAAC,CAAC;MACf4U,OAAO,EAAE7tC,CAAC,CAACikC,CAAC,CAAC;MACb3iB,IAAI,EAAE+X,CAAC,CAAC,CAAC;MACTmO,SAAS,EAAE7E,EAAE,CAAC,CAAC;MACfmL,OAAO,EAAElL,EAAE,CAAC,CAAC;MACbmL,SAAS,EAAEhL,EAAE,CAAC;IAChB,CAAC;EACH;EACA,SAASiG,EAAEA,CAAA,EAAG;IACZ,OAAOlE,EAAE;EACX;EACA,SAASkJ,EAAEA,CAAC/jC,CAAC,EAAE;IACb,OAAOg7B,EAAE,CAAC9H,IAAI,CAAC,UAACzyB,CAAC;MAAA,OAAKA,CAAC,CAAC4D,WAAW,CAACy3B,UAAU,KAAK97B,CAAC;IAAA,EAAC;EACvD;EACA,SAASi/B,EAAEA,CAAA,EAAG;IACZ,OAAOlpC,CAAC,CAAC2kC,CAAC,CAAC;EACb;EACA,SAASgC,EAAEA,CAAA,EAA6B;IAAA,IAA5B18B,CAAC,GAAA3I,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAGggC,CAAC,CAACI,UAAU;IAAA,IAAEh3B,CAAC,GAAApJ,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;IACpC0jC,EAAE,KAAKS,YAAY,CAACT,EAAE,CAAC,EAAEA,EAAE,GAAG,IAAI,CAAC,EAAE7c,CAAC,CAACuc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAEvc,CAAC,CAAC+c,EAAE,EAAE,IAAI,CAAC,EAAEoE,EAAE,CAACr/B,CAAC,EAAES,CAAC,CAAC;EACvE;EACA,SAAS8+B,EAAEA,CAACv/B,CAAC,EAAE;IACb66B,EAAE,GAAG76B,CAAC;EACR;EACA,SAASq/B,EAAEA,CAACr/B,CAAC,EAAY;IAAA,IAAVS,CAAC,GAAApJ,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;IACrB6mB,CAAC,CAACwc,CAAC,EAAEra,EAAE,CAACrgB,CAAC,CAAC,CAAC,EAAEke,CAAC,CAAC4c,EAAE,EAAEza,EAAE,CAAC5f,CAAC,CAAC,CAAC,EAAEy4B,EAAE,CAAC,aAAa,EAAE;MAC3CkI,OAAO,EAAErrC,CAAC,CAACklC,EAAE,CAAC;MACd+I,KAAK,EAAEjuC,CAAC,CAAC2kC,CAAC;IACZ,CAAC,CAAC;EACJ;EAAC,SACcwB,EAAEA,CAAA;IAAA,OAAA+H,GAAA,CAAAr+B,KAAA,OAAAvO,SAAA;EAAA;EAAA,SAAA4sC,IAAA;IAAAA,GAAA,GAAA/9B,uBAAA,cAAAvG,yBAAA,GAAA4E,IAAA,CAAjB,SAAA0I,SAAA;MAAA,OAAAtN,yBAAA,GAAAoB,IAAA,UAAAoM,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArI,IAAA,GAAAqI,SAAA,CAAA7J,IAAA;UAAA;YACSm5B,EAAE,CAACrF,CAAC,CAACG,SAAS,CAAC;YAAApqB,SAAA,CAAA7J,IAAA;YAAA,OAAQ,IAAIqB,OAAO,CAAC,UAAC5E,CAAC;cAAA,OAAKgc,UAAU,CAAChc,CAAC,EAAE0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAA,EAAC;UAAA;YAAA,OAAA0L,SAAA,CAAAhK,MAAA,WAAEu5B,EAAE,CAAC,CAAC,CAACj6B,IAAI,CAAC,UAAC1C,CAAC;cAAA,OAAMshC,EAAE,CAACthC,CAAC,CAAC,EAAE47B,CAAC,CAAC,WAAW,EAAE57B,CAAC,CAAC,EAAEm/B,EAAE,CAACn/B,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC0C,IAAI,CAAC,UAAAwhC,KAAA,EAA8B;cAAA,IAArBlkC,CAAC,GAAAkkC,KAAA,CAAPtvC,IAAI;gBAAe6L,CAAC,GAAAyjC,KAAA,CAAXxC,QAAQ;cACtJ,IAAI9F,CAAC,CAAC,UAAU,EAAEn7B,CAAC,CAAC,EAAE,WAAW,IAAIT,CAAC,IAAIS,CAAC,IAAI,EAAE,WAAW,IAAIA,CAAC,CAAC,EAChE,IAAI,CAACA,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,CAAC,CAAC60B,MAAM,MAAM,KAAK,CAAC,EAAE;gBAC9C,IAAIoD,EAAE,CAAC,CAAC,EACN,OAAOmI,EAAE,CAACzE,EAAE,CAACp8B,CAAC,EAAES,CAAC,CAAC,CAAC;gBACrByd,CAAC,CAAC+c,EAAE,EAAE5a,EAAE,CAAC+b,EAAE,CAACp8B,CAAC,EAAES,CAAC,CAAC,CAAC,CAAC,EAAEm7B,CAAC,CAAC,SAAS,EAAE7lC,CAAC,CAACklC,EAAE,CAAC,CAAC;cAC1C,CAAC,MACC,MAAMW,CAAC,CAAC,iHAAiH,CAAC,EAAE,IAAIh5B,KAAK,CAAC,6BAA6B,CAAC;YAC1K,CAAC,CAAC,CAACF,IAAI,CAAC,YAAM;cACZ28B,EAAE,CAAChI,CAAC,CAACE,QAAQ,CAAC,EAAEqE,CAAC,CAAC,UAAU,CAAC,EAAE1W,EAAE,CAAC,CAAC,CAACxiB,IAAI,CAAC,YAAM;gBAC7Cw2B,EAAE,CAAC,UAAU,EAAE;kBAAEkI,OAAO,EAAErrC,CAAC,CAACklC,EAAE;gBAAE,CAAC,CAAC;cACpC,CAAC,CAAC;YACJ,CAAC,CAAC,SAAM,CAAC,UAACj7B,CAAC,EAAK;cACd47B,CAAC,CAAC57B,CAAC,CAAC,EAAEq/B,EAAE,CAAChI,CAAC,CAACC,KAAK,EAAEt3B,CAAC,CAACgQ,OAAO,CAAC;YAC9B,CAAC,CAAC;UAAA;UAAA;YAAA,OAAA5C,SAAA,CAAAlI,IAAA;QAAA;MAAA,GAAA+H,QAAA;IAAA,CACH;IAAA,OAAAg3B,GAAA,CAAAr+B,KAAA,OAAAvO,SAAA;EAAA;EACD,IAAI8sC,EAAE,GAAG9L,EAAE,CAAC,CAAC;IAAE+L,EAAE,GAAG5hB,EAAE,CAAC2hB,EAAE,CAAC;EAC1B3X,EAAE,CAAC4X,EAAE,EAAEvkC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;EACxB,IAAIwkC,EAAE,GAAG3hB,EAAE,CAAC0hB,EAAE,EAAE,CAAC,CAAC;IAAEE,EAAE,GAAGhiB,CAAC,CAAC+hB,EAAE,CAAC;IAAEE,EAAE,GAAGjiB,CAAC,CAACgiB,EAAE,CAAC;EAC1C;IACE,IAAIE,EAAE,GAAG,SAALA,EAAEA,CAAIxkC,CAAC,EAAK;MACd,IAAIS,CAAC,GAAGk3B,EAAE,CAAC,CAAC;MACZhN,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;IACV,CAAC;IACDwrB,EAAE,CAACsY,EAAE,EAAE,UAACvkC,CAAC,EAAK;MACZjK,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACG,SAAS,IAAIx3B,CAAC,CAACwkC,EAAE,CAAC;IAC/B,CAAC,CAAC;EACJ;EACA,IAAIC,EAAE,GAAG/hB,EAAE,CAAC6hB,EAAE,EAAE,CAAC,CAAC;EAClB,IAAIG,EAAE;EACN,IAAIC,EAAE,GAAGriB,CAAC,CAACmiB,EAAE,CAAC;EACdhX,EAAE,CAACkX,EAAE,CAAC,EAAEA,EAAE,CAACC,QAAQ,GAAG/E,EAAE,EAAE3f,CAAC,CAACukB,EAAE,CAAC;EAC/B,IAAII,EAAE,GAAGniB,EAAE,CAAC+hB,EAAE,EAAE,CAAC,CAAC;IAAEK,EAAE,GAAGxiB,CAAC,CAACuiB,EAAE,CAAC;EAC9B;IACE,IAAIE,EAAE,GAAG,SAALA,EAAEA,CAAI/kC,CAAC,EAAK;QACd,IAAIS,CAAC,GAAGm3B,EAAE,CAAC,CAAC;UAAEkF,CAAC,GAAGta,EAAE,CAAC/hB,CAAC,CAAC;UAAEs8B,CAAC,GAAGza,CAAC,CAACwa,CAAC,CAAC;QACjCxQ,EAAE,CAACyQ,CAAC,EAAE;UAAA,OAAMhnC,CAAC,CAACikC,CAAC,CAAC,CAACK,QAAQ;QAAA,EAAC,EAAEna,CAAC,CAAC4c,CAAC,CAAC;QAChC,IAAIE,CAAC,GAAGta,EAAE,CAACoa,CAAC,EAAE,CAAC,CAAC;QAChBrP,EAAE,CAACuP,CAAC,CAAC,EAAExW,EAAE,CAAC,YAAM;UACdmH,EAAE,CAACqP,CAAC,EAAE,MAAM,EAAEnc,CAAC,CAAC,CAAC,CAAC,EAAE+M,EAAE,CAACoP,CAAC,EAAEjnC,CAAC,CAACklC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,EAAEtQ,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;MACd,CAAC;MAAEukC,EAAE,GAAG,SAALA,EAAEA,CAAIhlC,CAAC,EAAES,CAAC,EAAK;QAChB;UACE,IAAIq8B,CAAC,GAAG,SAAJA,CAACA,CAAIE,CAAC,EAAK;cACb,IAAIpV,CAAC,GAAGiQ,EAAE,CAAC,CAAC;gBAAE/1B,CAAC,GAAGwgB,CAAC,CAACsF,CAAC,CAAC;cACtB0E,EAAE,CAACxqB,CAAC,EAAE;gBAAA,OAAM/L,CAAC,CAACikC,CAAC,CAAC,CAACM,SAAS;cAAA,EAAC,EAAEpa,CAAC,CAAC0H,CAAC,CAAC,EAAE+C,EAAE,CAACqS,CAAC,EAAEpV,CAAC,CAAC;YAC7C,CAAC;YAAEmV,CAAC,GAAG,SAAJA,CAACA,CAAIC,CAAC,EAAK;cACZ,IAAIpV,CAAC,GAAGkQ,EAAE,CAAC,CAAC;gBAAEh2B,CAAC,GAAGwgB,CAAC,CAACsF,CAAC,CAAC;cACtB0E,EAAE,CAACxqB,CAAC,EAAE;gBAAA,OAAM/L,CAAC,CAACikC,CAAC,CAAC,CAACI,KAAK;cAAA,EAAC,EAAEla,CAAC,CAAC0H,CAAC,CAAC,EAAEpB,EAAE,CAAC;gBAAA,OAAMmH,EAAE,CAAC/F,CAAC,EAAE,KAAK,EAAE7xB,CAAC,CAACykC,EAAE,CAAC,CAAC;cAAA,EAAC,EAAE7P,EAAE,CAACqS,CAAC,EAAEpV,CAAC,CAAC;YACxE,CAAC;UACDqE,EAAE,CACAjsB,CAAC,EACD,UAACg9B,CAAC,EAAK;YACLjnC,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACG,SAAS,GAAGwF,CAAC,CAACF,CAAC,CAAC,GAAGE,CAAC,CAACD,CAAC,EAAE,CAAC,CAAC,CAAC;UACxC,CAAC,EACDt8B,CACF,CAAC;QACH;MACF,CAAC;IACDwrB,EAAE,CAAC6Y,EAAE,EAAE,UAAC9kC,CAAC,EAAK;MACZjK,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACE,QAAQ,GAAGv3B,CAAC,CAAC+kC,EAAE,CAAC,GAAG/kC,CAAC,CAACglC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;EACA9kB,CAAC,CAAC2kB,EAAE,CAAC;EACL,IAAII,EAAE,GAAGviB,EAAE,CAACmiB,EAAE,EAAE,CAAC,CAAC;EAClB;IACE,IAAIK,EAAE,GAAG,SAALA,EAAEA,CAAIllC,CAAC,EAAK;MACd,IAAIS,CAAC,GAAGs3B,EAAE,CAAC,CAAC;QAAE+E,CAAC,GAAGxa,CAAC,CAAC7hB,CAAC,CAAC;MACtBktB,EAAE,CAACmP,CAAC,EAAE,MAAM,EAAE7D,EAAE,CAAC,EAAE/Y,CAAC,CAACzf,CAAC,CAAC,EAAE+lB,EAAE,CAAC;QAAA,OAAMmH,EAAE,CAACmP,CAAC,EAAE,YAAY,EAAE/mC,CAAC,CAACikC,CAAC,CAAC,CAACC,aAAa,CAAC;MAAA,EAAC,EAAEtP,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;IACtF,CAAC;IACDwrB,EAAE,CAACgZ,EAAE,EAAE,UAACjlC,CAAC,EAAK;MACZ,CAAC0gB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI3qB,CAAC,CAAC2jC,EAAE,CAAC,KAAK15B,CAAC,CAACklC,EAAE,CAAC;IAChC,CAAC,CAAC;EACJ;EACAhlB,CAAC,CAACokB,EAAE,CAAC;EACL,IAAIa,EAAE,GAAGziB,EAAE,CAAC4hB,EAAE,EAAE,CAAC,CAAC;EAClB;IACE,IAAIc,EAAE,GAAG,SAALA,EAAEA,CAAIplC,CAAC,EAAK;MACd,IAAIS,CAAC,GAAGy3B,EAAE,CAAC,CAAC;QAAE4E,CAAC,GAAGpa,EAAE,CAACJ,CAAC,CAAC7hB,CAAC,CAAC,EAAE,CAAC,CAAC;MAC7B;QACE,IAAIs8B,CAAC,GAAG,SAAJA,CAACA,CAAInV,CAAC,EAAK;YACb,IAAI9lB,CAAC,GAAGk2B,EAAE,CAAC,CAAC;cAAEiF,CAAC,GAAG3a,CAAC,CAACxgB,CAAC,CAAC;YACtBwqB,EAAE,CAAC2Q,CAAC,EAAE;cAAA,OAAMlnC,CAAC,CAACikC,CAAC,CAAC,CAACE,OAAO;YAAA,EAAC,EAAEha,CAAC,CAACpe,CAAC,CAAC,EAAE0kB,EAAE,CAAC;cAAA,OAAMmH,EAAE,CAAC7rB,CAAC,EAAE,OAAO,EAAE/L,CAAC,CAAC+kC,EAAE,CAAC,CAAC;YAAA,EAAC,EAAEnQ,EAAE,CAAC/C,CAAC,EAAE9lB,CAAC,CAAC;UAC5E,CAAC;UAAEk7B,CAAC,GAAG,SAAJA,CAACA,CAAIpV,CAAC,EAAK;YACZ,IAAI9lB,CAAC,GAAGm2B,EAAE,CAAC,CAAC;cAAEgF,CAAC,GAAG3a,CAAC,CAACxgB,CAAC,CAAC;YACtBwqB,EAAE,CAAC2Q,CAAC,EAAE;cAAA,OAAMlnC,CAAC,CAACikC,CAAC,CAAC,CAACjyB,KAAK;YAAA,EAAC,EAAEmY,CAAC,CAACpe,CAAC,CAAC,EAAE0kB,EAAE,CAAC;cAAA,OAAMmH,EAAE,CAAC7rB,CAAC,EAAE,OAAO,EAAE/L,CAAC,CAAC+kC,EAAE,CAAC,CAAC;YAAA,EAAC,EAAEnQ,EAAE,CAAC/C,CAAC,EAAE9lB,CAAC,CAAC;UAC1E,CAAC;QACDmqB,EAAE,CAAC6Q,CAAC,EAAE,UAAClV,CAAC,EAAK;UACX7xB,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACK,OAAO,GAAG9P,CAAC,CAACmV,CAAC,CAAC,GAAGnV,CAAC,CAACoV,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC;MACJ;MACA9c,CAAC,CAACzf,CAAC,CAAC,EAAEkqB,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;IAChB,CAAC;IACDwrB,EAAE,CAACkZ,EAAE,EAAE,UAACnlC,CAAC,EAAK;MACZ,CAACjK,CAAC,CAAC+kC,EAAE,CAAC,IAAI/kC,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACK,OAAO,KAAK13B,CAAC,CAAColC,EAAE,CAAC;IACxC,CAAC,CAAC;EACJ;EACA,IAAIC,EAAE,GAAG3iB,EAAE,CAACyiB,EAAE,EAAE,CAAC,CAAC;EAClB;IACE,IAAIG,EAAE,GAAG,SAALA,EAAEA,CAAItlC,CAAC,EAAK;MACd,IAAIS,CAAC,GAAG03B,EAAE,CAAC,CAAC;QAAE2E,CAAC,GAAGxa,CAAC,CAAC7hB,CAAC,CAAC;QAAEs8B,CAAC,GAAGza,CAAC,CAACwa,CAAC,CAAC;MAChCxQ,EAAE,CAACyQ,CAAC,EAAE;QAAA,OAAMhnC,CAAC,CAACikC,CAAC,CAAC,CAACG,MAAM;MAAA,EAAC,EAAEja,CAAC,CAAC4c,CAAC,CAAC,EAAE5c,CAAC,CAACzf,CAAC,CAAC,EAAEkqB,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;IAChD,CAAC;IACDwrB,EAAE,CAACoZ,EAAE,EAAE,UAACrlC,CAAC,EAAK;MACZjK,CAAC,CAACikC,CAAC,CAAC,CAACG,MAAM,KAAKxZ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI5qB,CAAC,CAAC2jC,EAAE,CAAC,CAAC,IAAI15B,CAAC,CAACslC,EAAE,CAAC;IAC/C,CAAC,CAAC;EACJ;EACA,IAAIC,EAAE,GAAG7iB,EAAE,CAAC2iB,EAAE,EAAE,CAAC,CAAC;EAClB;IACE,IAAIG,EAAE,GAAG,SAALA,EAAEA,CAAIxlC,CAAC,EAAK;MACd,IAAIS,CAAC,GAAG23B,EAAE,CAAC,CAAC;MACZ9J,EAAE,CAAC7tB,CAAC,EAAE,UAACq8B,CAAC;QAAA,OAAK5e,CAAC,CAAC0c,EAAE,EAAEkC,CAAC,CAAC;MAAA,GAAE;QAAA,OAAM/mC,CAAC,CAAC6kC,EAAE,CAAC;MAAA,EAAC,EAAEjQ,EAAE,CAAC3qB,CAAC,EAAES,CAAC,CAAC;IAC/C,CAAC;IACDwrB,EAAE,CAACsZ,EAAE,EAAE,UAACvlC,CAAC,EAAK;MACZgC,CAAC,CAAC,CAAC,IAAIhC,CAAC,CAACwlC,EAAE,CAAC;IACd,CAAC,CAAC;EACJ;EACA,OAAOtlB,CAAC,CAACmkB,EAAE,CAAC,EAAE/V,EAAE,CAAC+V,EAAE,EAAE,UAACrkC,CAAC;IAAA,OAAKke,CAAC,CAACyc,CAAC,EAAE36B,CAAC,CAAC;EAAA,GAAE;IAAA,OAAMjK,CAAC,CAAC4kC,CAAC,CAAC;EAAA,EAAC,EAAEnU,EAAE,CAClD,UAACxmB,CAAC,EAAK;IACL2tB,EAAE,CAAC0W,EAAE,EAAE,YAAY,EAAEtuC,CAAC,CAAC2kC,CAAC,CAAC,CAAC,EAAE/M,EAAE,CAAC0W,EAAE,EAAE,eAAe,EAAEriC,CAAC,CAAC,CAAC,CAAC,EAAE0iC,EAAE,GAAGvX,EAAE,CAACsX,EAAE,EAAE,CAAC,EAAE,+BAA+B,EAAE,IAAI,EAAEC,EAAE,EAAE1kC,CAAC,CAAC,EAAE2tB,EAAE,CAACgX,EAAE,EAAE,IAAI,EAAE5uC,CAAC,CAACykC,EAAE,CAAC,CAAC,EAAEmK,EAAE,CAACc,QAAQ,GAAG3lC,CAAC,CAAC,CAAC,KAAK,UAAU,KAAK,CAACkC,CAAC,CAAC,CAAC,IAAIlC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;EAC1M,CAAC,EACD,CACE;IAAA,OAAO;MACL,eAAe,EAAE/J,CAAC,CAAC2kC,CAAC,CAAC,KAAKrD,CAAC,CAACG;IAC9B,CAAC;EAAA,CAAC,CAEN,CAAC,EAAExO,EAAE,CAAC,SAAS,EAAE2b,EAAE,EAAEtE,EAAE,CAAC,EAAElS,EAAE,CAACwW,EAAE,EAAE;IAAA,OAAM5uC,CAAC,CAAC0kC,EAAE,CAAC;EAAA,GAAE,UAACz6B,CAAC;IAAA,OAAKke,CAAC,CAACuc,EAAE,EAAEz6B,CAAC,CAAC;EAAA,EAAC,EAAE2qB,EAAE,CAAC/qB,CAAC,EAAEukC,EAAE,CAAC,EAAEtc,EAAE,CAAC;IAC5E6W,OAAO,EAAEzC,EAAE;IACXyJ,SAAS,EAAElI,EAAE;IACboB,gBAAgB,EAAEC,EAAE;IACpBC,iBAAiB,EAAEC,EAAE;IACrB4G,SAAS,EAAE5B,EAAE;IACb/E,QAAQ,EAAEC,EAAE;IACZ/6B,KAAK,EAAEw4B,EAAE;IACT4C,iBAAiB,EAAEC,EAAE;IACrBH,QAAQ,EAAEC,EAAE;IACZG,MAAM,EAAEtD,EAAE;IACV,IAAI2G,IAAIA,CAAA,EAAG;MACT,OAAO/iC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI+iC,IAAIA,CAAC7iC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACjBF,CAAC,CAACE,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI6d,SAASA,CAAA,EAAG;MACd,OAAOthC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIshC,SAASA,CAAC9iC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACtBwB,CAAC,CAACxB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIoe,YAAYA,CAAA,EAAG;MACjB,OAAOhvC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIgvC,YAAYA,CAACrjC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACzB3L,CAAC,CAAC2L,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI2gB,aAAaA,CAAA,EAAG;MAClB,OAAOvlC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIulC,aAAaA,CAAC5lC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MAC1BK,CAAC,CAACL,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI8d,WAAWA,CAAA,EAAG;MAChB,OAAO7iC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI6iC,WAAWA,CAAC/iC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACxBE,CAAC,CAACF,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIqe,KAAKA,CAAA,EAAG;MACV,OAAO7hC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI6hC,KAAKA,CAACtjC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACdyB,CAAC,CAACzB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIge,KAAKA,CAAA,EAAG;MACV,OAAOvhC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIuhC,KAAKA,CAACjjC,CAAC,EAAM;MAAA,IAAPA,CAAC;QAADA,CAAC,GAAG,CAAC;MAAA;MACb0B,CAAC,CAAC1B,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIme,MAAMA,CAAA,EAAG;MACX,OAAO7iC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI6iC,MAAMA,CAACpjC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACnBO,CAAC,CAACP,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIke,QAAQA,CAAA,EAAG;MACb,OAAOnhC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAImhC,QAAQA,CAACnjC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACrBgC,CAAC,CAAChC,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI+d,cAAcA,CAAA,EAAG;MACnB,OAAOzhC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIyhC,cAAcA,CAAChjC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MAC3BuB,CAAC,CAACvB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIie,cAAcA,CAAA,EAAG;MACnB,OAAOhhC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIghC,cAAcA,CAACljC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MAC3BkC,CAAC,CAAClC,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIse,UAAUA,CAAA,EAAG;MACf,OAAO5iB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI4iB,UAAUA,CAACvjC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACnB2gB,CAAC,CAAC3gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIue,QAAQA,CAAA,EAAG;MACb,OAAO9iB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI8iB,QAAQA,CAACxjC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACjB0gB,CAAC,CAAC1gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI8H,EAAEA,CAAA,EAAG;MACP,OAAOnM,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAImM,EAAEA,CAAC/sB,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACf4gB,CAAC,CAAC5gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI3gB,IAAIA,CAAA,EAAG;MACT,OAAOuc,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIvc,IAAIA,CAACtE,CAAC,EAAa;MAAA,IAAdA,CAAC;QAADA,CAAC,GAAG,QAAQ;MAAA;MACnB6gB,CAAC,CAAC7gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIwc,SAASA,CAAA,EAAG;MACd,OAAO3gB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI2gB,SAASA,CAACzhC,CAAC,EAAQ;MAAA,IAATA,CAAC;QAADA,CAAC,GAAG,GAAG;MAAA;MACnB8gB,CAAC,CAAC9gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIwe,SAASA,CAAA,EAAG;MACd,OAAO1iB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI0iB,SAASA,CAACzjC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MAClB+gB,CAAC,CAAC/gB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI0c,UAAUA,CAAA,EAAG;MACf,OAAOvqB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIuqB,UAAUA,CAAC3hC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACvBoX,CAAC,CAACpX,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI4gB,OAAOA,CAAA,EAAG;MACZ,OAAO1W,EAAE,CAAC,CAAC;IACb,CAAC;IACD,IAAI0W,OAAOA,CAAC7lC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACpBmvB,EAAE,CAACnvB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAIye,eAAeA,CAAA,EAAG;MACpB,OAAO3U,EAAE,CAAC,CAAC;IACb,CAAC;IACD,IAAI2U,eAAeA,CAAC1jC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACxB+uB,EAAE,CAAC/uB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI0e,UAAUA,CAAA,EAAG;MACf,OAAO3U,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI2U,UAAUA,CAAC3jC,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACnBgvB,CAAC,CAAChvB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI2e,OAAOA,CAAA,EAAG;MACZ,OAAO1U,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI0U,OAAOA,CAAC5jC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACpBkvB,CAAC,CAAClvB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAI5N,IAAIA,CAAA,EAAG;MACT,OAAO+X,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI/X,IAAIA,CAACrX,CAAC,EAAO;MAAA,IAARA,CAAC;QAADA,CAAC,GAAG,CAAC,CAAC;MAAA;MACbovB,CAAC,CAACpvB,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,IAAIsY,SAASA,CAAA,EAAG;MACd,OAAO7E,EAAE,CAAC,CAAC;IACb,CAAC;IACD,IAAI6E,SAASA,CAACv9B,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACtB04B,EAAE,CAAC14B,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI4e,OAAOA,CAAA,EAAG;MACZ,OAAOlL,EAAE,CAAC,CAAC;IACb,CAAC;IACD,IAAIkL,OAAOA,CAAC7jC,CAAC,EAAqD;MAAA,IAAtDA,CAAC;QAADA,CAAC,GAAGm0B,IAAI,CAACyE,GAAG,CAAC,EAAE,EAAE3lB,SAAS,CAAC4lB,mBAAmB,IAAI,CAAC,CAAC;MAAA;MAC9DF,EAAE,CAAC34B,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI6e,SAASA,CAAA,EAAG;MACd,OAAOhL,EAAE,CAAC,CAAC;IACb,CAAC;IACD,IAAIgL,SAASA,CAAC9jC,CAAC,EAAW;MAAA,IAAZA,CAAC;QAADA,CAAC,GAAG,KAAK,CAAC;MAAA;MACtB84B,EAAE,CAAC94B,CAAC,CAAC,EAAEilB,CAAC,CAAC,CAAC;IACZ;EACF,CAAC,CAAC;AACJ;AACAkE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACd2c,cAAc,CAACnlC,MAAM,CAAC,eAAe,EAAE2yB,EAAE,CACvCiF,EAAE,EACF;EACEuK,SAAS,EAAE;IAAEzqC,IAAI,EAAE;EAAU,CAAC;EAC9BirC,KAAK,EAAE;IAAEjrC,IAAI,EAAE;EAAU,CAAC;EAC1B4qC,KAAK,EAAE;IAAE5qC,IAAI,EAAE;EAAS,CAAC;EACzB+qC,MAAM,EAAE;IAAE/qC,IAAI,EAAE;EAAS,CAAC;EAC1B6qC,cAAc,EAAE;IAAE7qC,IAAI,EAAE;EAAS,CAAC;EAClCkrC,UAAU,EAAE;IAAElrC,IAAI,EAAE;EAAU,CAAC;EAC/BmrC,QAAQ,EAAE;IAAEnrC,IAAI,EAAE;EAAU,CAAC;EAC7BopC,SAAS,EAAE;IAAEppC,IAAI,EAAE;EAAS,CAAC;EAC7BorC,SAAS,EAAE;IAAEprC,IAAI,EAAE;EAAU,CAAC;EAC9BqrC,eAAe,EAAE;IAAErrC,IAAI,EAAE;EAAU,CAAC;EACpCgf,IAAI,EAAE;IAAEhf,IAAI,EAAE;EAAU,CAAC;EACzBwrC,OAAO,EAAE;IAAExrC,IAAI,EAAE;EAAS,CAAC;EAC3BwqC,IAAI,EAAE,CAAC,CAAC;EACRQ,YAAY,EAAE,CAAC,CAAC;EAChBuC,aAAa,EAAE,CAAC,CAAC;EACjB7C,WAAW,EAAE,CAAC,CAAC;EACfI,QAAQ,EAAE,CAAC,CAAC;EACZH,cAAc,EAAE,CAAC,CAAC;EAClBjW,EAAE,EAAE,CAAC,CAAC;EACNzoB,IAAI,EAAE,CAAC,CAAC;EACRq9B,UAAU,EAAE,CAAC,CAAC;EACdkE,OAAO,EAAE,CAAC,CAAC;EACXlC,UAAU,EAAE,CAAC,CAAC;EACdC,OAAO,EAAE,CAAC,CAAC;EACXrG,SAAS,EAAE,CAAC,CAAC;EACbuG,SAAS,EAAE,CAAC;AACd,CAAC,EACD,CAAC,SAAS,CAAC,EACX,CACE,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,UAAU,EACV,QAAQ,CACT,EACD,CAAC,CACH,CAAC,CAAC;AACFzG,UAAU,CAACgF,kBAAkB,GAAG,UAACziC,CAAC;EAAA,OAAKA,CAAC,GAAG,IAAI2Y,MAAM,CAAC,IAAIH,GAAG,CAACxY,CAAC,CAAC,CAAC,GAAG,IAAIuY,EAAE,CAAC,CAAC;AAAA;AAC5EklB,UAAU,CAACmB,aAAa,GAAGnB,UAAU,CAACmB,aAAa,IAAI,EAAE;;;;;;;;;;;;;;;;;ACxkFzD;AACkC;AAClC;AACgD;AAAA,IAE3BwH,WAAW,0BAAAvxB,SAAA;EAG5B,SAAAuxB,YAAY30B,MAAM,EAAE;IAAA1d,sBAAA,OAAAqyC,WAAA;IAAA,OAAAtxB,iBAAA,OAAAsxB,WAAA,GACV30B,MAAM;EAChB;EAACsD,gBAAA,CAAAqxB,WAAA,EAAAvxB,SAAA;EAAA,OAAA7gB,mBAAA,CAAAoyC,WAAA;IAAAnyC,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACw0B,+BAA+B,CAAC,CAAC;IAC1C;EAAC;IAAApyC,GAAA;IAAAC,KAAA,EAED,SAAAmyC,+BAA+BA,CAAA,EAAG;MAC9B,IAAMpzB,MAAM,GAAGrd,QAAQ,CAACuE,aAAa,CAAC,2BAA2B,CAAC;MAClE8Y,MAAM,CAACxX,SAAS,CAACE,GAAG,CAACO,UAAU,CAAC;MAChC+W,MAAM,CAACxX,SAAS,CAACE,GAAG,CAAC2qC,iBAAiB,CAAC;IAC3C;EAAC;AAAA,EAhBoC90B,QAAQ;AAAAhU,sBAAA,CAA5B4oC,WAAW,UACdG,eAAe;;;;;;;;;;;;;;;;;ACNjC;AACkC;AAClC;AACgD;AAAA,IAE3BC,kBAAkB,0BAAA3xB,SAAA;EAGnC,SAAA2xB,mBAAY/0B,MAAM,EAAE;IAAA1d,8BAAA,OAAAyyC,kBAAA;IAAA,OAAA1xB,yBAAA,OAAA0xB,kBAAA,GACV/0B,MAAM;EAChB;EAACsD,wBAAA,CAAAyxB,kBAAA,EAAA3xB,SAAA;EAAA,OAAA7gB,2BAAA,CAAAwyC,kBAAA;IAAAvyC,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;AAAA,EAT2CL,QAAQ;AAAAhU,8BAAA,CAAnCgpC,kBAAkB,UACrBC,sBAAsB;;;;;;;;;;;;;;;;;ACNxC;AACkC;AAClC;AACgD;AAAA,IAE3BC,wBAAwB,0BAAA7xB,SAAA;EAGzC,SAAA6xB,yBAAYj1B,MAAM,EAAE;IAAA1d,qCAAA,OAAA2yC,wBAAA;IAAA,OAAA5xB,gCAAA,OAAA4xB,wBAAA,GACVj1B,MAAM;EAChB;EAACsD,+BAAA,CAAA2xB,wBAAA,EAAA7xB,SAAA;EAAA,OAAA7gB,kCAAA,CAAA0yC,wBAAA;IAAAzyC,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAAC80B,4CAA4C,CAAC,CAAC;IACvD;EAAC;IAAA1yC,GAAA;IAAAC,KAAA,EAED,SAAAyyC,4CAA4CA,CAAA,EAAG;MAC3C,IAAM1zB,MAAM,GAAGrd,QAAQ,CAACuE,aAAa,CAAC,2BAA2B,CAAC;MAClE8Y,MAAM,CAACxX,SAAS,CAACE,GAAG,CAACO,UAAU,CAAC;MAChC+W,MAAM,CAACxX,SAAS,CAACE,GAAG,CAAC2qC,iBAAiB,CAAC;IAC3C;EAAC;AAAA,EAhBiD90B,QAAQ;AAAAhU,qCAAA,CAAzCkpC,wBAAwB,UAC3BE,4BAA4B;;;;;;;;;;;;;;;;;ACN9C;AACkC;AAClC;AACgD;AAAA,IAE3BC,+BAA+B,0BAAAhyB,SAAA;EAGhD,SAAAgyB,gCAAYp1B,MAAM,EAAE;IAAA1d,6CAAA,OAAA8yC,+BAAA;IAAA,OAAA/xB,wCAAA,OAAA+xB,+BAAA,GACVp1B,MAAM;EAChB;EAACsD,uCAAA,CAAA8xB,+BAAA,EAAAhyB,SAAA;EAAA,OAAA7gB,0CAAA,CAAA6yC,+BAAA;IAAA5yC,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;AAAA,EATwDL,QAAQ;AAAAhU,6CAAA,CAAhDqpC,+BAA+B,UAClCC,mCAAmC;;;;;;;;;;;;;;;;;;;;ACLnB;AAAA,IAEbC,WAAW,0BAAAlyB,SAAA;EAG5B,SAAAkyB,YAAYt1B,MAAM,EAAE;IAAA1d,uBAAA,OAAAgzC,WAAA;IAAA,OAAAjyB,cAAA,OAAAiyB,WAAA,GACVt1B,MAAM;EAChB;EAACsD,aAAA,CAAAgyB,WAAA,EAAAlyB,SAAA;EAAA,OAAA7gB,oBAAA,CAAA+yC,WAAA;IAAA9yC,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACm1B,aAAa,CAAC,CAAC;IACxB;EAAC;IAAA/yC,GAAA;IAAAC,KAAA,EACD,SAAA8yC,aAAaA,CAAA,EAAG,CAEhB;EAAC;IAAA/yC,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,iBAAA,CAAA+xB,WAAA;IACJ;EAAC;AAAA,EAjBoCv1B,QAAQ;AAAAhU,uBAAA,CAA5BupC,WAAW,UACdE,eAAe;;;;;;;;;;;;ACHD;AAAA,IAEX31B,eAAe;EAAA,SAAAA,gBAAA;IAAAvd,+BAAA,OAAAud,eAAA;EAAA;EAAA,OAAAtd,4BAAA,CAAAsd,eAAA;IAAArd,GAAA;IAAAC,KAAA,EAChC,SAAOgzC,kCAAkCA,CAACC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAwB;MAAA,IAAtBC,aAAa,GAAA7vC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MACzF,OAAO;QACHyG,IAAI,EAAEipC,UAAU,CAACC,OAAO,CAAC;QACzBlzC,KAAK,EAAEizC,UAAU,CAACE,QAAQ,CAAC;QAC3BhpC,QAAQ,EAAG8oC,UAAU,CAACE,QAAQ,CAAC,IAAIC;MACvC,CAAC;IACL;EAAC;IAAArzC,GAAA;IAAAC,KAAA,EACD,SAAOqzC,2BAA2BA,CAACJ,UAAU,EAAwB;MAAA,IAAtBG,aAAa,GAAA7vC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAC/D,IAAI2vC,OAAO,GAAGD,UAAU,CAACzpC,sBAAsB,CAAC;MAChD,IAAI2pC,QAAQ,GAAGF,UAAU,CAACvpC,uBAAuB,CAAC;MAClD;MACA,OAAO0T,eAAe,CAAC41B,kCAAkC,CAACC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,aAAa,CAAC;IAC3G;EAAC;IAAArzC,GAAA;IAAAC,KAAA,EACD,SAAOszC,aAAaA,CAACL,UAAU,EAAE;MAC7B,OAAOA,UAAU,IAAI,IAAI,GAAG,EAAE,GAAGA,UAAU,CAACA,UAAU,CAACzpC,sBAAsB,CAAC,CAAC;IACnF;EAAC;IAAAzJ,GAAA;IAAAC,KAAA,EACD,SAAOuzC,8BAA8BA,CAACC,MAAM,EAAEC,KAAK,EAAE;MACjD,IAAIC,WAAW,GAAG,EAAE;MACpB,IAAIC,GAAG,GAAGF,KAAK,CAAC9N,KAAK,CAAC,GAAG,CAAC;MAAC,IAAAzY,SAAA,GAAA9J,0CAAA,CACZuwB,GAAG;QAAAxmB,KAAA;MAAA;QAAlB,KAAAD,SAAA,CAAAtf,CAAA,MAAAuf,KAAA,GAAAD,SAAA,CAAAhhB,CAAA,IAAA6C,IAAA,GAAoB;UAAA,IAAXkqB,EAAE,GAAA9L,KAAA,CAAAntB,KAAA;UACP0zC,WAAW,CAACzjC,IAAI,CAACujC,MAAM,CAACva,EAAE,CAAC,CAAC;QAChC;MAAC,SAAA5L,GAAA;QAAAH,SAAA,CAAAphB,CAAA,CAAAuhB,GAAA;MAAA;QAAAH,SAAA,CAAAvf,CAAA;MAAA;MACD,OAAO+lC,WAAW;IACtB;EAAC;AAAA;;;;;;;;;AC1BuC;AAAA,IAEvBr2B,YAAY;EAAA,SAAAA,aAAA;IAAAxd,4BAAA,OAAAwd,YAAA;EAAA;EAAA,OAAAvd,yBAAA,CAAAud,YAAA;IAAAtd,GAAA;IAAAC,KAAA,EAC7B,SAAOuc,MAAMA,CAAA,EAAG;MACZ9R,MAAM,CAACC,sBAAsB,CAAC8U,cAAc,GAAG,UAAU,GAAG9C,UAAU,EAAEzR,eAAe,EAAE,UAAC0R,YAAY,EAAK;QACvGA,YAAY,CAACzR,gBAAgB,CAAC,OAAO,EAAE,YAAM;UACzC,IAAI0R,OAAO,GAAGlb,QAAQ,CAACuE,aAAa,CAACuZ,cAAc,CAAC;UACpD5C,OAAO,CAACC,KAAK,CAACC,UAAU,GAAG,QAAQ;QACvC,CAAC,CAAC;MACN,CAAC,CAAC;IACN;EAAC;IAAA/c,GAAA;IAAAC,KAAA,EACD,SAAOkd,IAAIA,CAAC02B,QAAQ,EAAE;MAClB,IAAIh3B,OAAO,GAAGlb,QAAQ,CAACuE,aAAa,CAACuZ,cAAc,CAAC;MACpD,IAAIq0B,UAAU,GAAGj3B,OAAO,CAAC3W,aAAa,CAAC6tC,YAAY,CAAC;MACpDD,UAAU,CAACrpC,SAAS,GAAGopC,QAAQ;MAC/Bh3B,OAAO,CAACC,KAAK,CAACC,UAAU,GAAG,SAAS;IACxC;EAAC;AAAA;;;;;;;;;;;;;;;;;;;;AChBqE;AACpC;AACa;AACL;AACb;AACL;AACA;AACQ;AAE2C;AACJ;AAAA,IAEtDi3B,aAAa,0BAAApzB,SAAA;EAC9B;EACA;EACA;;EAEA,SAAAozB,cAAYx2B,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,yBAAA,OAAAk0C,aAAA;IAChB91B,KAAA,GAAA2C,oBAAA,OAAAmzB,aAAA,GAAMx2B,MAAM;IACZU,KAAA,CAAK+1B,cAAc,GAAG,IAAI;IAC1B/1B,KAAA,CAAKg2B,UAAU,GAAG,IAAI;IACtBh2B,KAAA,CAAKi2B,WAAW,GAAG,IAAI;IACvBj2B,KAAA,CAAKk2B,SAAS,GAAG,IAAI;IACrBl2B,KAAA,CAAKm2B,UAAU,GAAG,IAAI;IAEtBn2B,KAAA,CAAKo2B,mBAAmB,GAAGp2B,KAAA,CAAKo2B,mBAAmB,CAAC7yB,IAAI,CAAAvD,KAAK,CAAC;IAAC,OAAAA,KAAA;EACnE;EAAC4C,mBAAA,CAAAkzB,aAAA,EAAApzB,SAAA;EAAA,OAAA7gB,sBAAA,CAAAi0C,aAAA;IAAAh0C,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAqB;MAAA,IAApB42B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MACzB,MAAM,IAAIuL,KAAK,CAAC,qCAAqC,CAAC;IAC1D;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAA2d,gBAAgBA,CAAA,EAA8C;MAAA,IAAAmB,MAAA;MAAA,IAA7Cw1B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,IAAEgxC,eAAe,GAAAhxC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MACxD,IAAI,CAAC+wC,UAAU,EAAE;QACbxzB,uBAAA,CAAAizB,aAAA;QACA,IAAI,CAACS,aAAa,CAAC,CAAC;QACpB,IAAI,CAACC,uBAAuB,CAAC,CAAC;QAC9B,IAAI,CAACC,eAAe,CAAC,CAAC;QACtBp4B,cAAc,CAACC,MAAM,CAAC,YAAM;UACxB,IAAIg4B,eAAe,EAAE;YACjBz1B,MAAI,CAAC61B,kCAAkC,CAAC,CAAC;UAC7C,CAAC,MACI;YACD71B,MAAI,CAAC81B,qBAAqB,CAAC,CAAC;UAChC;QACJ,CAAC,CAAC;MACN,CAAC,MAAM;QACH,IAAI30B,QAAQ,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;QACzC,IAAI20B,OAAO,GAAG50B,QAAQ,CAACnK,eAAe,CAAC;QACvC,IAAIL,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;QAChD,IAAIC,cAAc,GAAGpxC,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;QACtD,IAAI,CAAC7V,UAAU,CAACuC,aAAa,CAAC0yC,OAAO,EAAEE,cAAc,CAAC,EAAE;UACpD,IAAI,CAACC,sBAAsB,CAAC,CAAC;QACjC;MACJ;IACJ;EAAC;IAAAj1C,GAAA;IAAAC,KAAA,EACD,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,IAAI,CAACjkC,WAAW,KAAKwjC,aAAa,EAAE;QACpC,MAAM,IAAIjlC,KAAK,CAAC,kEAAkE,CAAC;MACvF;IACJ;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAAi1C,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAACC,wBAAwB,CAAC,CAAC;MAC/B,IAAI,CAACC,sBAAsB,CAAC,CAAC;IACjC;EAAC;IAAAp1C,GAAA;IAAAC,KAAA,EACD,SAAAo1C,kBAAkBA,CAAA,EAAG;MAAA,IAAAn2B,MAAA;MACjB,IAAIo2B,cAAc,GAAGC,aAAa,GAAG,IAAI,GAAGC,cAAc;MAC1D,IAAIC,eAAe,GAAG9zC,QAAQ,CAACuE,aAAa,CAACovC,cAAc,CAAC;MAC5DG,eAAe,CAAClc,eAAe,CAAC,IAAI,CAAC;MACrC,IAAImc,SAAS,GAAGD,eAAe,CAACpwC,aAAa;MAC7C,IAAIswC,SAAS,GAAI/xC,GAAG,CAAC0E,gCAAgC,CAACotC,SAAS,CAAC,IAAI,MAAO;MAC3E,IAAIE,eAAe,GAAGj0C,QAAQ,CAACuE,aAAa,CAACqvC,aAAa,GAAG,OAAO,GAAGC,cAAc,GAAG,GAAG,GAAG7vC,kBAAkB,GAAG,OAAO,GAAG6vC,cAAc,CAAC;MAC5II,eAAe,CAAC3xC,YAAY,CAAC,IAAI,EAAEuxC,cAAc,CAAC;MAClD,IAAIG,SAAS,EAAEC,eAAe,CAACpuC,SAAS,CAACE,GAAG,CAACW,aAAa,CAAC;MAE3DqC,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEsqC,cAAc,EAAE,UAAClqC,KAAK,EAAEyqC,YAAY,EAAK;QACxElyC,WAAK,CAACuY,oCAAoC,CAAC;UAAE25B,YAAY,EAAZA;QAAa,CAAC,CAAC;QAC5DlyC,WAAK,CAACuY,oCAAoC,CAAA3S,yBAAA,KAAIssC,YAAY,CAACvxC,OAAO,EAAGuxC,YAAY,CAACvxC,OAAO,CAAE,CAAC;QAC5F,IAAIwxC,UAAU,GAAID,YAAY,CAACvxC,OAAO,CAACC,WAAW,CAAC,CAAC,IAAI,KAAK,GAAIsxC,YAAY,GAAGA,YAAY,CAACxwC,aAAa;QAC1G,IAAI0wC,UAAU,GAAGD,UAAU,CAACtuC,SAAS,CAACC,QAAQ,CAACY,aAAa,CAAC;QAC7D,IAAI0tC,UAAU,EAAE;UACZD,UAAU,CAACtuC,SAAS,CAACG,MAAM,CAACU,aAAa,CAAC;QAC9C,CAAC,MACI;UACDytC,UAAU,CAACtuC,SAAS,CAACE,GAAG,CAACW,aAAa,CAAC;QAC3C;QACA,OAAO6W,MAAI,CAAC82B,kBAAkB,CAAC5qC,KAAK,EAAEyqC,YAAY,CAAC;MACvD,CAAC,CAAC;MACF,IAAI7vC,MAAM,GAAGrE,QAAQ,CAACuE,aAAa,CAACovC,cAAc,CAAC;MACnD,IAAIW,mBAAmB,GAAGryC,GAAG,CAACgB,sBAAsB,CAACoB,MAAM,CAAC;MAC5DA,MAAM,CAAC/B,YAAY,CAACC,gBAAgB,EAAE+xC,mBAAmB,CAAC;MAC1DjwC,MAAM,CAAC/B,YAAY,CAACE,iBAAiB,EAAE8xC,mBAAmB,CAAC;IAC/D;EAAC;IAAAj2C,GAAA;IAAAC,KAAA,EACD,SAAAi2C,YAAYA,CAACC,UAAU,EAAmF;MAAA,IAAAt2B,MAAA;MAAA,IAAjFu2B,OAAO,GAAA5yC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEpF,MAAM,EAAK;QAAE,OAAO6Z,MAAI,CAACm2B,kBAAkB,CAAC5qC,KAAK,EAAEpF,MAAM,CAAC;MAAE,CAAC;MACpG,IAAIsvC,cAAc,GAAGC,aAAa,GAAG,IAAI,GAAGY,UAAU;MACtDzrC,MAAM,CAACM,kBAAkB,CAAC,QAAQ,EAAEsqC,cAAc,EAAEc,OAAO,CAAC;MAC5D,IAAIpwC,MAAM,GAAGrE,QAAQ,CAACuE,aAAa,CAACovC,cAAc,CAAC;MACnD,IAAIW,mBAAmB,GAAGryC,GAAG,CAACgB,sBAAsB,CAACoB,MAAM,CAAC;MAC5DA,MAAM,CAAC/B,YAAY,CAACC,gBAAgB,EAAE+xC,mBAAmB,CAAC;MAC1DjwC,MAAM,CAAC/B,YAAY,CAACE,iBAAiB,EAAE8xC,mBAAmB,CAAC;IAC/D;EAAC;IAAAj2C,GAAA;IAAAC,KAAA,EACD,SAAA+1C,kBAAkBA,CAAC5qC,KAAK,EAAEpF,MAAM,EAAE;MAC9B,IAAIya,aAAa,GAAG7c,GAAG,CAACmD,4BAA4B,CAACf,MAAM,CAAC;MAC5D,IAAI0P,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIsB,eAAe,GAAG51B,aAAa,IAAI7c,GAAG,CAACgE,yBAAyB,CAAC8N,WAAW,CAAC;MACjF,IAAI4gC,KAAK,GAAG30C,QAAQ,CAACuE,aAAa,CAACwa,WAAW,GAAG,QAAQ,CAAC;MAC1D,IAAI61B,IAAI,GAAGD,KAAK,CAAC10C,gBAAgB,CAAC,aAAa,CAAC;MAChD20C,IAAI,CAACxrC,OAAO,CAAC,UAACyrC,GAAG,EAAK;QAClB,IAAIH,eAAe,IAAI,CAACG,GAAG,CAAChvC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAEo5B,GAAG,CAAChvC,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;QACnG,IAAI,CAACi5B,eAAe,IAAIG,GAAG,CAAChvC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;UAC7Do5B,GAAG,CAAChvC,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;UACrC,IAAIq5B,WAAW,GAAGD,GAAG,CAAC50C,gBAAgB,CAAC,QAAQ,GAAGwF,SAAS,CAAC;UAC5DqvC,WAAW,CAAC1rC,OAAO,CAAC,UAAC2rC,UAAU,EAAK;YAChCA,UAAU,CAACz2C,KAAK,GAAG2D,GAAG,CAACuE,+BAA+B,CAACuuC,UAAU,CAAC;UACtE,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;MACF,IAAIL,eAAe,EAAE;QACjB;AACZ;AACA;AACA;AACA;QACYC,KAAK,CAAC7vC,SAAS,GAAG,wDAAwD,GAAG6vC,KAAK,CAAC7vC,SAAS;QAC5F,IAAI,CAAC6vC,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAEk5B,KAAK,CAAC9uC,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;MACxF,CAAC,MACI;QACD,IAAIu5B,YAAY,GAAGL,KAAK,CAACpwC,aAAa,CAAC,cAAc,CAAC;QACtD,IAAIywC,YAAY,IAAI,IAAI,EAAEA,YAAY,CAAChvC,MAAM,CAAC,CAAC;QAC/C,IAAI2uC,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAEk5B,KAAK,CAAC9uC,SAAS,CAACG,MAAM,CAACyV,eAAe,CAAC;QACtF,IAAIw5B,mBAAmB,GAAGN,KAAK,CAAC10C,gBAAgB,CAAC,GAAG,GAAGsJ,eAAe,CAAC;QACvE0rC,mBAAmB,CAAC7rC,OAAO,CAAC,UAAC8rC,kBAAkB,EAAK;UAChDA,kBAAkB,CAACrvC,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;QACxD,CAAC,CAAC;QACF,IAAI,CAACypC,eAAe,CAAC,CAAC;MAC1B;MACA,IAAI,CAACmC,oCAAoC,CAAC,CAAC;IAC/C;EAAC;IAAA92C,GAAA;IAAAC,KAAA,EACD,SAAA82C,sBAAsBA,CAAA,EAAG;MACrB,IAAI,CAACb,YAAY,CAACc,cAAc,CAAC;IACrC;EAAC;IAAAh3C,GAAA;IAAAC,KAAA,EACD,SAAAk1C,wBAAwBA,CAAA,EAAG;MAAA,IAAA3X,MAAA;MACvB9yB,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEisC,oBAAoB,EAAE,UAAC7rC,KAAK,EAAE4T,MAAM,EAAK;QACxE5T,KAAK,CAACC,eAAe,CAAC,CAAC;QACvBmyB,MAAI,CAACyX,sBAAsB,CAAC,CAAC;MACjC,CAAC,CAAC;IACN;EAAC;IAAAj1C,GAAA;IAAAC,KAAA,EACD,SAAAm1C,sBAAsBA,CAAA,EAAG;MACrB,IAAI,CAACc,YAAY,CAACgB,UAAU,CAAC;IACjC;EAAC;IAAAl3C,GAAA;IAAAC,KAAA,EACD,SAAAk3C,eAAeA,CAAA,EAAG;MACd,IAAI,CAACjB,YAAY,CAACkB,SAAS,CAAC;IAChC;EAAC;IAAAp3C,GAAA;IAAAC,KAAA,EACD,SAAAo3C,2BAA2BA,CAAA,EAAG;MAAA,IAAAlY,MAAA;MAC1B,IAAI,CAAC+W,YAAY,CAACoB,qBAAqB,EAAE,UAAClsC,KAAK,EAAEmsC,qBAAqB,EAAK;QACvEpY,MAAI,CAAC6W,kBAAkB,CAAC,CAAC;QACzB,IAAIv1B,aAAa,GAAG82B,qBAAqB,CAAC/vC,SAAS,CAACC,QAAQ,CAACL,SAAS,CAAC;QACvE,IAAIowC,iBAAiB,GAAG5zC,GAAG,CAACgB,sBAAsB,CAAC2yC,qBAAqB,CAAC;QACzEtjC,OAAO,CAACqI,GAAG,CAAC,0BAA0B,CAAC;QACvCrI,OAAO,CAACqI,GAAG,CAAC3Y,WAAK,CAACoY,eAAe,CAAC07B,cAAc,CAAC,CAAC;QAClD,IAAIC,kBAAkB,GAAG/zC,WAAK,CAACoY,eAAe,CAAC07B,cAAc,CAAC,CAACzxC,MAAM,CAAC,UAAA2xC,OAAO;UAAA,OAAIA,OAAO,CAACL,qBAAqB,CAAC,IAAIE,iBAAiB;QAAA,EAAC;QACrI,IAAII,cAAc,GAAGF,kBAAkB,CAACG,IAAI,CAAC,UAACrrC,CAAC,EAAE08B,CAAC;UAAA,OAAK18B,CAAC,CAAC9C,QAAQ,CAAC,CAACouC,aAAa,CAAC5O,CAAC,CAACx/B,QAAQ,CAAC,CAAC;QAAA,EAAC;QAC9F,IAAIquC,aAAa,GAAGp2C,QAAQ,CAACuE,aAAa,CAACqvC,aAAa,GAAG,IAAI,GAAGh+B,WAAW,CAAC;QAC9E,IAAIygC,iBAAiB,GAAGp0C,GAAG,CAAC0E,gCAAgC,CAACyvC,aAAa,CAAC;QAC3EA,aAAa,CAACtxC,SAAS,GAAG,EAAE;QAC5B,IAAIuD,UAAU,EAAEE,MAAM;QACtBA,MAAM,GAAGtG,GAAG,CAACmG,YAAY,CAAC,IAAI,CAAC;QAC/BguC,aAAa,CAACrpB,WAAW,CAACxkB,MAAM,CAAC;QACjC0tC,cAAc,CAAC7sC,OAAO,CAAC,UAAC4sC,OAAO,EAAK;UAChC3tC,UAAU,GAAGqT,eAAe,CAACi2B,2BAA2B,CAACqE,OAAO,EAAEK,iBAAiB,CAAC;UACpF9tC,MAAM,GAAGtG,GAAG,CAACmG,YAAY,CAACC,UAAU,CAAC;UACrC+tC,aAAa,CAACrpB,WAAW,CAACxkB,MAAM,CAAC;QACrC,CAAC,CAAC;QACF6tC,aAAa,CAACzS,aAAa,CAAC,IAAI2S,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAOx3B,aAAa;MACxB,CAAC,CAAC;IACN;EAAC;IAAAzgB,GAAA;IAAAC,KAAA,EACD,SAAAi4C,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAAChC,YAAY,CAACiC,aAAa,CAAC;IACpC;EAAC;IAAAn4C,GAAA;IAAAC,KAAA,EACD,SAAAm4C,oBAAoBA,CAAA,EAAG;MACnB,IAAI,CAAClC,YAAY,CAACmC,cAAc,CAAC;IACrC;IACA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAr4C,GAAA;IAAAC,KAAA,EASA,SAAAg1C,sBAAsBA,CAAA,EAAG;MACrB,IAAIv/B,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIz5B,WAAW,GAAG1X,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;MACnD/R,WAAK,CAACuY,oCAAoC,CAAC,wBAAwB,CAAC;MACpEvY,WAAK,CAACuY,oCAAoC,CAAC,aAAa,CAAC;MACzDvY,WAAK,CAACuY,oCAAoC,CAACxG,WAAW,CAAC;MACvD/R,WAAK,CAACuY,oCAAoC,CAAC,aAAa,CAAC;MACzDvY,WAAK,CAACuY,oCAAoC,CAACZ,WAAW,CAAC;MACvD,IAAI,CAAC+D,KAAK,CAAC,CAAC;MACZxM,GAAG,CAACkC,QAAQ,CAAC,IAAI,CAACvE,WAAW,CAAC6D,IAAI,EAAEiH,WAAW,CAAC;IACpD;EAAC;IAAAtb,GAAA;IAAAC,KAAA,EACD,SAAAq4C,wBAAwBA,CAACjlC,QAAQ,EAAE;MAC/B,IAAIklC,KAAK,GAAGvE,aAAa,CAACwE,YAAY,CAAC,CAAC;MACxC,IAAIC,SAAS,GAAGF,KAAK,CAACryC,aAAa,CAAC,OAAO,CAAC;MAC5CuyC,SAAS,CAAC72C,gBAAgB,CAAC,IAAI,CAAC,CAACmJ,OAAO,CAAC,UAASyrC,GAAG,EAAE;QAAEA,GAAG,CAAC7uC,MAAM,CAAC,CAAC;MAAE,CAAC,CAAC;MACzE,IAAI+wC,QAAQ,GAAGrlC,QAAQ,CAACtS,IAAI,CAAC43C,QAAQ,CAAC;MACtC,IAAI,CAAC94C,UAAU,CAACK,OAAO,CAACw4C,QAAQ,CAAC,IAAIA,QAAQ,CAACE,KAAK,CAAC,UAAApC,GAAG;QAAA,OAAIA,GAAG,CAACpqC,cAAc,CAAC,eAAe,CAAC;MAAA,EAAC,EAAE;QAC7FssC,QAAQ,GAAGA,QAAQ,CAACb,IAAI,CAAC,UAACrrC,CAAC,EAAE08B,CAAC;UAAA,OAAK18B,CAAC,CAACqsC,aAAa,GAAG3P,CAAC,CAAC2P,aAAa;QAAA,EAAC;MACzE;MACAH,QAAQ,CAAC3tC,OAAO,CAAC,IAAI,CAAC+tC,YAAY,CAACr3B,IAAI,CAAC,IAAI,CAAC,CAAC;MAC9C,IAAI,CAACkzB,eAAe,CAAC,CAAC;IAC1B;EAAC;IAAA30C,GAAA;IAAAC,KAAA,EAID,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,MAAM,IAAIhqC,KAAK,CAAC,iEAAiE,CAAC;IACtF;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAA+4C,2CAA2CA,CAAA,EAAG;MAAA,IAAA5Z,MAAA;MAC1C,IAAI,CAAC6V,sBAAsB,CAAC,CAAC,CACxBpmC,IAAI,CAAC,UAAA9N,IAAI,EAAI;QACV4C,WAAK,CAACuY,oCAAoC,CAAC,sBAAsB,EAAEnb,IAAI,CAAC;QACxEq+B,MAAI,CAACkZ,wBAAwB,CAACv3C,IAAI,CAAC;MACvC,CAAC,CAAC,SACI,CAAC,UAAAmT,KAAK;QAAA,OAAID,OAAO,CAACC,KAAK,CAAC,QAAQ,EAAEA,KAAK,CAAC;MAAA,EAAC;IACvD;EAAC;IAAAlU,GAAA;IAAAC,KAAA,EACD,SAAAy0C,uBAAuBA,CAAA,EAAG;MACtB,IAAI,CAAC90B,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACq5B,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAAC74B,2BAA2B,CAAC,KAAK,CAAC;IAC3C;EAAC;IAAApgB,GAAA;IAAAC,KAAA,EACD,SAAA40C,qBAAqBA,CAAA,EAAG;MAAA,IAAAlV,MAAA;MACpB,IAAIuZ,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC,IAAI,CAAC;MACxC,IAAID,OAAO,CAAC74C,MAAM,IAAI,CAAC,EAAE;QACrBid,YAAY,CAACH,IAAI,CAAC,oBAAoB,CAAC;QACvC;MACJ;MACA,IAAIi8B,WAAW,GAAGpF,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIp/B,OAAO,GAAG/R,GAAG,CAACgB,sBAAsB,CAACjD,QAAQ,CAACuE,aAAa,CAACmzC,iBAAiB,CAAC,CAAC;MACnF;AACR;AACA;AACA;AACA;AACA;MACQ,IAAI,CAACC,oBAAoB,CAACJ,OAAO,EAAEE,WAAW,EAAEzjC,OAAO,CAAC,CACnD9G,IAAI,CAAC,UAAA9N,IAAI,EAAI;QACV,IAAIA,IAAI,CAACw4C,UAAU,CAAC,IAAIC,WAAW,EAAE;UACjC,IAAIC,QAAQ,EAAE;YACV91C,WAAK,CAACuY,oCAAoC,CAAC,gBAAgB,CAAC;YAC5DvY,WAAK,CAACuY,oCAAoC,CAAC,gBAAgB,EAAEnb,IAAI,CAAC;UACtE;UACA4+B,MAAI,CAACsV,sBAAsB,CAAC,CAAC;QACjC,CAAC,MACI;UACDtxC,WAAK,CAACuY,oCAAoC,CAAC,SAAS,EAAEnb,IAAI,CAAC24C,WAAW,CAAC,CAAC;UACxEp8B,YAAY,CAACH,IAAI,CAACpc,IAAI,CAAC24C,WAAW,CAAC,CAAC;QACxC;MACJ,CAAC,CAAC,SACI,CAAC,UAAAxlC,KAAK;QAAA,OAAID,OAAO,CAACC,KAAK,CAAC,QAAQ,EAAEA,KAAK,CAAC;MAAA,EAAC;IACvD;EAAC;IAAAlU,GAAA;IAAAC,KAAA,EACD,SAAAk5C,eAAeA,CAAA,EAAoB;MAAA,IAAAQ,MAAA;MAAA,IAAnBC,SAAS,GAAAp2C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAC7B,IAAI01C,OAAO,GAAG,EAAE;MAChB,IAAIW,MAAM;MACVl4C,QAAQ,CAACC,gBAAgB,CAAC8e,WAAW,GAAG,eAAe,CAAC,CAAC3V,OAAO,CAAC,UAACyrC,GAAG,EAAK;QACtE,IAAIoD,SAAS,IAAI,CAACh2C,GAAG,CAACgE,yBAAyB,CAAC4uC,GAAG,CAAC,EAAE;QACtDqD,MAAM,GAAGF,MAAI,CAACG,UAAU,CAACtD,GAAG,CAAC;QAC7B0C,OAAO,CAAChpC,IAAI,CAAC2pC,MAAM,CAAC;MACxB,CAAC,CAAC;MACF,OAAOX,OAAO;IAClB;EAAC;IAAAl5C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,MAAM,IAAIznC,KAAK,CAAC,+DAA+D,CAAC;IACpF;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAA20C,kCAAkCA,CAAA,EAAG;MAAA,IAAAmF,OAAA;MACjC,IAAIb,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC,IAAI,CAAC;MACxC,IAAID,OAAO,CAAC74C,MAAM,IAAI,CAAC,EAAE;QACrBid,YAAY,CAACH,IAAI,CAAC,oBAAoB,CAAC;QACvC;MACJ;MACA,IAAIi8B,WAAW,GAAGpF,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIp/B,OAAO,GAAG/R,GAAG,CAACgB,sBAAsB,CAACjD,QAAQ,CAACuE,aAAa,CAACmzC,iBAAiB,CAAC,CAAC;MACnF,IAAI,CAACC,oBAAoB,CAACJ,OAAO,EAAEE,WAAW,EAAEzjC,OAAO,CAAC,CACnD9G,IAAI,CAAC,UAAA9N,IAAI,EAAI;QACV,IAAIA,IAAI,CAACw4C,UAAU,CAAC,IAAIC,WAAW,EAAE;UACjC,IAAIC,QAAQ,EAAE;YACV91C,WAAK,CAACuY,oCAAoC,CAAC,gBAAgB,CAAC;YAC5DvY,WAAK,CAACuY,oCAAoC,CAAC,gBAAgB,EAAEnb,IAAI,CAAC;UACtE;UACAg5C,OAAI,CAACzB,wBAAwB,CAACv3C,IAAI,CAAC;QACvC,CAAC,MACI;UACD4C,WAAK,CAACuY,oCAAoC,CAAC,SAAS,EAAEnb,IAAI,CAAC24C,WAAW,CAAC,CAAC;UACxEp8B,YAAY,CAACH,IAAI,CAACpc,IAAI,CAAC24C,WAAW,CAAC,CAAC;QACxC;MACJ,CAAC,CAAC,SACI,CAAC,UAAAxlC,KAAK;QAAA,OAAID,OAAO,CAACC,KAAK,CAAC,QAAQ,EAAEA,KAAK,CAAC;MAAA,EAAC;IACvD;EAAC;IAAAlU,GAAA;IAAAC,KAAA,EACD,SAAAg5C,kBAAkBA,CAAA,EAAG;MAAA,IAAAe,OAAA;MACjBtvC,MAAM,CAACC,sBAAsB,CAAC,GAAG,GAAGmV,aAAa,GAAG,GAAG,GAAGC,QAAQ,GAAG,GAAG,GAAGpD,UAAU,GAAG,UAAU,GAAGA,UAAU,EAAEzR,eAAe,EAAE,UAAC8T,MAAM,EAAK;QAC1IA,MAAM,CAAC7T,gBAAgB,CAAC,OAAO,EAAE,UAACC,KAAK,EAAK;UACxCA,KAAK,CAACC,eAAe,CAAC,CAAC;UACvB2T,MAAM,GAAG5T,KAAK,CAAC4U,MAAM;UACrB,IAAIhB,MAAM,CAACxX,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;UAChD48B,OAAI,CAAC/E,sBAAsB,CAAC,CAAC;QACjC,CAAC,CAAC;QACFj2B,MAAM,CAACxX,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;MACzC,CAAC,CAAC;IACN;EAAC;IAAApd,GAAA;IAAAC,KAAA,EACD,SAAAg6C,sBAAsBA,CAAC7uC,KAAK,EAAE4T,MAAM,EAAE;MAClC5T,KAAK,CAACC,eAAe,CAAC,CAAC;MACvB6uC,SAAS,CAACj2C,YAAY,CAAC,IAAI,CAACuM,WAAW,CAAC2pC,eAAe,EAAE,CAAC,CAAC,GAAGD,SAAS,CAAC/zC,YAAY,CAAC,IAAI,CAACqK,WAAW,CAAC2pC,eAAe,CAAC,CAAC;MACvH,IAAI7D,KAAK,GAAG30C,QAAQ,CAACuE,aAAa,CAACwa,WAAW,GAAG,QAAQ,CAAC;MAC1D,IAAI41B,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;MAC/C,IAAIo5B,GAAG,GAAG0D,SAAS,CAACvjB,SAAS,CAAC,IAAI,CAAC;MACnC6f,GAAG,CAAChvC,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MACrCsrC,GAAG,CAAC50C,gBAAgB,CAAC,GAAG,GAAGsJ,eAAe,CAAC,CAACH,OAAO,CAAC,UAASjH,OAAO,EAAE;QAClEA,OAAO,CAAC0D,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MAC7C,CAAC,CAAC;MACF,IAAIkvC,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC8e,WAAW,GAAG,eAAe,CAAC,CAACrgB,MAAM;MAC/Em2C,GAAG,CAACvyC,YAAY,CAAC,IAAI,CAACuM,WAAW,CAAC2pC,eAAe,EAAE,CAAC,CAAC,GAAGC,SAAS,CAAC;MAClE,IAAI,CAACC,gBAAgB,CAAC/D,KAAK,EAAEE,GAAG,CAAC;MACjCF,KAAK,CAACgE,OAAO,CAAC9D,GAAG,CAAC;MAClBF,KAAK,CAAC9tC,SAAS,GAAG,CAAC;MACnB,IAAI,CAACmsC,eAAe,CAAC,CAAC;MACtB,IAAI,CAAC4F,4BAA4B,CAACjE,KAAK,CAAC;IAC5C;EAAC;IAAAt2C,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE;MACzB,IAAI,IAAI,CAAChmC,WAAW,KAAKwjC,aAAa,EAAE;QACpC,MAAM,IAAIjlC,KAAK,CAAC,qEAAqE,CAAC;MAC1F;MACA;IACJ;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAA00C,eAAeA,CAAA,EAAG;MAAA,IAAA6F,OAAA;MACd,IAAI,IAAI,CAAChqC,WAAW,KAAKwjC,aAAa,EAAE;QACpC,MAAM,IAAIjlC,KAAK,CAAC,0CAA0C,CAAC;MAC/D;MACArE,MAAM,CAACC,sBAAsB,CAAC+V,WAAW,EAAExV,eAAe,EAAE,UAACqtC,KAAK,EAAK;QACnEiC,OAAI,CAACC,aAAa,CAAC,CAAC;MACxB,CAAC,CAAC;IACN;EAAC;IAAAz6C,GAAA;IAAAC,KAAA,EACD,SAAAw6C,aAAaA,CAAA,EAAG;MACZ,IAAIC,cAAc,GAAGh6B,WAAW,GAAG,YAAY,GAAGi6B,UAAU;MAC5D,IAAIC,YAAY,GAAGj5C,QAAQ,CAACuE,aAAa,CAACw0C,cAAc,CAAC;MACzD/2C,WAAK,CAACuY,oCAAoC,CAAC,kBAAkB,EAAE0+B,YAAY,CAAC;MAC5E,IAAIR,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC8e,WAAW,GAAG,eAAe,CAAC,CAACrgB,MAAM;MAC/E65C,SAAS,GAAGU,YAAY,CAACjkB,SAAS,CAAC,IAAI,CAAC;MACxCh1B,QAAQ,CAACC,gBAAgB,CAAC84C,cAAc,CAAC,CAAC3vC,OAAO,CAAC,UAASyrC,GAAG,EAAE;QAC5DA,GAAG,CAAC7uC,MAAM,CAAC,CAAC;MAChB,CAAC,CAAC;MACFuyC,SAAS,CAACj2C,YAAY,CAAC,IAAI,CAACuM,WAAW,CAAC2pC,eAAe,EAAE,CAAC,CAAC,GAAGC,SAAS,CAAC;IAC5E;EAAC;IAAAp6C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAI,IAAI,CAAC9lC,WAAW,KAAKwjC,aAAa,EAAE;QACpC,MAAM,IAAIjlC,KAAK,CAAC,sFAAsF,CAAC;MAC3G;IACJ;EAAC;IAAA/O,GAAA;IAAAC,KAAA,EACD,SAAA46C,kCAAkCA,CAACvE,KAAK,EAAEE,GAAG,EAAE;MAC3C;MACA;MACA,IAAIsE,mBAAmB,GAAGxE,KAAK,CAAC10C,gBAAgB,CAAC,mBAAmB,GAAGm5C,gBAAgB,GAAG,SAAS,GAAGC,UAAU,CAAC;MACjH,IAAIC,eAAe,GAAG,CAAC;MACvBH,mBAAmB,CAAC/vC,OAAO,CAAC,UAACmwC,MAAM,EAAK;QACpCD,eAAe,GAAG3a,IAAI,CAACyM,GAAG,CAACkO,eAAe,EAAEr6C,UAAU,CAACgD,GAAG,CAACgB,sBAAsB,CAACs2C,MAAM,CAAC,CAAC,CAAC;MAC/F,CAAC,CAAC;MACF,IAAIC,kBAAkB,GAAG3E,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG60C,gBAAgB,GAAG,IAAI,GAAGC,UAAU,CAAC;MACxFp3C,GAAG,CAACQ,kCAAkC,CAAC+2C,kBAAkB,EAAEF,eAAe,GAAG,CAAC,CAAC;IACnF;EAAC;IAAAj7C,GAAA;IAAAC,KAAA,EACD,SAAAm7C,8BAA8BA,CAAA,EAAG;MAC7B,IAAIC,oBAAoB,GAAG36B,WAAW,GAAG,eAAe,GAAGq6B,gBAAgB,GAAG,SAAS,GAAGC,UAAU,GAAG,GAAG,GAAGD,gBAAgB;MAC7H,IAAI,CAACO,6BAA6B,CAACD,oBAAoB,CAAC;IAC5D;EAAC;IAAAr7C,GAAA;IAAAC,KAAA,EACD,SAAAq7C,6BAA6BA,CAACC,aAAa,EAA8F;MAAA,IAAAC,OAAA;MAAA,IAA5FpF,OAAO,GAAA5yC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAE03C,OAAI,CAACC,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACnI4G,MAAM,CAACC,sBAAsB,CAAC4wC,aAAa,EAAErwC,eAAe,EAAE,UAACwwC,KAAK,EAAK;QACrEA,KAAK,CAACvwC,gBAAgB,CAAC,QAAQ,EAAE,UAACC,KAAK,EAAK;UACxCgrC,OAAO,CAAChrC,KAAK,EAAEswC,KAAK,CAAC;QACzB,CAAC,CAAC;QACFtF,OAAO,CAAC,IAAI,EAAEsF,KAAK,CAAC;MACxB,CAAC,CAAC;IACN;EAAC;IAAA17C,GAAA;IAAAC,KAAA,EACD,SAAAw7C,kCAAkCA,CAACrwC,KAAK,EAAEtH,OAAO,EAAE;MAC/C,IAAI63C,kBAAkB,GAAG,IAAI,CAACC,6BAA6B,CAAC93C,OAAO,CAAC;MACpE,IAAI+3C,eAAe,GAAG/3C,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACL,SAAS,CAAC;MAC3D,IAAI00C,cAAc,GAAGl4C,GAAG,CAACmD,4BAA4B,CAACjD,OAAO,CAAC;MAC9D;MACA;MACA;MACA,IAAIg4C,cAAc,IAAID,eAAe,EAAE;QACnC;QACA,IAAI,CAAC/E,oCAAoC,CAAC,CAAC;QAC3C,IAAI,CAACiF,2CAA2C,CAACj4C,OAAO,EAAEg4C,cAAc,EAAEH,kBAAkB,CAAC;MACjG;IACJ;EAAC;IAAA37C,GAAA;IAAAC,KAAA,EACD,SAAA27C,6BAA6BA,CAAC93C,OAAO,EAAE;MACnC,IAAIyyC,IAAI,GAAG,EAAE;MACb,IAAInxC,MAAM,GAAGtB,OAAO;MACpB,IAAImD,OAAO;MACX,OAAO7B,MAAM,EAAE;QACX,IAAIA,MAAM,CAACd,OAAO,CAACC,WAAW,CAAC,CAAC,IAAI,IAAI,EAAE;UACtC0C,OAAO,GAAG7B,MAAM,CAACoC,SAAS,CAACC,QAAQ,CAACL,SAAS,CAAC;UAC9CmvC,IAAI,CAACrmC,IAAI,CAACjJ,OAAO,CAAC;QACtB;QACA7B,MAAM,GAAGA,MAAM,CAACC,aAAa;MACjC;MACA,OAAOkxC,IAAI;IACf;EAAC;IAAAv2C,GAAA;IAAAC,KAAA,EACD,SAAA87C,2CAA2CA,CAACj4C,OAAO,EAAEg4C,cAAc,EAAEH,kBAAkB,EAAE;MACrF,IAAI97C,UAAU,CAACK,OAAO,CAACy7C,kBAAkB,CAAC,EAAE;MAC5C,IAAI9oB,EAAE,GAAGjvB,GAAG,CAACmB,iBAAiB,CAACjB,OAAO,CAAC;MACvC,IAAIk4C,UAAU,GAAGF,cAAc,IAAIl4C,GAAG,CAACgE,yBAAyB,CAACirB,EAAE,CAAC;MACpE,IAAIopB,WAAW,GAAGN,kBAAkB,CAACO,KAAK,CAAC,CAAC;MAC5Cv4C,WAAK,CAACuY,oCAAoC,CAAC;QAAC8/B,UAAU,EAAVA,UAAU;QAAEC,WAAW,EAAXA;MAAW,CAAC,CAAC;MACrE,IAAID,UAAU,IAAIC,WAAW,EAAE;QAC3Br4C,GAAG,CAACsD,kBAAkB,CAAC2rB,EAAE,EAAEmpB,UAAU,CAAC;QACtC,IAAI,CAAClF,oCAAoC,CAAC,CAAC;QAC3C,IAAI,CAACiF,2CAA2C,CAAClpB,EAAE,CAACxtB,aAAa,EAAE22C,UAAU,EAAEL,kBAAkB,CAAC;MACtG;IACJ;EAAC;IAAA37C,GAAA;IAAAC,KAAA,EACD,SAAAk8C,6CAA6CA,CAACZ,aAAa,EAExD;MAAA,IAAAa,OAAA;MAAA,IAF0DhG,OAAO,GAAA5yC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QACvF,IAAI,CAACA,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAEg/B,OAAI,CAACX,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAC7G,CAAC;MACG4G,MAAM,CAACM,kBAAkB,CAAC,QAAQ,EAAEuwC,aAAa,EAAEnF,OAAO,CAAC;IAC/D;EAAC;IAAAp2C,GAAA;IAAAC,KAAA,EACD,SAAAo8C,qBAAqBA,CAAA,EAAG;MACpB,IAAI,CAACf,6BAA6B,CAAC56B,WAAW,GAAG,qBAAqB,GAAG47B,QAAQ,GAAG,MAAM,GAAGA,QAAQ,CAAC;IAC1G;EAAC;IAAAt8C,GAAA;IAAAC,KAAA,EACD,SAAAs8C,qBAAqBA,CAAA,EAAG;MACpB,IAAI,CAACjB,6BAA6B,CAAC56B,WAAW,GAAG,qBAAqB,GAAGhX,QAAQ,GAAG,MAAM,GAAGA,QAAQ,CAAC;IAC1G;EAAC;IAAA1J,GAAA;IAAAC,KAAA,EACD,SAAAu8C,4BAA4BA,CAAA,EAAG;MAC3B,IAAI,CAAClB,6BAA6B,CAAC56B,WAAW,GAAG,qBAAqB,GAAG+7B,eAAe,GAAG,MAAM,GAAGA,eAAe,CAAC;IACxH;EAAC;IAAAz8C,GAAA;IAAAC,KAAA,EACD,SAAAy8C,sBAAsBA,CAAA,EAAG;MACrB,IAAI,CAACpB,6BAA6B,CAAC56B,WAAW,GAAG,qBAAqB,GAAGi8B,SAAS,GAAG,MAAM,GAAGA,SAAS,CAAC;IAC5G;EAAC;IAAA38C,GAAA;IAAAC,KAAA,EACD,SAAA28C,kBAAkBA,CAAA,EAA2G;MAAA,IAAAC,OAAA;MAAA,IAA1GC,SAAS,GAAAt5C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,EAAE;MAAA,IAAEu5C,iBAAiB,GAAAv5C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAE+4C,OAAI,CAAC5C,sBAAsB,CAAC7uC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACvH,IAAIk5C,cAAc,GAAG,kBAAkB,IAAIn9C,UAAU,CAACK,OAAO,CAAC48C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,SAAS,CAAC,GAAG,qBAAqB,GAAG50C,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGC,UAAU;MAC5K,IAAI+0C,oBAAoB,GAAGD,cAAc,GAAG,GAAG,GAAGj1C,UAAU;MAC5D,IAAIm1C,sBAAsB,GAAGF,cAAc,GAAG,QAAQ,GAAGj1C,UAAU,GAAG,GAAG;MACzEpE,WAAK,CAACuY,oCAAoC,CAAC,sBAAsB,EAAE+gC,oBAAoB,EAAEC,sBAAsB,CAAC;MAChH,IAAI,CAACC,sBAAsB,CAACF,oBAAoB,EAAEC,sBAAsB,CAAC;MACzE,IAAI,CAACE,wBAAwB,CAACH,oBAAoB,EAAEC,sBAAsB,CAAC;MAC3ExyC,MAAM,CAACM,kBAAkB,CACrB,OAAO,EACL,kBAAkB,IAAInL,UAAU,CAACK,OAAO,CAAC48C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,SAAS,CAAC,GAAG,qBAAqB,GAAG50C,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGC,UAAU,EACvJ,UAACkD,KAAK,EAAE4T,MAAM,EAAK;QAAE+9B,iBAAiB,CAAC3xC,KAAK,EAAE4T,MAAM,CAAC;MAAE,CAC7D,CAAC;IACL;EAAC;IAAAhf,GAAA;IAAAC,KAAA,EACD,SAAAk9C,sBAAsBA,CAACF,oBAAoB,EAAEC,sBAAsB,EAAoG;MAAA,IAAAG,OAAA;MAAA,IAAlGC,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAEu5C,OAAI,CAAC5B,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACjK4G,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEiyC,oBAAoB,EAAE,UAAC7xC,KAAK,EAAEtH,OAAO,EAAK;QACzEu5C,OAAI,CAACE,0BAA0B,CAACnyC,KAAK,EAAEtH,OAAO,EAAEm5C,oBAAoB,EAAEC,sBAAsB,EAAE,UAACM,WAAW,EAAEC,aAAa,EAAK;UAAEH,aAAa,CAACE,WAAW,EAAEC,aAAa,CAAC;QAAE,CAAC,CAAC;MACjL,CAAC,CAAC;IACN;EAAC;IAAAz9C,GAAA;IAAAC,KAAA,EACD,SAAAs9C,0BAA0BA,CAACnyC,KAAK,EAAEtH,OAAO,EAAEm5C,oBAAoB,EAAEC,sBAAsB,EAAoG;MAAA,IAAAQ,OAAA;MAAA,IAAlGJ,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAE45C,OAAI,CAACjC,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACrL,IAAIA,OAAO,CAACQ,OAAO,CAACC,WAAW,CAAC,CAAC,IAAI,KAAK,EAAET,OAAO,GAAGA,OAAO,CAACuB,aAAa;MAC3E,IAAIs4C,aAAa,GAAG/5C,GAAG,CAAC0E,gCAAgC,CAACxE,OAAO,CAAC;MACjE,IAAI85C,QAAQ,GAAG95C,OAAO,CAAC0D,SAAS,CAACC,QAAQ,CAACL,SAAS,CAAC;MACpD,IAAIovC,GAAG,GAAG5yC,GAAG,CAACmB,iBAAiB,CAACjB,OAAO,CAAC;MACxC,IAAI0yC,GAAG,CAAChvC,SAAS,CAACC,QAAQ,CAACkzC,UAAU,CAAC,IAAI,CAAC/2C,GAAG,CAACgE,yBAAyB,CAAC4uC,GAAG,CAAC,EAAE;QAC3EA,GAAG,CAAC3gB,UAAU,CAACmC,WAAW,CAACwe,GAAG,CAAC;MACnC,CAAC,MACI;QACD,IAAIqH,iBAAiB,GAAGl8C,QAAQ,CAACuE,aAAa,CAAC43C,2BAA2B,GAAG,IAAI,GAAG71C,UAAU,GAAG,GAAG,GAAGC,UAAU,GAAG,GAAG,GAAG61C,OAAO,CAAC;QAClI,IAAIC,SAAS,GAAGH,iBAAiB,CAAClnB,SAAS,CAAC,IAAI,CAAC;QACjD/yB,GAAG,CAACI,gCAAgC,CAACg6C,SAAS,EAAEL,aAAa,CAAC;QAC9D/5C,GAAG,CAACG,+BAA+B,CAACi6C,SAAS,EAAE,KAAK,CAAC;QACrD,IAAIJ,QAAQ,EAAEI,SAAS,CAACx2C,SAAS,CAACE,GAAG,CAACN,SAAS,CAAC;QAChDtD,OAAO,CAACm6C,WAAW,CAACD,SAAS,CAAC;QAC9BV,aAAa,CAAC,IAAI,EAAEU,SAAS,CAAC;QAC9B,IAAI,CAACZ,wBAAwB,CAACH,oBAAoB,EAAEC,sBAAsB,EAAE,UAACM,WAAW,EAAEC,aAAa,EAAK;UAAEH,aAAa,CAACE,WAAW,EAAEC,aAAa,CAAC;QAAE,CAAC,CAAC;MAC/J;MACA,IAAI,CAAC3G,oCAAoC,CAAC,CAAC;IAC/C;EAAC;IAAA92C,GAAA;IAAAC,KAAA,EACD,SAAAm9C,wBAAwBA,CAACH,oBAAoB,EAAEC,sBAAsB,EAAoG;MAAA,IAAAgB,OAAA;MAAA,IAAlGZ,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAEo6C,OAAI,CAACzC,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACnK4G,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEkyC,sBAAsB,EAAE,UAAC9xC,KAAK,EAAEtH,OAAO,EAAK;QAC3Eo6C,OAAI,CAACC,4BAA4B,CAAC/yC,KAAK,EAAEtH,OAAO,EAAEm5C,oBAAoB,EAAEC,sBAAsB,EAAE,UAACM,WAAW,EAAEC,aAAa,EAAK;UAAEH,aAAa,CAACE,WAAW,EAAEC,aAAa,CAAC;QAAE,CAAC,CAAC;MACnL,CAAC,CAAC;IACN;EAAC;IAAAz9C,GAAA;IAAAC,KAAA,EACD,SAAAk+C,4BAA4BA,CAAC/yC,KAAK,EAAEtH,OAAO,EAAEm5C,oBAAoB,EAAEC,sBAAsB,EAAoG;MAAA,IAAAkB,OAAA;MAAA,IAAlGd,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAEs6C,OAAI,CAAC3C,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MACvL,IAAIA,OAAO,CAACQ,OAAO,CAACC,WAAW,CAAC,CAAC,IAAI,KAAK,EAAET,OAAO,GAAGA,OAAO,CAACuB,aAAa;MAC3E,IAAIs4C,aAAa,GAAG/5C,GAAG,CAAC0E,gCAAgC,CAACxE,OAAO,CAAC;MACjE,IAAI85C,QAAQ,GAAGh6C,GAAG,CAACoD,cAAc,CAAClD,OAAO,CAAC;MAC1C,IAAIu6C,oBAAoB,GAAG18C,QAAQ,CAACuE,aAAa,CAAC43C,2BAA2B,GAAG,IAAI,GAAG71C,UAAU,GAAG,GAAG,GAAGC,UAAU,GAAG,GAAG,GAAGH,UAAU,CAAC;MACxI,IAAIu2C,YAAY,GAAGD,oBAAoB,CAAC1nB,SAAS,CAAC,IAAI,CAAC;MACvD/yB,GAAG,CAACI,gCAAgC,CAACs6C,YAAY,EAAEX,aAAa,CAAC;MACjE/5C,GAAG,CAACG,+BAA+B,CAACu6C,YAAY,EAAE,IAAI,CAAC;MACvD,IAAIV,QAAQ,EAAEU,YAAY,CAAC92C,SAAS,CAACE,GAAG,CAACN,SAAS,CAAC;MACnDtD,OAAO,CAACm6C,WAAW,CAACK,YAAY,CAAC;MACjChB,aAAa,CAAC,IAAI,EAAEgB,YAAY,CAAC;MACjC,IAAI,CAACnB,sBAAsB,CAACF,oBAAoB,EAAEC,sBAAsB,EAAE,UAACM,WAAW,EAAEC,aAAa,EAAK;QAAEH,aAAa,CAACE,WAAW,EAAEC,aAAa,CAAC;MAAE,CAAC,CAAC;MACzJ,IAAI,CAAC3G,oCAAoC,CAAC,CAAC;IAC/C;EAAC;IAAA92C,GAAA;IAAAC,KAAA,EACD,SAAAs+C,oBAAoBA,CAAA,EAAG;MACnB,IAAI,CAACC,0BAA0B,CAACC,eAAe,EAAE96C,WAAK,CAACoY,eAAe,CAAC2iC,YAAY,CAAC,CAAC;IACzF;EAAC;IAAA1+C,GAAA;IAAAC,KAAA,EACD,SAAAu+C,0BAA0BA,CACtBG,SAAS,EACPC,UAAU,EAId;MAAA,IAAAC,OAAA;MAAA,IAHIC,YAAY,GAAAt7C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAA,IACnBu7C,SAAS,GAAAv7C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAACw7C,WAAW,EAAK;QAAEH,OAAI,CAACvK,mBAAmB,CAAC0K,WAAW,CAAC;MAAE,CAAC;MAAA,IACvE1B,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAE+6C,OAAI,CAACpD,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MAElG,IAAIg7C,YAAY,IAAI,IAAI,EAAEA,YAAY,GAAGp+B,WAAW,GAAG,qBAAqB,GAAGi+B,SAAS;MACxFj0C,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAE8zC,YAAY,GAAG,OAAO,GAAGH,SAAS,EAAE,UAACvzC,KAAK,EAAEd,GAAG,EAAK;QACnFu0C,OAAI,CAACI,8BAA8B,CAC/B7zC,KAAK,EACHd,GAAG,EACHq0C,SAAS,EACTC,UAAU,EACVE,YAAY,EACZ,UAACE,WAAW,EAAK;UAAED,SAAS,CAC1BC,WAAW,EACT,UAAC5zC,KAAK,EAAEtH,OAAO,EAAK;YAAEw5C,aAAa,CAAClyC,KAAK,EAAEtH,OAAO,CAAC;UAAE,CAC3D,CAAC;QAAE,CACP,CAAC;MACL,CAAC,CAAC;MACFi7C,SAAS,CAACD,YAAY,GAAG,UAAU,GAAGH,SAAS,CAAC;IACpD;EAAC;IAAA3+C,GAAA;IAAAC,KAAA,EACD,SAAAq0C,mBAAmBA,CAAC0K,WAAW,EAAoG;MAAA,IAAAE,OAAA;MAAA,IAAlG5B,aAAa,GAAA95C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAAC4H,KAAK,EAAEtH,OAAO,EAAK;QAAEo7C,OAAI,CAACzD,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC;MAC7H,IAAI,CAACw3C,6BAA6B,CAAC0D,WAAW,EAAE,UAAC5zC,KAAK,EAAEtH,OAAO,EAAK;QAAEw5C,aAAa,CAAClyC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC,CAAC;IAC3G;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAAg/C,8BAA8BA,CAAC7zC,KAAK,EAAEd,GAAG,EAAEq0C,SAAS,EAAEQ,gBAAgB,EAAkG;MAAA,IAAAC,OAAA;MAAA,IAAhGN,YAAY,GAAAt7C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAA,IAAEu7C,SAAS,GAAAv7C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,UAACs7C,YAAY,EAAK;QAAEM,OAAI,CAAC9K,mBAAmB,CAACwK,YAAY,CAAC;MAAE,CAAC;MAClK,IAAIj/C,UAAU,CAACK,OAAO,CAAC4+C,YAAY,CAAC,EAAEA,YAAY,GAAGp+B,WAAW,GAAG,qBAAqB,GAAGi+B,SAAS;MACpG,IAAIU,UAAU,GAAGz7C,GAAG,CAACuE,+BAA+B,CAACmC,GAAG,CAAC;MACzD,IAAIg1C,EAAE,GAAG17C,GAAG,CAACiB,kBAAkB,CAACyF,GAAG,CAAC;MACpCg1C,EAAE,CAAC74C,SAAS,GAAG,EAAE;MACjB,IAAI84C,GAAG,GAAG59C,QAAQ,CAACwI,aAAa,CAAC,QAAQ,CAAC;MAC1Co1C,GAAG,CAAC/3C,SAAS,CAACE,GAAG,CAACi3C,SAAS,CAAC;MAC5B/6C,GAAG,CAACQ,kCAAkC,CAACm7C,GAAG,EAAEF,UAAU,CAAC;MACvD,IAAIr1C,UAAU,EAAEE,MAAM;MACtB,IAAIuvC,QAAQ,EAAE;QACV91C,WAAK,CAACuY,oCAAoC,CAAC,8BAA8B,CAAC;QAC1EvY,WAAK,CAACuY,oCAAoC,CAAC;UAACijC,gBAAgB,EAAhBA,gBAAgB;UAAEL,YAAY,EAAZA;QAAY,CAAC,CAAC;MAChF;MACA50C,MAAM,GAAGtG,GAAG,CAACmG,YAAY,CAAC,IAAI,CAAC;MAC/Bw1C,GAAG,CAAC7wB,WAAW,CAACxkB,MAAM,CAAC;MACvBi1C,gBAAgB,CAACp0C,OAAO,CAAC,UAACy0C,gBAAgB,EAAK;QAC3Cx1C,UAAU,GAAGqT,eAAe,CAACi2B,2BAA2B,CAACkM,gBAAgB,EAAEH,UAAU,CAAC;QACtFn1C,MAAM,GAAGtG,GAAG,CAACmG,YAAY,CAACC,UAAU,CAAC;QACrCu1C,GAAG,CAAC7wB,WAAW,CAACxkB,MAAM,CAAC;MAC3B,CAAC,CAAC;MACFo1C,EAAE,CAAC5wB,WAAW,CAAC6wB,GAAG,CAAC;MACnB,IAAIP,WAAW,GAAGF,YAAY,GAAG,UAAU,GAAGH,SAAS;MACvDI,SAAS,CAACC,WAAW,CAAC;IAC1B;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAh/C,GAAA;IAAAC,KAAA,EAOA,SAAAw/C,qBAAqBA,CAACC,UAAU,EAAEC,WAAW,EAAE;MAC3C,IAAI,CAACC,4BAA4B,CAACF,UAAU,EAAEC,WAAW,EAAEviC,eAAe,CAAC;IAC/E;EAAC;IAAApd,GAAA;IAAAC,KAAA,EACD,SAAA4/C,2BAA2BA,CAACH,UAAU,EAAEC,WAAW,EAAE;MACjD,IAAI,CAACC,4BAA4B,CAACF,UAAU,EAAEC,WAAW,EAAEviC,eAAe,CAAC;IAC/E;EAAC;IAAApd,GAAA;IAAAC,KAAA,EAED,SAAA6/C,2BAA2BA,CAAA,EAAiB;MAAA,IAAAC,OAAA;MAAA,IAAhBC,OAAO,GAAAx8C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MACtC,IAAIw8C,OAAO,IAAI,IAAI,EAAEA,OAAO,GAAGt/B,WAAW;MAC1C,IAAI,CAAC89B,0BAA0B,CAC3B5nC,mBAAmB,EACjBjT,WAAK,CAACoY,eAAe,CAACkkC,uBAAuB,CAAC,CAACpI,IAAI,CAAC,UAACrrC,CAAC,EAAE08B,CAAC;QAAA,OAAK18B,CAAC,CAAC9C,QAAQ,CAAC,CAACouC,aAAa,CAAC5O,CAAC,CAACx/B,QAAQ,CAAC,CAAC;MAAA,EAAC,EACrGs2C,OAAO,GAAG,qBAAqB,GAAGppC,mBAAmB,CAAC;MAAA,EACtD,UAACkoC,YAAY,EAAK;QAAEiB,OAAI,CAACG,yBAAyB,CAACpB,YAAY,CAAC;MAAE,CACxE,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAigD,yBAAyBA,CAAClB,WAAW,EAAE;MAAA,IAAAmB,OAAA;MACnC,IAAI,CAAC7E,6BAA6B,CAAC0D,WAAW,EAAE,UAAC5zC,KAAK,EAAEtH,OAAO,EAAK;QAAEq8C,OAAI,CAACC,8BAA8B,CAACh1C,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC,CAAC;IACjI;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAAmgD,8BAA8BA,CAACh1C,KAAK,EAAEi1C,WAAW,EAAE;MAC/C,IAAI7J,GAAG,GAAG5yC,GAAG,CAACmB,iBAAiB,CAACs7C,WAAW,CAAC;MAC5C,IAAIC,uBAAuB,GAAG,IAAI,CAACC,uBAAuB,CAAC/J,GAAG,CAAC,CAAC,CAAC;MACjE,IAAI,CAACiF,kCAAkC,CAACrwC,KAAK,EAAEi1C,WAAW,CAAC;MAC3D,IAAIG,uBAAuB,GAAG,IAAI,CAACD,uBAAuB,CAAC/J,GAAG,CAAC,CAAC,CAAC;MACjE,IACI8J,uBAAuB,IAAIE,uBAAuB,IAC/CA,uBAAuB,IAAI,CAAC,EACjC;MACFvsC,OAAO,CAACqI,GAAG,CAAC;QAAEkkC,uBAAuB,EAAvBA,uBAAuB;QAAEF,uBAAuB,EAAvBA;MAAwB,CAAC,CAAC;MACjE,IAAIG,uBAAuB,GAAG,IAAI,CAACC,0BAA0B,CAAC,CAAC;MAC/D,IAAIC,SAAS,GAAGnK,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGqR,WAAW,CAAC;MACtDopC,SAAS,CAACrb,aAAa,CAAC,IAAI2S,KAAK,CAAC,OAAO,CAAC,CAAC;MAC3C,IAAI2I,UAAU,GAAGpK,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGqR,WAAW,GAAG,UAAU,GAAGA,WAAW,CAAC;MAClFqpC,UAAU,CAACn6C,SAAS,GAAG,EAAE;MACzBm6C,UAAU,CAAClyB,WAAW,CAAC9qB,GAAG,CAACmG,YAAY,CAAC,IAAI,CAAC,CAAC;MAC9C,IAAIC,UAAU,EAAEE,MAAM;MACtB,IAAIwtC,kBAAkB,GAAG/zC,WAAK,CAACoY,eAAe,CAAC07B,cAAc,CAAC,CAACzxC,MAAM,CAAC,UAAA2xC,OAAO;QAAA,OACzE,CACIA,OAAO,CAACL,qBAAqB,CAAC,IAAIkJ,uBAAuB,IACtDA,uBAAuB,IAAI,CAAC,MAG5B7I,OAAO,CAACL,qBAAqB,CAAC,IAAImJ,uBAAuB,IACzDA,uBAAuB,IAAI,CAAC,CAClC;MAAA,CACL,CAAC;MACD,IAAI7I,cAAc,GAAGF,kBAAkB,CAACG,IAAI,CAAC,UAACrrC,CAAC,EAAE08B,CAAC;QAAA,OAAK18B,CAAC,CAAC9C,QAAQ,CAAC,CAACouC,aAAa,CAAC5O,CAAC,CAACx/B,QAAQ,CAAC,CAAC;MAAA,EAAC;MAC9FkuC,cAAc,CAAC7sC,OAAO,CAAC,UAAC4sC,OAAO,EAAK;QAChC3tC,UAAU,GAAGqT,eAAe,CAACi2B,2BAA2B,CAACqE,OAAO,CAAC;QACjEztC,MAAM,GAAGtG,GAAG,CAACmG,YAAY,CAACC,UAAU,CAAC;QACrC42C,UAAU,CAAClyB,WAAW,CAACxkB,MAAM,CAAC;MAClC,CAAC,CAAC;MACF,IAAI,CAACuxC,kCAAkC,CAACrwC,KAAK,EAAEw1C,UAAU,CAAC;IAC9D;EAAC;IAAA5gD,GAAA;IAAAC,KAAA,EACD,SAAA4gD,mBAAmBA,CAAA,EAAiB;MAAA,IAAAC,OAAA;MAAA,IAAhBd,OAAO,GAAAx8C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAC9B,IAAIw8C,OAAO,IAAI,IAAI,EAAEA,OAAO,GAAGt/B,WAAW;MAC1ChW,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAEg1C,OAAO,GAAG,qBAAqB,GAAGzoC,WAAW,GAAG,OAAO,GAAGA,WAAW,EAAE,UAACnM,KAAK,EAAEd,GAAG,EAAK;QACtH3G,WAAK,CAACuY,oCAAoC,CAAC5R,GAAG,CAAC;QAC/C,IAAIy2C,QAAQ,GAAGn9C,GAAG,CAACmB,iBAAiB,CAACuF,GAAG,CAAC;QACzC3G,WAAK,CAACuY,oCAAoC,CAAC;UAAE5R,GAAG,EAAHA,GAAG;UAAEy2C,QAAQ,EAARA;QAAS,CAAC,CAAC;QAC7D,IAAIC,iBAAiB,GAAGD,QAAQ,CAAC76C,aAAa,CAAC,KAAK,GAAG0Q,mBAAmB,CAAC;QAC3E,IAAIqqC,oBAAoB,GAAGH,OAAI,CAACP,uBAAuB,CAACQ,QAAQ,CAAC,CAAC,CAAC;QACnE,IAAIN,uBAAuB,GAAGK,OAAI,CAACJ,0BAA0B,CAAC,CAAC;QAC/D,IAAIQ,iBAAiB,GAAGv9C,WAAK,CAACoY,eAAe,CAAC07B,cAAc,CAAC;QAC7D,IAAIC,kBAAkB,GAAGwJ,iBAAiB,CAACl7C,MAAM,CAAC,UAAA2xC,OAAO;UAAA,OACrD,CACIA,OAAO,CAACL,qBAAqB,CAAC,IAAI2J,oBAAoB,IACnDA,oBAAoB,IAAI,CAAC,MAGzBtJ,OAAO,CAACL,qBAAqB,CAAC,IAAImJ,uBAAuB,IACzDA,uBAAuB,IAAI,CAAC,CAClC;QAAA,CACL,CAAC;QACD,IAAI7I,cAAc,GAAGF,kBAAkB,CAACG,IAAI,CAAC,UAACrrC,CAAC,EAAE08B,CAAC;UAAA,OAAK18B,CAAC,CAAC9C,QAAQ,CAAC,CAACouC,aAAa,CAAC5O,CAAC,CAACx/B,QAAQ,CAAC,CAAC;QAAA,EAAC;QAC9F/F,WAAK,CAACuY,oCAAoC,CAAC;UAAE8kC,iBAAiB,EAAjBA,iBAAiB;UAAEC,oBAAoB,EAApBA,oBAAoB;UAAER,uBAAuB,EAAvBA,uBAAuB;UAAES,iBAAiB,EAAjBA,iBAAiB;UAAExJ,kBAAkB,EAAlBA;QAAmB,CAAC,CAAC;QACvJ/zC,WAAK,CAACuY,oCAAoC,CAACglC,iBAAiB,CAAC;QAC7DJ,OAAI,CAAC7B,8BAA8B,CAC/B7zC,KAAK,EACHd,GAAG,EACHiN,WAAW,CAAC;QAAA,EACZqgC,cAAc,CAAC;QAAA,EACfoI,OAAO,GAAG,qBAAqB,GAAGzoC,WAAW,CAAC;QAAA,EAC9C,UAACunC,YAAY,EAAK;UAAEgC,OAAI,CAACxM,mBAAmB,CAC1CwK,YAAY,EACV,UAAC1zC,KAAK,EAAEtH,OAAO,EAAK;YAAEg9C,OAAI,CAACK,sBAAsB,CAAC/1C,KAAK,EAAEtH,OAAO,CAAC;UAAE,CACzE,CAAC;QAAE,CACP,CAAC;MACL,CAAC,CAAC;MACF,IAAI,CAACwwC,mBAAmB,CACpB0L,OAAO,GAAG,qBAAqB,GAAGzoC,WAAW,GAAG,UAAU,GAAGA,WAAW,EACtE,UAACnM,KAAK,EAAEtH,OAAO,EAAK;QAAEg9C,OAAI,CAACK,sBAAsB,CAAC/1C,KAAK,EAAEtH,OAAO,CAAC;MAAE,CACzE,CAAC;IACL;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAAkhD,sBAAsBA,CAAC/1C,KAAK,EAAEw1C,UAAU,EAAE;MACtC;MACA,IAAIpK,GAAG,GAAG5yC,GAAG,CAACmB,iBAAiB,CAAC67C,UAAU,CAAC;MAC3C,IAAI,CAACnF,kCAAkC,CAACrwC,KAAK,EAAEw1C,UAAU,CAAC;MAC1D,IAAIN,uBAAuB,GAAG,IAAI,CAACC,uBAAuB,CAAC/J,GAAG,CAAC;MAC/D,IAAI4K,YAAY,GAAG,IAAI,CAACC,eAAe,CAAC7K,GAAG,CAAC;MAC5C,IAAI8K,UAAU,GAAG7J,cAAc,CAAC2J,YAAY,CAAC;MAC7C;MACA,IAAIE,UAAU,IAAI,IAAI,IAAIhB,uBAAuB,IAAIgB,UAAU,CAAChK,qBAAqB,CAAC,EAAE;MACxF,IAAIiK,kBAAkB,GAAG/K,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG0Q,mBAAmB,GAAG,MAAM,CAAC;MAChF,IAAI2qC,kBAAkB,EAAEA,kBAAkB,CAACjc,aAAa,CAAC,IAAI2S,KAAK,CAAC,OAAO,CAAC,CAAC;MAC5E,IAAIuJ,kBAAkB,GAAGhL,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG0Q,mBAAmB,GAAG,UAAU,GAAGA,mBAAmB,CAAC;MAC1GhT,GAAG,CAACS,sBAAsB,CAACm9C,kBAAkB,EAAEF,UAAU,CAAChK,qBAAqB,CAAC,CAAC;MACjF;MACA,IAAI,CAACmE,kCAAkC,CAACrwC,KAAK,EAAEo2C,kBAAkB,CAAC;IACtE;EAAC;IAAAxhD,GAAA;IAAAC,KAAA,EACD,SAAAsgD,uBAAuBA,CAAC1tB,EAAE,EAAE;MACxB,IAAI4uB,sBAAsB,GAAG5uB,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAG0Q,mBAAmB,GAAG,IAAI,GAAGA,mBAAmB,CAAC;MACvG,OAAOhT,GAAG,CAACuE,+BAA+B,CAACs5C,sBAAsB,CAAC;IACtE;EAAC;IAAAzhD,GAAA;IAAAC,KAAA,EACD,SAAAygD,0BAA0BA,CAAA,EAAG;MACzB,IAAIhrC,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIyC,iBAAiB,GAAG,CAAC;MACzB,IAAI9hC,WAAW,IAAI,IAAI,EAAE,OAAO8hC,iBAAiB;MACjD,IAAIkK,qBAAqB,GAAGhsC,WAAW,CAACxP,aAAa,CAAC,GAAG,GAAGoxC,qBAAqB,CAAC;MAClF,IAAIqK,aAAa,GAAGjsC,WAAW,CAACxP,aAAa,CAAC,GAAG,GAAGiyC,aAAa,CAAC;MAClE,IAAIyJ,iCAAiC,GAAGh+C,GAAG,CAACuE,+BAA+B,CAACu5C,qBAAqB,CAAC;MAClG/9C,WAAK,CAACuY,oCAAoC,CAAC;QAAE0lC,iCAAiC,EAAjCA;MAAkC,CAAC,CAAC;MACjF,IAAIA,iCAAiC,IAAI,EAAE,EAAE;QACzC,IAAIC,yBAAyB,GAAGj+C,GAAG,CAACuE,+BAA+B,CAACw5C,aAAa,CAAC;QAClFh+C,WAAK,CAACuY,oCAAoC,CAAC;UAAE2lC,yBAAyB,EAAzBA;QAA0B,CAAC,CAAC;QACzE,IAAIA,yBAAyB,IAAI,EAAE,EAAE;UACjC,IAAIlK,OAAO,GAAGF,cAAc,CAACoK,yBAAyB,CAAC;UACvDrK,iBAAiB,GAAGG,OAAO,CAACL,qBAAqB,CAAC;QACtD;MACJ,CAAC,MAAM;QACHE,iBAAiB,GAAG5kC,MAAM,CAACgvC,iCAAiC,CAAC;MACjE;MACA,OAAOpK,iBAAiB;IAC5B;EAAC;IAAAx3C,GAAA;IAAAC,KAAA,EACD,SAAA6hD,2BAA2BA,CAAA,EAAG;MAC1B,IAAIrB,uBAAuB,GAAG,IAAI,CAACC,0BAA0B,CAAC,CAAC;MAC/D,OAAO,EAAE7gD,UAAU,CAACK,OAAO,CAACugD,uBAAuB,CAAC,IAAIA,uBAAuB,IAAI,CAAC,CAAC;IACzF;EAAC;IAAAzgD,GAAA;IAAAC,KAAA,EACD,SAAAohD,eAAeA,CAACxuB,EAAE,EAAE;MAChB,IAAIkvB,cAAc,GAAGlvB,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAGqR,WAAW,GAAG,IAAI,GAAGA,WAAW,CAAC;MAC/E,OAAO3T,GAAG,CAACuE,+BAA+B,CAAC45C,cAAc,CAAC;IAC9D;EAAC;IAAA/hD,GAAA;IAAAC,KAAA,EACD,SAAA+hD,kBAAkBA,CAAA,EAAG;MACjB,IAAItsC,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAI4M,aAAa,GAAGjsC,WAAW,CAACxP,aAAa,CAAC,GAAG,GAAGiyC,aAAa,CAAC;MAClE,IAAI0J,yBAAyB,GAAGj+C,GAAG,CAACuE,+BAA+B,CAACw5C,aAAa,CAAC;MAClF,IAAIM,SAAS,GAAGrvC,MAAM,CAACivC,yBAAyB,CAAC;MACjD,OAAOI,SAAS;IACpB;EAAC;IAAAjiD,GAAA;IAAAC,KAAA,EACD,SAAAiiD,mBAAmBA,CAAA,EAAG;MAClB,IAAIC,eAAe,GAAG,IAAI,CAACH,kBAAkB,CAAC,CAAC;MAC/C,OAAO,EAAEniD,UAAU,CAACK,OAAO,CAACiiD,eAAe,CAAC,IAAIA,eAAe,IAAI,CAAC,CAAC;IACzE;EAAC;IAAAniD,GAAA;IAAAC,KAAA,EACD,SAAAmiD,eAAeA,CAAA,EAAG;MACd,IAAI,CAAC5D,0BAA0B,CAAC6D,OAAO,EAAE1+C,WAAK,CAACoY,eAAe,CAACumC,UAAU,CAAC,CAAC;IAC/E;EAAC;IAAAtiD,GAAA;IAAAC,KAAA,EACD,SAAAsiD,WAAWA,CAAC1vB,EAAE,EAAE;MACZ,IAAI2vB,UAAU,GAAG3vB,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAGm8C,OAAO,GAAG,IAAI,GAAGA,OAAO,CAAC;MACnE,OAAOz+C,GAAG,CAACuE,+BAA+B,CAACq6C,UAAU,CAAC;IAC1D;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAZI;IAAAxiD,GAAA;IAAAC,KAAA,EAaA,SAAAof,KAAKA,CAAA,EAAG;MACJ,IAAI,IAAI,CAAC7O,WAAW,KAAKwjC,aAAa,EAAE;QACpC,MAAM,IAAIjlC,KAAK,CAAC,gCAAgC,CAAC;MACrD;MACAgS,uBAAA,CAAAizB,aAAA;MACA,IAAIt+B,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAI70B,QAAQ,GAAG,CAAC,CAAC;MACjBA,QAAQ,CAACnK,eAAe,CAAC,GAAGnS,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;MAC7D,IAAI,CAACuK,mBAAmB,CAACC,QAAQ,CAAC;IACtC;EAAC;IAAAlgB,GAAA;IAAAC,KAAA,EAED,SAAA2/C,4BAA4BA,CAAC6C,UAAU,EAAEC,cAAc,EAAEC,aAAa,EAAE;MACpE,IAAIpK,KAAK,GAAGvE,aAAa,CAACwE,YAAY,CAAC,CAAC;MACxC,IAAIoK,QAAQ,GAAGrK,KAAK,CAACryC,aAAa,CAAC,KAAK,GAAGu8C,UAAU,CAAC;MACtD,IAAII,eAAe,GAAGD,QAAQ,CAACp7C,SAAS,CAACC,QAAQ,CAACk7C,aAAa,CAAC;MAChE,IAAID,cAAc,IAAIG,eAAe,EAAE;MACvCj/C,GAAG,CAACuD,6BAA6B,CAACy7C,QAAQ,EAAEF,cAAc,EAAEC,aAAa,CAAC;IAC9E;EAAC;IAAA3iD,GAAA;IAAAC,KAAA,EACD,SAAA6iD,kCAAkCA,CAACL,UAAU,EAAEC,cAAc,EAAEC,aAAa,EAAE;MAC1E,IAAIpK,KAAK,GAAGvE,aAAa,CAACwE,YAAY,CAAC,CAAC;MACxC,IAAIoK,QAAQ,GAAGrK,KAAK,CAACryC,aAAa,CAAC,KAAK,GAAGu8C,UAAU,CAAC;MACtD7+C,GAAG,CAACuD,6BAA6B,CAACy7C,QAAQ,EAAEF,cAAc,EAAEC,aAAa,CAAC;IAC9E;EAAC;IAAA3iD,GAAA;IAAAC,KAAA,EAED,SAAA62C,oCAAoCA,CAAA,EAAG;MACnC,IAAIoC,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC,IAAI,CAAC;MACxC,IAAI4J,gBAAgB,GAAG7J,OAAO,CAAC74C,MAAM,GAAG,CAAC;MAEzC,IAAIqV,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;MAChD,IAAIsB,eAAe,GAAGzyC,GAAG,CAACgE,yBAAyB,CAAC8N,WAAW,CAAC;MAEhEzB,OAAO,CAACqI,GAAG,CAAC;QAAE48B,OAAO,EAAPA,OAAO;QAAE6J,gBAAgB,EAAhBA,gBAAgB;QAAErtC,WAAW,EAAXA,WAAW;QAAE2gC,eAAe,EAAfA;MAAgB,CAAC,CAAC;MAExE,IAAI,CAACj2B,2BAA2B,CAAC2iC,gBAAgB,IAAI,CAAC1M,eAAe,CAAC;IAC1E;EAAC;IAAAr2C,GAAA;IAAAC,KAAA,EA5jBD,SAAO80C,cAAcA,CAAA,EAAG;MACpB,OAAOpzC,QAAQ,CAACuE,aAAa,CAACqvC,aAAa,CAAC;IAChD;EAAC;IAAAv1C,GAAA;IAAAC,KAAA,EAuBD,SAAOu4C,YAAYA,CAAA,EAAG;MAClB,OAAO72C,QAAQ,CAACuE,aAAa,CAACwa,WAAW,CAAC;IAC9C;EAAC;AAAA,EA3MsCnD,QAAQ;;;;;;;;;ACZV;AACa;AACL;AACjD;AAC+B;AACc;AACA;AAAA,IAExBylC,YAAY;EAC7B,SAAAA,aAAYC,WAAW,EAAE;IAAAnjD,oBAAA,OAAAkjD,YAAA;IACrB,IAAI,CAACl8C,IAAI,GAAGm8C,WAAW;EAC3B;EAAC,OAAAljD,iBAAA,CAAAijD,YAAA;IAAAhjD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACTha,KAAK,CAACuY,oCAAoC,CAAC,uBAAuB,EAAE,IAAI,CAACpV,IAAI,CAACuN,IAAI,CAAC;MACnF,IAAI,CAACogC,aAAa,CAAC,CAAC;MACpB,IAAI,CAACyO,qBAAqB,CAAC,CAAC;IAChC;EAAC;IAAAljD,GAAA;IAAAC,KAAA,EACD,SAAAw0C,aAAaA,CAAA,EAAG,CAChB;EAAC;IAAAz0C,GAAA;IAAAC,KAAA,EACD,SAAAijD,qBAAqBA,CAAA,EAAG,CAExB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAzBI;IAAAljD,GAAA;IAAAC,KAAA,EA2BA,SAAAof,KAAKA,CAAA,EAAG,CAAC;EAAC;AAAA;;;;;;;;;;;;;;;;;;;ACnD2B;AACa;AACL;AACjD;AAC+B;AACc;AACP;AACC;AAAA,IAElB8jC,iBAAiB,0BAAAC,aAAA;EAClC,SAAAD,kBAAYF,WAAW,EAAE;IAAAnjD,0BAAA,OAAAqjD,iBAAA;IAAA,OAAAtiC,qBAAA,OAAAsiC,iBAAA,GACfF,WAAW;EACrB;EAACniC,oBAAA,CAAAqiC,iBAAA,EAAAC,aAAA;EAAA,OAAArjD,uBAAA,CAAAojD,iBAAA;IAAAnjD,GAAA;IAAAC,KAAA,EACD,SAAA0d,UAAUA,CAAA,EAAG;MACToD,wBAAA,CAAAoiC,iBAAA;MACA,IAAI,CAAC1O,aAAa,CAAC,CAAC;MACpB,IAAI,CAAC4O,WAAW,CAAC,CAAC;IACtB;EAAC;IAAArjD,GAAA;IAAAC,KAAA,EACD,SAAAw0C,aAAaA,CAAA,EAAG;MACZ;IAAA;EACH;IAAAz0C,GAAA;IAAAC,KAAA,EACD,SAAAojD,WAAWA,CAAA,EAAG;MACV;IAAA;EACH;IAAArjD,GAAA;IAAAC,KAAA,EACD,SAAAqjD,oBAAoBA,CAAA,EAAG;MACnB,IAAI,CAACx8C,IAAI,CAAC03C,0BAA0B,CAChC3lC,YAAY,EACVlV,WAAK,CAACoY,eAAe,CAACwnC,eAAe,CAAC,CAAC;MAC7C,CAAC;IACL;EAAC;AAAA,EApB0CP,YAAY;;;;;;;;;;;;;;;;;;;;ACT5B;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5BQ,wBAAwB,0BAAAC,cAAA;EAKzC,SAAAD,yBAAYhmC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,iCAAA,OAAA0jD,wBAAA;IAChBtlC,KAAA,GAAA2C,4BAAA,OAAA2iC,wBAAA,GAAMhmC,MAAM;IAAEjU,iCAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACiE,qBAAqB;IAI5CoH,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,2BAAA,CAAA0iC,wBAAA,EAAAC,cAAA;EAAA,OAAA1jD,8BAAA,CAAAyjD,wBAAA;IAAAxjD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACG,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ7yC,WAAK,CAACuY,oCAAoC,CAAC;QAAEs6B,GAAG,EAAHA;MAAI,CAAC,CAAC;MACnD,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAImN,SAAS,GAAGnN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGo2C,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIsH,SAAS,GAAGpN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGwD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIm6C,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E+L,OAAO,CAACqI,GAAG,CAAC,WAAW,CAAC;MACxBrI,OAAO,CAACqI,GAAG,CAACqnC,SAAS,CAAC;MAEtB,IAAIG,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAACxM,qBAAqB,CAAC,GAAGd,GAAG,CAACrwC,YAAY,CAACmxC,qBAAqB,CAAC;MACxEwM,OAAO,CAACxH,QAAQ,CAAC,GAAG14C,GAAG,CAACuE,+BAA+B,CAACw7C,SAAS,CAAC;MAClEG,OAAO,CAACp6C,QAAQ,CAAC,GAAG9F,GAAG,CAACuE,+BAA+B,CAACy7C,SAAS,CAAC;MAClEE,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC;IAAA;EACH;IAAAt2C,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,+BAAA,CAAAyiC,wBAAA;MACA,IAAI,CAACnH,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACE,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACK,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,+BAAA,CAAAyiC,wBAAA;IACJ;EAAC;AAAA,EAxDiDxP,aAAa;AAAAzqC,iCAAA,CAA9Ci6C,wBAAwB,UAC3BO,4BAA4B;AAAAx6C,iCAAA,CADzBi6C,wBAAwB,qBAEhBlM,qBAAqB;;;;;;;;;;;;;;;;;;;;ACXnB;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5B0M,eAAe,0BAAAP,cAAA;EAKhC,SAAAO,gBAAYxmC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,uBAAA,OAAAkkD,eAAA;IAChB9lC,KAAA,GAAA2C,kBAAA,OAAAmjC,eAAA,GAAMxmC,MAAM;IAAEjU,uBAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAAC4E,YAAY;IAInCyG,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,iBAAA,CAAAkjC,eAAA,EAAAP,cAAA;EAAA,OAAA1jD,oBAAA,CAAAikD,eAAA;IAAAhkD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACmC,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAAChC,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EACD,SAAAo3C,2BAA2BA,CAAA,EAAG;MAC1B,IAAI,CAACnB,YAAY,CAACoB,qBAAqB,CAAC;IAC5C;EAAC;IAAAt3C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAIoN,SAAS,GAAGpN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGwD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIu6C,iCAAiC,GAAGzN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGg+C,gCAAgC,GAAG,IAAI,GAAGA,gCAAgC,CAAC;MAC7I,IAAIC,kBAAkB,GAAG3N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGk+C,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;MAChG,IAAIC,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;MACxE,IAAIkH,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;;MAE5E;AACR;AACA;AACA;;MAEQ,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAAC3L,aAAa,CAAC,GAAG3B,GAAG,CAACrwC,YAAY,CAACgyC,aAAa,CAAC;MACxD2L,OAAO,CAACxM,qBAAqB,CAAC,GAAG,IAAI,CAACiJ,uBAAuB,CAAC/J,GAAG,CAAC;MAClEsN,OAAO,CAACp6C,QAAQ,CAAC,GAAG9F,GAAG,CAACuE,+BAA+B,CAACy7C,SAAS,CAAC;MAClEE,OAAO,CAACI,gCAAgC,CAAC,GAAGtgD,GAAG,CAACuE,+BAA+B,CAAC87C,iCAAiC,CAAC;MAClHH,OAAO,CAACM,iBAAiB,CAAC,GAAIxgD,GAAG,CAACuE,+BAA+B,CAACg8C,kBAAkB,CAAC,IAAI,MAAO;MAChGL,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGnC,OAAO,GAAG,OAAO,GAAGA,OAAO,EACjC,MAAM,GAAGzrC,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EAC5D,MAAM,GAAGW,WAAW,GAAG,OAAO,GAAGA,WAAW,CACjD,CAAC0oB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,qBAAA,CAAAijC,eAAA;MACA,IAAI,CAAClE,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACvD,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACoI,2CAA2C,CAAC,CAAC;MAClD,IAAI,CAACC,yBAAyB,CAAC,CAAC;MAChC,IAAI,CAAClI,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAA6/C,2BAA2BA,CAAA,EAAG;MAC1B,IAAI,CAACtB,0BAA0B,CAC3B5nC,mBAAmB,EACjBjT,WAAK,CAACoY,eAAe,CAACkkC,uBAAuB,CACnD,CAAC;IACL;EAAC;IAAAjgD,GAAA;IAAAC,KAAA,EACD,SAAA0kD,2CAA2CA,CAAA,EAAG;MAC1C,IAAI,CAACrJ,6BAA6B,CAAC56B,WAAW,GAAG,MAAM,GAAGwjC,gCAAgC,GAAG,IAAI,GAAGA,gCAAgC,CAAC;IACzI;EAAC;IAAAlkD,GAAA;IAAAC,KAAA,EACD,SAAA2kD,yBAAyBA,CAAA,EAAG;MACxB,IAAI,CAACtJ,6BAA6B,CAAC56B,WAAW,GAAG,MAAM,GAAG0jC,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;IAC3G;EAAC;IAAApkD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,qBAAA,CAAAijC,eAAA;IACJ;EAAC;AAAA,EA1FwChQ,aAAa;AAAAzqC,uBAAA,CAArCy6C,eAAe,UAClBa,mBAAmB;AAAAt7C,uBAAA,CADhBy6C,eAAe,qBAEP7L,aAAa;;;;;;;;;;;;;;;;;;;;ACXX;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5B2M,sBAAsB,0BAAArB,cAAA;EAKvC,SAAAqB,uBAAYtnC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,gCAAA,OAAAglD,sBAAA;IAChB5mC,KAAA,GAAA2C,2BAAA,OAAAikC,sBAAA,GAAMtnC,MAAM;IAAEjU,gCAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACuF,mBAAmB;IAI1C8F,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,0BAAA,CAAAgkC,sBAAA,EAAArB,cAAA;EAAA,OAAA1jD,6BAAA,CAAA+kD,sBAAA;IAAA9kD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACiC,eAAe,CAAC,CAAC;MACtB,IAAI,CAACE,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACa,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAAC7C,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAIuO,0BAA0B,GAAGvO,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG8+C,yBAAyB,GAAG,WAAW,CAAC;MACnG,IAAIX,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,WAAW,CAAC;MACnE,IAAIkH,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAACmB,oBAAoB,CAAC,GAAGzO,GAAG,CAACrwC,YAAY,CAAC8+C,oBAAoB,CAAC;MACtEnB,OAAO,CAAC1M,SAAS,CAAC,GAAG,IAAI,CAACmL,WAAW,CAAC/L,GAAG,CAAC;MAC1CsN,OAAO,CAAC3L,aAAa,CAAC,GAAG,IAAI,CAACkJ,eAAe,CAAC7K,GAAG,CAAC;MAClDsN,OAAO,CAACkB,yBAAyB,CAAC,GAAGphD,GAAG,CAACuE,+BAA+B,CAAC48C,0BAA0B,CAAC;MACpGjB,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGnC,OAAO,GAAG,OAAO,GAAGA,OAAO,EACjC,MAAM,GAAGzrC,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EAC5D,MAAM,GAAGW,WAAW,GAAG,OAAO,GAAGA,WAAW,CACjD,CAAC0oB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,8BAAA,CAAA+jC,sBAAA;MACA,IAAI,CAAC1C,eAAe,CAAC,CAAC;MACtB,IAAI,CAACtC,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACe,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACqE,oCAAoC,CAAC,CAAC;MAC3C,IAAI,CAACxI,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAAilD,oCAAoCA,CAAA,EAAG;MACnC,IAAI,CAAC5J,6BAA6B,CAAC56B,WAAW,GAAG,MAAM,GAAGskC,yBAAyB,GAAG,IAAI,GAAGA,yBAAyB,CAAC;IAC3H;EAAC;IAAAhlD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,8BAAA,CAAA+jC,sBAAA;IACJ;EAAC;AAAA,EAxE+C9Q,aAAa;AAAAzqC,gCAAA,CAA5Cu7C,sBAAsB,UACzBK,0BAA0B;AAAA57C,gCAAA,CADvBu7C,sBAAsB,qBAEdG,oBAAoB;;;;;;;;;;;;;;;;;;;;ACXlB;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5BG,gBAAgB,0BAAA3B,cAAA;EAKjC,SAAA2B,iBAAY5nC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,wBAAA,OAAAslD,gBAAA;IAChBlnC,KAAA,GAAA2C,mBAAA,OAAAukC,gBAAA,GAAM5nC,MAAM;IAAEjU,wBAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACkG,aAAa;IAIpCmF,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,kBAAA,CAAAskC,gBAAA,EAAA3B,cAAA;EAAA,OAAA1jD,qBAAA,CAAAqlD,gBAAA;IAAAplD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACG,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAIoN,SAAS,GAAGpN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGwD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIm6C,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAACzL,cAAc,CAAC,GAAG7B,GAAG,CAACrwC,YAAY,CAACkyC,cAAc,CAAC;MAC1DyL,OAAO,CAACuB,kBAAkB,CAAC,GAAG,IAAI,CAACC,sBAAsB,CAAC9O,GAAG,CAAC;MAC9DsN,OAAO,CAACp6C,QAAQ,CAAC,GAAG9F,GAAG,CAACuE,+BAA+B,CAACy7C,SAAS,CAAC;MAClEE,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MAEjEkM,OAAO,CAACqI,GAAG,CAAC,SAAS,CAAC;MACtBrI,OAAO,CAACqI,GAAG,CAACwnC,OAAO,CAAC;MAEpB,OAAOA,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAqlD,sBAAsBA,CAAC9O,GAAG,EAAE;MACxB,IAAI+O,qBAAqB,GAAG/O,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGm/C,kBAAkB,GAAG,IAAI,GAAGA,kBAAkB,CAAC;MACrG,OAAOzhD,GAAG,CAACuE,+BAA+B,CAACo9C,qBAAqB,CAAC;IACrE;EAAC;IAAAvlD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGa,kBAAkB,GAAG,OAAO,GAAGA,kBAAkB,CAC5D,CAACplB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,sBAAA,CAAAqkC,gBAAA;MACA,IAAI,CAACI,0BAA0B,CAAC,CAAC;MACjC,IAAI,CAACjJ,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACK,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAAulD,0BAA0BA,CAAA,EAAG;MAAA,IAAAzmC,MAAA;MACzB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MAGQ,IAAI+/B,YAAY,GAAGp+B,WAAW,GAAG,qBAAqB,GAAG2kC,kBAAkB;MAC3E36C,MAAM,CAACM,kBAAkB,CAAC,OAAO,EAAE8zC,YAAY,GAAG,OAAO,GAAGuG,kBAAkB,EAAE,UAACj6C,KAAK,EAAEd,GAAG,EAAK;QAC5F,IAAIksC,GAAG,GAAG5yC,GAAG,CAACmB,iBAAiB,CAACuF,GAAG,CAAC;QACpC,IAAIm7C,aAAa,GAAG7yC,MAAM,CAAC4jC,GAAG,CAACrwC,YAAY,CAACkyC,cAAc,CAAC,CAAC;QAC5D10C,WAAK,CAACuY,oCAAoC,CAAC;UAAEupC,aAAa,EAAbA;QAAc,CAAC,CAAC;QAC7D1mC,MAAI,CAACkgC,8BAA8B,CAC/B7zC,KAAK,EACHd,GAAG,EACH+6C,kBAAkB,EAClB1hD,WAAK,CAACoY,eAAe,CAACrD,SAAS,CAAC,CAAC1S,MAAM,CAAC,UAAA6O,QAAQ;UAAA,OAE1CA,QAAQ,CAACwjC,cAAc,CAAC,IAAIoN,aAAa,IACtCA,aAAa,GAAG,CAAC;QAAA,CAE5B,CAAC,CAAC;QAAA,EACA3G,YAAY,EACZ,UAACE,WAAW,EAAK;UAAEjgC,MAAI,CAACu1B,mBAAmB,CACzC0K,WAAW,EACT,UAAC5zC,KAAK,EAAEtH,OAAO,EAAK;YAAEib,MAAI,CAAC08B,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;UAAE,CACrF,CAAC;QAAE,CACP,CAAC;MACL,CAAC,CAAC;MACF,IAAI,CAACwwC,mBAAmB,CACpBwK,YAAY,GAAG,UAAU,GAAGuG,kBAAkB,EAC5C,UAACj6C,KAAK,EAAEtH,OAAO,EAAK;QAAEib,MAAI,CAAC08B,kCAAkC,CAACrwC,KAAK,EAAEtH,OAAO,CAAC;MAAE,CACrF,CAAC;IACL;IACA;AACJ;AACA;AACA;AACA;EAJI;IAAA9D,GAAA;IAAAC,KAAA,EAMA,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,sBAAA,CAAAqkC,gBAAA;IACJ;EAAC;AAAA,EAzHyCpR,aAAa;AAAAzqC,wBAAA,CAAtC67C,gBAAgB,UACnBM,oBAAoB;AAAAn8C,wBAAA,CADjB67C,gBAAgB,qBAER/M,cAAc;;;;;;;;;;;;;;;;;;;;ACXZ;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5BsN,kBAAkB,0BAAAlC,cAAA;EAKnC,SAAAkC,mBAAYnoC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,2BAAA,OAAA6lD,kBAAA;IAChBznC,KAAA,GAAA2C,sBAAA,OAAA8kC,kBAAA,GAAMnoC,MAAM;IAAEjU,2BAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAAC6G,eAAe;IAItCwE,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,qBAAA,CAAA6kC,kBAAA,EAAAlC,cAAA;EAAA,OAAA1jD,wBAAA,CAAA4lD,kBAAA;IAAA3lD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACG,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAIoN,SAAS,GAAGpN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGwD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIm6C,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAAC8B,gBAAgB,CAAC,GAAGpP,GAAG,CAACrwC,YAAY,CAACy/C,gBAAgB,CAAC;MAC9D9B,OAAO,CAAC+B,SAAS,CAAC,GAAG,IAAI,CAACC,aAAa,CAACtP,GAAG,CAAC;MAC5CsN,OAAO,CAACp6C,QAAQ,CAAC,GAAG9F,GAAG,CAACuE,+BAA+B,CAACy7C,SAAS,CAAC;MAClEE,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MAEjEkM,OAAO,CAACqI,GAAG,CAAC,SAAS,CAAC;MACtBrI,OAAO,CAACqI,GAAG,CAACwnC,OAAO,CAAC;MAEpB,OAAOA,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAA6lD,aAAaA,CAACtP,GAAG,EAAE;MACf,IAAIuP,YAAY,GAAGvP,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG2/C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;MAC1E,OAAOjiD,GAAG,CAACuE,+BAA+B,CAAC49C,YAAY,CAAC;IAC5D;EAAC;IAAA/lD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGqB,SAAS,GAAG,OAAO,GAAGA,SAAS,CAC1C,CAAC5lB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,yBAAA,CAAA4kC,kBAAA;MACA,IAAI,CAACK,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACzJ,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACK,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAA+lD,iBAAiBA,CAAA,EAAG;MAChB,IAAI,CAACxH,0BAA0B,CAC3BqH,SAAS,EACPliD,WAAK,CAACoY,eAAe,CAACkqC,WAAW,CAAC,CAAC;MACzC,CAAC;IACL;EAAC;IAAAjmD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,yBAAA,CAAA4kC,kBAAA;IACJ;EAAC;AAAA,EAxE2C3R,aAAa;AAAAzqC,2BAAA,CAAxCo8C,kBAAkB,UACrBO,sBAAsB;AAAA38C,2BAAA,CADnBo8C,kBAAkB,qBAEVC,gBAAgB;;;;;;;;;;;;;;;;;;;;ACXd;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5BO,yBAAyB,0BAAA1C,cAAA;EAK1C,SAAA0C,0BAAY3oC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,mCAAA,OAAAqmD,yBAAA;IAChBjoC,KAAA,GAAA2C,8BAAA,OAAAslC,yBAAA,GAAM3oC,MAAM;IAAEjU,mCAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACwH,sBAAsB;IAI7C6D,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,6BAAA,CAAAqlC,yBAAA,EAAA1C,cAAA;EAAA,OAAA1jD,gCAAA,CAAAomD,yBAAA;IAAAnmD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACmC,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACa,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACkO,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAACC,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAACC,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAAClO,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAAC/C,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EACD,SAAAmmD,uBAAuBA,CAAA,EAAG;MACtB,IAAI,CAAClQ,YAAY,CAACqQ,iBAAiB,CAAC;IACxC;EAAC;IAAAvmD,GAAA;IAAAC,KAAA,EACD,SAAAomD,kBAAkBA,CAAA,EAAG;MACjB,IAAI,CAACnQ,YAAY,CAACsQ,YAAY,CAAC;IACnC;EAAC;IAAAxmD,GAAA;IAAAC,KAAA,EACD,SAAAqmD,sBAAsBA,CAAA,EAAG;MACrB,IAAI,CAACpQ,YAAY,CAAC0P,gBAAgB,CAAC;IACvC;EAAC;IAAA5lD,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAIuO,0BAA0B,GAAGvO,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG8+C,yBAAyB,GAAG,WAAW,CAAC;MACnG,IAAIX,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,WAAW,CAAC;MACnE,IAAIkH,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAAC2C,uBAAuB,CAAC,GAAGjQ,GAAG,CAACrwC,YAAY,CAACsgD,uBAAuB,CAAC;MAC5E3C,OAAO,CAAC1M,SAAS,CAAC,GAAG,IAAI,CAACmL,WAAW,CAAC/L,GAAG,CAAC;MAC1CsN,OAAO,CAAC3L,aAAa,CAAC,GAAG,IAAI,CAACkJ,eAAe,CAAC7K,GAAG,CAAC;MAClDsN,OAAO,CAACkB,yBAAyB,CAAC,GAAGphD,GAAG,CAACuE,+BAA+B,CAAC48C,0BAA0B,CAAC;MACpGjB,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGnC,OAAO,GAAG,OAAO,GAAGA,OAAO,EACjC,MAAM,GAAGzrC,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EAC5D,MAAM,GAAGW,WAAW,GAAG,OAAO,GAAGA,WAAW,CACjD,CAAC0oB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,iCAAA,CAAAolC,yBAAA;MACA,IAAI,CAACrG,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACe,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAAC6F,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAACC,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAACC,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAAClD,QAAQ,CAACJ,oBAAoB,CAAC,CAAC;MACpC,IAAI,CAAC1G,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAAymD,uBAAuBA,CAAA,EAAG;MACtB,IAAI,CAAClI,0BAA0B,CAC3BqI,eAAe,EACbljD,WAAK,CAACoY,eAAe,CAAC+qC,kBAAkB,CAAC,CAAC;MAChD,CAAC;IACL;EAAC;IAAA9mD,GAAA;IAAAC,KAAA,EACD,SAAA0mD,kBAAkBA,CAAA,EAAG;MACjB,IAAI,CAACnI,0BAA0B,CAC3BuI,UAAU,EACRpjD,WAAK,CAACoY,eAAe,CAACirC,aAAa,CAAC,CAAC;MAC3C,CAAC;IACL;EAAC;IAAAhnD,GAAA;IAAAC,KAAA,EACD,SAAA2mD,sBAAsBA,CAAA,EAAG;MACrB,IAAI,CAACpI,0BAA0B,CAC3BhlC,cAAc,EACZ7V,WAAK,CAACoY,eAAe,CAACkrC,iBAAiB,CAAC,CAAC;MAC/C,CAAC;IACL;EAAC;IAAAjnD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,iCAAA,CAAAolC,yBAAA;IACJ;EAAC;AAAA,EApGkDnS,aAAa;AAAAzqC,mCAAA,CAA/C48C,yBAAyB,UAC5Be,6BAA6B;AAAA39C,mCAAA,CAD1B48C,yBAAyB,qBAEjBM,uBAAuB;;;;;;;;;;;;;;;;;;;;ACXrB;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAEjD,IAAIU,oBAAoB;AACxB,IAAIC,sCAAsC;AAAC,IAEtBC,iBAAiB,0BAAA5D,cAAA;EAKlC,SAAA4D,kBAAY7pC,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,yBAAA,OAAAunD,iBAAA;IAChBnpC,KAAA,GAAA2C,oBAAA,OAAAwmC,iBAAA,GAAM7pC,MAAM;IAAEjU,yBAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAAC8I,uCAAuC;IAI9DuC,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,mBAAA,CAAAumC,iBAAA,EAAA5D,cAAA;EAAA,OAAA1jD,sBAAA,CAAAsnD,iBAAA;IAAArnD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG,CAChB;EAAC;IAAAz0C,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAAk5C,eAAeA,CAAA,EAAoB;MAAA,IAAnBS,SAAS,GAAAp2C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAC7Bo2C,SAAS,GAAG,IAAI;MAChB,IAAIpD,GAAG,GAAG70C,QAAQ,CAACuE,aAAa,CAACohD,iBAAiB,GAAG,YAAY,GAAGxsC,cAAc,CAAC;MACnF,OAAO,CAAC,IAAI,CAACg/B,UAAU,CAACtD,GAAG,CAAC,CAAC;IACjC;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZviC,OAAO,CAACqI,GAAG,CAAC,cAAc,EAAEk6B,GAAG,CAAC;MAChC,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAI+Q,YAAY,GAAG/Q,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAGE,WAAW,GAAG,IAAI,GAAGA,WAAW,CAAC;MACnG,IAAIC,kBAAkB,GAAGjR,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAGI,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;MACrH,IAAIC,sBAAsB,GAAGnR,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAGM,sBAAsB,GAAG,IAAI,GAAGA,sBAAsB,CAAC;MACnI,IAAIC,aAAa,GAAGrR,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAGzuC,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;MACtG,IAAIivC,gBAAgB,GAAGtR,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAGS,eAAe,GAAG,IAAI,GAAGA,eAAe,CAAC;MAC/G,IAAI1D,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAACohD,iBAAiB,GAAG,MAAM,GAAG3K,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;MAC7F;MACA,IAAIqL,YAAY,GAAGxR,GAAG,CAACrwC,YAAY,CAACsV,gBAAgB,CAAC;MACrD,IAAIqoC,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAACroC,gBAAgB,CAAC,GAAGusC,YAAY;MACxClE,OAAO,CAACmE,aAAa,CAAC,GAAGrkD,GAAG,CAACuE,+BAA+B,CAACo/C,YAAY,CAAC;MAC1EzD,OAAO,CAACoE,mBAAmB,CAAC,GAAGtkD,GAAG,CAACuE,+BAA+B,CAACs/C,kBAAkB,CAAC;MACtF3D,OAAO,CAAC8D,sBAAsB,CAAC,GAAGhkD,GAAG,CAACuE,+BAA+B,CAACw/C,sBAAsB,CAAC;MAC7F7D,OAAO,CAACzL,cAAc,CAAC,GAAGz0C,GAAG,CAACuE,+BAA+B,CAAC0/C,aAAa,CAAC;MAC5E/D,OAAO,CAACiE,eAAe,CAAC,GAAGnkD,GAAG,CAACuE,+BAA+B,CAAC2/C,gBAAgB,CAAC;MAChFhE,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;MAC5B47C,OAAO,CAACqE,eAAe,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAACJ,YAAY,CAAC;MAClElE,OAAO,CAACuE,iCAAiC,CAAC,GAAG,IAAI,CAACC,sCAAsC,CAACN,YAAY,CAAC;MACtG/zC,OAAO,CAACqI,GAAG,CAAC;QAAEwnC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxB,OAAOA,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAmoD,oBAAoBA,CAACJ,YAAY,EAAE;MAC/B,IAAIO,SAAS,GAAG5mD,QAAQ,CAACC,gBAAgB,CAAC4mD,mBAAmB,GAAG,YAAY,GAAGL,eAAe,GAAG,GAAG,GAAG/gD,SAAS,CAAC;MACjH,IAAImhD,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACloD,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE;MACzD;MACA,IAAIooD,QAAQ,EACRC,oBAAoB,EAAEC,eAAe,EACrCC,4BAA4B,EAAEC,uBAAuB,EACrDC,wBAAwB,EAAEC,mBAAmB,EAC7CC,wBAAwB,EAAEC,mBAAmB,EAC7CC,wBAAwB,EAAEC,mBAAmB,EAC7CC,wBAAwB,EAAEC,mBAAmB,EAC7CC,aAAa,EAAEC,QAAQ,EACvBC,oBAAoB,EAAEC,eAAe,EACrCpF,UAAU,EAAEqF,KAAK,EACjB7F,YAAY,EAAE8F,MAAM;MACxB11C,OAAO,CAACqI,GAAG,CAAC,sBAAsB,CAAC;MACnCrI,OAAO,CAACqI,GAAG,CAAC;QAAEisC,SAAS,EAATA;MAAU,CAAC,CAAC;MAC1B,IAAIqB,iBAAiB,GAAG,EAAE;MAC1B,KAAI,IAAIC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGtB,SAAS,CAACloD,MAAM,EAAEwpD,QAAQ,EAAE,EAAE;QAAA,IAAAC,qBAAA;QAC3DrB,QAAQ,GAAGF,SAAS,CAACsB,QAAQ,CAAC;QAC9BnB,oBAAoB,GAAGD,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG6jD,mBAAmB,GAAG,IAAI,GAAGA,mBAAmB,CAAC;QACvGpB,eAAe,GAAG/kD,GAAG,CAACuE,+BAA+B,CAACugD,oBAAoB,CAAC;QAC3EE,4BAA4B,GAAGH,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG8jD,sCAAsC,GAAG,IAAI,GAAGA,sCAAsC,CAAC;QACrJnB,uBAAuB,GAAGjlD,GAAG,CAACuE,+BAA+B,CAACygD,4BAA4B,CAAC;QAC3FE,wBAAwB,GAAGL,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG+jD,kCAAkC,GAAG,IAAI,GAAGA,kCAAkC,CAAC;QACzIlB,mBAAmB,GAAGnlD,GAAG,CAACuE,+BAA+B,CAAC2gD,wBAAwB,CAAC;QACnFE,wBAAwB,GAAGP,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGgkD,kCAAkC,GAAG,IAAI,GAAGA,kCAAkC,CAAC;QACzIjB,mBAAmB,GAAGrlD,GAAG,CAACuE,+BAA+B,CAAC6gD,wBAAwB,CAAC;QACnFE,wBAAwB,GAAGT,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGikD,kCAAkC,GAAG,IAAI,GAAGA,kCAAkC,CAAC;QACzIhB,mBAAmB,GAAGvlD,GAAG,CAACuE,+BAA+B,CAAC+gD,wBAAwB,CAAC;QACnFE,wBAAwB,GAAGX,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGkkD,kCAAkC,GAAG,IAAI,GAAGA,kCAAkC,CAAC;QACzIf,mBAAmB,GAAGzlD,GAAG,CAACuE,+BAA+B,CAACihD,wBAAwB,CAAC;QACnFE,aAAa,GAAGb,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGmkD,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;QAClFd,QAAQ,GAAG3lD,GAAG,CAACuE,+BAA+B,CAACmhD,aAAa,CAAC;QAC7DE,oBAAoB,GAAGf,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGokD,mBAAmB,GAAG,IAAI,GAAGA,mBAAmB,CAAC;QACvGb,eAAe,GAAG7lD,GAAG,CAACuE,+BAA+B,CAACqhD,oBAAoB,CAAC;QAC3EnF,UAAU,GAAGoE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;QACzE+M,KAAK,GAAG9lD,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;QACvDR,YAAY,GAAG4E,QAAQ,CAACviD,aAAa,CAACsiD,mBAAmB,GAAG,MAAM,GAAGtgD,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,CAAC;QACxIyhD,MAAM,GAAG9F,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;QACpD6hD,iBAAiB,CAAC15C,IAAI,EAAA45C,qBAAA,OAAAvgD,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAugD,qBAAA,EACjBU,iBAAiB,EAAG/B,QAAQ,CAACtiD,YAAY,CAACqkD,iBAAiB,CAAC,GAC1D/uC,gBAAgB,EAAGusC,YAAY,GAC/ByC,qBAAqB,EAAG9B,eAAe,GACvCqB,sCAAsC,EAAGnB,uBAAuB,GAChEoB,kCAAkC,EAAGlB,mBAAmB,GACxDmB,kCAAkC,EAAGjB,mBAAmB,GACxDkB,kCAAkC,EAAGhB,mBAAmB,GACxDiB,kCAAkC,EAAGf,mBAAmB,GACxDgB,YAAY,EAAGd,QAAQ,GACvBe,mBAAmB,EAAGb,eAAe,GAAAlgD,yBAAA,CAAAA,yBAAA,CAAAugD,qBAAA,EACrCnN,SAAS,EAAG+M,KAAK,GACjBxhD,UAAU,EAAGyhD,MAAM,EACzB,CAAC;MACN;MAAC;MACD,OAAOC,iBAAiB;IAC5B;EAAC;IAAA5pD,GAAA;IAAAC,KAAA,EACD,SAAAqoD,sCAAsCA,CAACN,YAAY,EAAE;MACjD,IAAIO,SAAS,GAAG5mD,QAAQ,CAACC,gBAAgB,CAAC8oD,qCAAqC,GAAG,gBAAgB,GAAGrC,iCAAiC,GAAG,GAAG,GAAGjhD,SAAS,CAAC;MACzJ,IAAImhD,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACloD,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE;MACzDkoD,SAAS,GAAGxlC,KAAK,CAACC,IAAI,CAACulC,SAAS,CAAC;MACjC,IAAIE,QAAQ,EAAEkC,+BAA+B,EACzCC,YAAY,EAAEjT,OAAO,EACrBkT,oBAAoB,EAAEC,eAAe,EACrCC,UAAU,EAAEC,KAAK,EACjBC,wBAAwB,EAAEC,mBAAmB,EAC7CC,8BAA8B,EAAEC,yBAAyB,EACzDC,4BAA4B,EAAEC,uBAAuB,EACrDC,uBAAuB,EAAEC,kBAAkB,EAC3CC,aAAa,EAAEC,QAAQ,EACvBrH,UAAU,EAAEqF,KAAK,EACjB7F,YAAY,EAAE8F,MAAM;MACxB11C,OAAO,CAACqI,GAAG,CAAC,wCAAwC,CAAC;MACrDrI,OAAO,CAACqI,GAAG,CAAC;QAAEisC,SAAS,EAATA;MAAU,CAAC,CAAC;MAC1B,IAAIoD,UAAU,GAAG,EAAE;MACnB,KAAI,IAAI9B,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGtB,SAAS,CAACloD,MAAM,EAAEwpD,QAAQ,EAAE,EAAE;QAAA,IAAA+B,gBAAA;QAC3DnD,QAAQ,GAAGF,SAAS,CAACsB,QAAQ,CAAC;QAC9Bc,+BAA+B,GAAGlC,QAAQ,CAACtiD,YAAY,CAAC0lD,mCAAmC,CAAC;QAC5FjB,YAAY,GAAGnC,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGqR,WAAW,GAAG,IAAI,GAAGA,WAAW,CAAC;QAC/EogC,OAAO,GAAG/zC,GAAG,CAACuE,+BAA+B,CAACyiD,YAAY,CAAC;QAC3DC,oBAAoB,GAAGpC,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG4lD,mBAAmB,GAAG,IAAI,GAAGA,mBAAmB,CAAC;QACvGhB,eAAe,GAAGlnD,GAAG,CAACuE,+BAA+B,CAAC0iD,oBAAoB,CAAC;QAC3EE,UAAU,GAAGtC,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG6lD,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;QACzEf,KAAK,GAAGpnD,GAAG,CAACuE,+BAA+B,CAAC4iD,UAAU,CAAC;QACvDE,wBAAwB,GAAGxC,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG8lD,6BAA6B,GAAG,IAAI,GAAGA,6BAA6B,CAAC;QAC/Hd,mBAAmB,GAAGtnD,GAAG,CAACuE,+BAA+B,CAAC8iD,wBAAwB,CAAC;QACnFE,8BAA8B,GAAG1C,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAG+lD,6BAA6B,GAAG,IAAI,GAAGA,6BAA6B,CAAC;QACrIb,yBAAyB,GAAGxnD,GAAG,CAACuE,+BAA+B,CAACgjD,8BAA8B,CAAC;QAC/FE,4BAA4B,GAAG5C,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGgmD,2BAA2B,GAAG,IAAI,GAAGA,2BAA2B,CAAC;QAC/HZ,uBAAuB,GAAG1nD,GAAG,CAACuE,+BAA+B,CAACkjD,4BAA4B,CAAC;QAC3FE,uBAAuB,GAAG9C,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGimD,sBAAsB,GAAG,IAAI,GAAGA,sBAAsB,CAAC;QAChHX,kBAAkB,GAAG5nD,GAAG,CAACuE,+BAA+B,CAACojD,uBAAuB,CAAC;QACjFE,aAAa,GAAGhD,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGkmD,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;QAClFV,QAAQ,GAAG9nD,GAAG,CAACuE,+BAA+B,CAACsjD,aAAa,CAAC;QAC7DpH,UAAU,GAAGoE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;QACzE+M,KAAK,GAAG9lD,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;QACvDR,YAAY,GAAG4E,QAAQ,CAACviD,aAAa,CAACwkD,qCAAqC,GAAG,MAAM,GAAGxiD,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,CAAC;QAC1JyhD,MAAM,GAAG9F,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;QACpD4jD,UAAU,CAACz7C,IAAI,EAAA07C,gBAAA,OAAAriD,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAqiD,gBAAA,EACVC,mCAAmC,EAAGlB,+BAA+B,GACnElvC,gBAAgB,EAAGusC,YAAY,GAC/B7P,aAAa,EAAGR,OAAO,GACvB0U,qBAAqB,EAAGvB,eAAe,GACvCwB,WAAW,EAAGtB,KAAK,GACnBgB,6BAA6B,EAAGd,mBAAmB,GACnDe,6BAA6B,EAAGb,yBAAyB,GACzDc,2BAA2B,EAAGZ,uBAAuB,GACrDa,sBAAsB,EAAGX,kBAAkB,GAC3CY,YAAY,EAAGV,QAAQ,GAAAniD,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAqiD,gBAAA,EACvBjP,SAAS,EAAG+M,KAAK,GACjBxhD,UAAU,EAAGyhD,MAAM,GACnB4C,sBAAsB,EAAG,IAAI,CAACC,2BAA2B,CAAC/D,QAAQ,EAAEkC,+BAA+B,CAAC,EAC1G,CAAC;MACN;MACA,OAAOgB,UAAU;IACrB;EAAC;IAAA3rD,GAAA;IAAAC,KAAA,EACD,SAAAusD,2BAA2BA,CAACC,gCAAgC,EAAE9B,+BAA+B,EAAE;MAC3F,IAAIpC,SAAS,GAAGkE,gCAAgC,CAAC7qD,gBAAgB,CAAC8qD,0BAA0B,GAAG,YAAY,GAAGH,sBAAsB,GAAG,GAAG,GAAGnlD,SAAS,CAAC;MACvJ,IAAImhD,SAAS,IAAI,IAAI,IAAIA,SAAS,CAACloD,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE;MACzDkoD,SAAS,GAAGxlC,KAAK,CAACC,IAAI,CAACulC,SAAS,CAAC;MACjC,IAAIE,QAAQ,EACRkE,0BAA0B,EAAEC,qBAAqB,EACjDC,mBAAmB,EAAEC,cAAc,EACnCC,kBAAkB,EAAEC,aAAa,EACjC3I,UAAU,EAAEqF,KAAK,EACjB7F,YAAY,EAAE8F,MAAM;MACxB11C,OAAO,CAACqI,GAAG,CAAC,6BAA6B,CAAC;MAC1CrI,OAAO,CAACqI,GAAG,CAAC;QAAEisC,SAAS,EAATA;MAAU,CAAC,CAAC;MAC1B,IAAI0E,cAAc,GAAG,EAAE;MACvB,KAAI,IAAIpD,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGtB,SAAS,CAACloD,MAAM,EAAEwpD,QAAQ,EAAE,EAAE;QAC3DpB,QAAQ,GAAGF,SAAS,CAACsB,QAAQ,CAAC;QAC9B8C,0BAA0B,GAAGlE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGgnD,yBAAyB,GAAG,IAAI,GAAGA,yBAAyB,CAAC;QACzHN,qBAAqB,GAAGhpD,GAAG,CAACuE,+BAA+B,CAACwkD,0BAA0B,CAAC;QACvFE,mBAAmB,GAAGpE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGinD,kBAAkB,GAAG,IAAI,GAAGA,kBAAkB,CAAC;QACpGL,cAAc,GAAGlpD,GAAG,CAACuE,+BAA+B,CAAC0kD,mBAAmB,CAAC;QACzEE,kBAAkB,GAAGtE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGknD,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;QACjGJ,aAAa,GAAGppD,GAAG,CAACuE,+BAA+B,CAAC4kD,kBAAkB,CAAC;QACvE1I,UAAU,GAAGoE,QAAQ,CAACviD,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;QACzE+M,KAAK,GAAG9lD,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;QACvDR,YAAY,GAAG4E,QAAQ,CAACviD,aAAa,CAACwmD,0BAA0B,GAAG,MAAM,GAAGxkD,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,CAAC;QAC/IyhD,MAAM,GAAG9F,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;QACpDklD,cAAc,CAAC/8C,IAAI,CAAA3G,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,KACd8jD,wBAAwB,EAAG5E,QAAQ,CAACtiD,YAAY,CAACknD,wBAAwB,CAAC,GACxExB,mCAAmC,EAAGlB,+BAA+B,GACrE2C,2BAA2B,EAAGV,qBAAqB,GACnDW,oBAAoB,EAAGT,cAAc,GACrCM,iBAAiB,EAAGJ,aAAa,GACjCrQ,SAAS,EAAG+M,KAAK,GACjBxhD,UAAU,EAAGyhD,MAAM,CACzB,CAAC;MACN;MACA,OAAOsD,cAAc;IACzB;EAAC;IAAAjtD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGgD,WAAW,GAAG,OAAO,GAAGA,WAAW,EACzC,MAAM,GAAGE,iBAAiB,GAAG,OAAO,GAAGA,iBAAiB,EACxD,MAAM,GAAG7uC,YAAY,GAAG,OAAO,GAAGA,YAAY,EAC9C,MAAM,GAAGkvC,eAAe,GAAG,OAAO,GAAGA,eAAe,CACzD,CAAC9nB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EACD,SAAAg1C,sBAAsBA,CAAA,EAAG;MACrB,IAAIuY,UAAU,CAAC/xC,gBAAgB,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI/F,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;QAChD,IAAI0Y,gBAAgB,GAAG/3C,WAAW,CAACxP,aAAa,CAAC,GAAG,GAAGuV,gBAAgB,CAAC;QACxE7X,GAAG,CAACS,sBAAsB,CAACopD,gBAAgB,EAAE,EAAE,CAAC;MACpD;MACA1sC,uBAAA,CAAAsmC,iBAAA;IACJ;EAAC;IAAArnD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,uBAAA,CAAAsmC,iBAAA;MACA,IAAI,CAACqG,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACC,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAACC,yCAAyC,CAAC,CAAC;IACpD;EAAC;IAAA5tD,GAAA;IAAAC,KAAA,EACD,SAAAytD,2BAA2BA,CAAA,EAAG;MAC1B,IAAI,CAACG,iCAAiC,CAAC,CAAC;MACxC,IAAI,CAACC,uCAAuC,CAAC,CAAC;MAC9C,IAAI,CAACC,qCAAqC,CAAC,CAAC;MAC5C,IAAI,CAACC,kCAAkC,CAAC,CAAC;MACzC,IAAI,CAACC,qCAAqC,CAAC,CAAC;MAC5C,IAAI,CAACC,+BAA+B,CAAC,CAAC;MACtC,IAAIV,UAAU,CAAC/xC,gBAAgB,CAAC,GAAG,CAAC,EAAE;QAClC,IAAI66B,KAAK,GAAG30C,QAAQ,CAACuE,aAAa,CAACohD,iBAAiB,GAAG,QAAQ,CAAC;QAChE,IAAI9Q,GAAG,GAAGF,KAAK,CAACpwC,aAAa,CAAC,IAAI,CAAC;QACnCswC,GAAG,CAAChvC,SAAS,CAACE,GAAG,CAACizC,UAAU,CAAC;QAC7B,IAAI,CAACJ,4BAA4B,CAACjE,KAAK,CAAC;MAC5C;IACJ;EAAC;IAAAt2C,GAAA;IAAAC,KAAA,EACD,SAAA4tD,iCAAiCA,CAAA,EAAG;MAChC,IAAIlP,SAAS,GAAG6I,WAAW;MAC3B,IAAI5I,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACoyC,cAAc,CAAC,CAAC,CAAC;MACxD,IAAIrP,YAAY,GAAGwI,iBAAiB,GAAG,MAAM,GAAGE,WAAW;MAC3D,IAAI,CAAChJ,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAA6tD,uCAAuCA,CAAA,EAAG;MACtC,IAAInP,SAAS,GAAG+I,iBAAiB;MACjC,IAAI9I,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACqyC,oBAAoB,CAAC,CAAC,CAAC;MAC9D,IAAItP,YAAY,GAAGwI,iBAAiB,GAAG,MAAM,GAAGI,iBAAiB;MACjE,IAAI,CAAClJ,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAA8tD,qCAAqCA,CAAA,EAAG;MACpC,IAAI,CAACzS,6BAA6B,CAACgM,iBAAiB,GAAG,MAAM,GAAGM,sBAAsB,GAAG,IAAI,GAAGA,sBAAsB,CAAC;IAC3H;EAAC;IAAA5nD,GAAA;IAAAC,KAAA,EACD,SAAA+tD,kCAAkCA,CAAA,EAAG;MACjC,IAAIrP,SAAS,GAAG9lC,YAAY;MAC5B,IAAI+lC,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACwnC,eAAe,CAAC,CAAC,CAAC;MACzD,IAAIzE,YAAY,GAAGwI,iBAAiB,GAAG,MAAM,GAAGzuC,YAAY;MAC5D,IAAI,CAAC2lC,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAguD,qCAAqCA,CAAA,EAAG;MACpC,IAAItP,SAAS,GAAGoJ,eAAe;MAC/B,IAAInJ,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACsyC,kBAAkB,CAAC,CAAC,CAAC;MAC5D,IAAIvP,YAAY,GAAGwI,iBAAiB,GAAG,MAAM,GAAGS,eAAe;MAC/D,IAAI,CAACvJ,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAiuD,+BAA+BA,CAAA,EAAG;MAC9B,IAAI,CAAC5S,6BAA6B,CAACgM,iBAAiB,GAAG,MAAM,GAAG3K,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;IACjG;EAAC;IAAA38C,GAAA;IAAAC,KAAA,EACD,SAAA0tD,uBAAuBA,CAAA,EAAG;MACtBjjD,MAAM,CAACC,sBAAsB,CAAC69C,mBAAmB,EAAEt9C,eAAe,EAAE,UAACqtC,KAAK,EAAK;QAC3E,IAAImC,cAAc,GAAG8N,mBAAmB,GAAG,YAAY,GAAG7N,UAAU;QACpE,IAAIC,YAAY,GAAGj5C,QAAQ,CAACuE,aAAa,CAACw0C,cAAc,CAAC;QACzD/2C,WAAK,CAACuY,oCAAoC,CAAC,kBAAkB,EAAE0+B,YAAY,CAAC;QAC5E,IAAIR,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC4mD,mBAAmB,GAAG,eAAe,CAAC,CAACnoD,MAAM;QACvF8mD,oBAAoB,GAAGvM,YAAY,CAACjkB,SAAS,CAAC,IAAI,CAAC;QACnDh1B,QAAQ,CAACC,gBAAgB,CAAC84C,cAAc,CAAC,CAAC3vC,OAAO,CAAC,UAASyrC,GAAG,EAAE;UAC5DA,GAAG,CAAC7uC,MAAM,CAAC,CAAC;QAChB,CAAC,CAAC;QACFw/C,oBAAoB,CAACljD,YAAY,CAACumD,iBAAiB,EAAE,CAAC,CAAC,GAAGpQ,SAAS,CAAC;MACxE,CAAC,CAAC;MAEF,IAAI,CAACkU,4CAA4C,CAAC,CAAC;MACnD,IAAI,CAACC,oDAAoD,CAAC,CAAC;MAC3D,IAAI,CAACC,gDAAgD,CAAC,CAAC;MACvD,IAAI,CAACC,gDAAgD,CAAC,CAAC;MACvD,IAAI,CAACC,gDAAgD,CAAC,CAAC;MACvD,IAAI,CAACC,gDAAgD,CAAC,CAAC;MACvD,IAAI,CAACC,qCAAqC,CAAC,CAAC;MAC5C,IAAI,CAACC,4CAA4C,CAAC,CAAC;MACnD,IAAI,CAACC,kCAAkC,CAAC,CAAC;MACzC,IAAI,CAACC,mCAAmC,CAAC,CAAC;IAC9C;EAAC;IAAA/uD,GAAA;IAAAC,KAAA,EACD,SAAAquD,4CAA4CA,CAAA,EAAG;MAC3C,IAAI3P,SAAS,GAAGoL,mBAAmB;MACnC,IAAInL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACizC,sBAAsB,CAAC,CAAC,CAAC;MAChE,IAAIlQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAGuB,mBAAmB;MACrE,IAAI,CAACvL,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAsuD,oDAAoDA,CAAA,EAAG;MACnD,IAAI5P,SAAS,GAAGqL,sCAAsC;MACtD,IAAIpL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACkzC,gCAAgC,CAAC,CAAC,CAAC;MAC1E,IAAInQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAGwB,sCAAsC;MACxF,IAAI,CAACxL,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAuuD,gDAAgDA,CAAA,EAAG;MAC/C,IAAI7P,SAAS,GAAGsL,kCAAkC;MAClD,IAAIrL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACkzC,gCAAgC,CAAC,CAAC,CAAC;MAC1E,IAAInQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAGyB,kCAAkC;MACpF,IAAI,CAACzL,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAwuD,gDAAgDA,CAAA,EAAG;MAC/C,IAAI9P,SAAS,GAAGuL,kCAAkC;MAClD,IAAItL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACkzC,gCAAgC,CAAC,CAAC,CAAC;MAC1E,IAAInQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAG0B,kCAAkC;MACpF,IAAI,CAAC1L,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAyuD,gDAAgDA,CAAA,EAAG;MAC/C,IAAI/P,SAAS,GAAGwL,kCAAkC;MAClD,IAAIvL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACkzC,gCAAgC,CAAC,CAAC,CAAC;MAC1E,IAAInQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAG2B,kCAAkC;MACpF,IAAI,CAAC3L,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAA0uD,gDAAgDA,CAAA,EAAG;MAC/C,IAAIhQ,SAAS,GAAGyL,kCAAkC;MAClD,IAAIxL,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACkzC,gCAAgC,CAAC,CAAC,CAAC;MAC1E,IAAInQ,YAAY,GAAG0J,mBAAmB,GAAG,MAAM,GAAG4B,kCAAkC;MACpF,IAAI,CAAC5L,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAA2uD,qCAAqCA,CAAA,EAAG;MACpC,IAAI,CAACtT,6BAA6B,CAACkN,mBAAmB,GAAG,MAAM,GAAG6B,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;IACzG;EAAC;IAAArqD,GAAA;IAAAC,KAAA,EACD,SAAA4uD,4CAA4CA,CAAA,EAAG;MAC3C,IAAI,CAACvT,6BAA6B,CAACkN,mBAAmB,GAAG,MAAM,GAAG8B,mBAAmB,GAAG,IAAI,GAAGA,mBAAmB,CAAC;IACvH;EAAC;IAAAtqD,GAAA;IAAAC,KAAA,EACD,SAAA6uD,kCAAkCA,CAAA,EAAG;MACjC,IAAI,CAACxT,6BAA6B,CAACkN,mBAAmB,GAAG,MAAM,GAAG7L,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;IACnG;EAAC;IAAA38C,GAAA;IAAAC,KAAA,EACD,SAAA8uD,mCAAmCA,CAAA,EAAG;MAAA,IAAAhwC,MAAA;MAClC,IAAI,CAAC69B,kBAAkB,CAACuL,eAAe,EAAE,UAAC/8C,KAAK,EAAEtH,OAAO,EAAK;QAAEib,MAAI,CAACmwC,kCAAkC,CAAC9jD,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC,CAAC;IAC9H;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAAivD,kCAAkCA,CAAC9jD,KAAK,EAAE4T,MAAM,EAAE;MAC9C5T,KAAK,CAACC,eAAe,CAAC,CAAC;MACvB87C,oBAAoB,CAACljD,YAAY,CAACumD,iBAAiB,EAAE,CAAC,CAAC,GAAGrD,oBAAoB,CAAChhD,YAAY,CAACqkD,iBAAiB,CAAC,CAAC;MAC/G,IAAIlU,KAAK,GAAG30C,QAAQ,CAACuE,aAAa,CAACsiD,mBAAmB,GAAG,QAAQ,CAAC;MAClE,IAAIlS,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;MAC/C,IAAIo5B,GAAG,GAAG2Q,oBAAoB,CAACxwB,SAAS,CAAC,IAAI,CAAC;MAC9C6f,GAAG,CAAChvC,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MACrCsrC,GAAG,CAAC50C,gBAAgB,CAAC,GAAG,GAAGsJ,eAAe,CAAC,CAACH,OAAO,CAAC,UAASjH,OAAO,EAAE;QAClEA,OAAO,CAAC0D,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MAC7C,CAAC,CAAC;MACF,IAAIkvC,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC4mD,mBAAmB,GAAG,eAAe,CAAC,CAACnoD,MAAM;MACvFm2C,GAAG,CAACvyC,YAAY,CAACumD,iBAAiB,EAAE,CAAC,CAAC,GAAGpQ,SAAS,CAAC;MACnD9D,KAAK,CAACgE,OAAO,CAAC9D,GAAG,CAAC;MAClBF,KAAK,CAAC9tC,SAAS,GAAG,CAAC;MACnB,IAAI,CAACmlD,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAACwB,uCAAuC,CAAC7Y,KAAK,CAAC;IACvD;EAAC;IAAAt2C,GAAA;IAAAC,KAAA,EACD,SAAAkvD,uCAAuCA,CAAC7Y,KAAK,EAAE;MAC3C,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGuF,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EACzD,MAAM,GAAGC,sCAAsC,GAAG,OAAO,GAAGA,sCAAsC,EAClG,MAAM,GAAGC,kCAAkC,GAAG,OAAO,GAAGA,kCAAkC,EAC1F,MAAM,GAAGC,kCAAkC,GAAG,OAAO,GAAGA,kCAAkC,EAC1F,MAAM,GAAGC,kCAAkC,GAAG,OAAO,GAAGA,kCAAkC,EAC1F,MAAM,GAAGC,kCAAkC,GAAG,OAAO,GAAGA,kCAAkC,CAC/F,CAACnqB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EACD,SAAA2tD,yCAAyCA,CAAA,EAAG;MACxCljD,MAAM,CAACC,sBAAsB,CAAC+/C,qCAAqC,EAAEx/C,eAAe,EAAE,UAACqtC,KAAK,EAAK;QAC7F,IAAImC,cAAc,GAAGgQ,qCAAqC,GAAG,YAAY,GAAG/P,UAAU;QACtF,IAAIC,YAAY,GAAGj5C,QAAQ,CAACuE,aAAa,CAACw0C,cAAc,CAAC;QACzD/2C,WAAK,CAACuY,oCAAoC,CAAC,kBAAkB,EAAE0+B,YAAY,CAAC;QAC5E,IAAIR,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC8oD,qCAAqC,GAAG,eAAe,CAAC,CAACrqD,MAAM;QACzG+mD,sCAAsC,GAAGxM,YAAY,CAACjkB,SAAS,CAAC,IAAI,CAAC;QACrEh1B,QAAQ,CAACC,gBAAgB,CAAC84C,cAAc,CAAC,CAAC3vC,OAAO,CAAC,UAASyrC,GAAG,EAAE;UAC5DA,GAAG,CAAC7uC,MAAM,CAAC,CAAC;QAChB,CAAC,CAAC;QACFy/C,sCAAsC,CAACnjD,YAAY,CAAC4nD,mCAAmC,EAAE,CAAC,CAAC,GAAGzR,SAAS,CAAC;MAC5G,CAAC,CAAC;MAEF,IAAI,CAACgV,8DAA8D,CAAC,CAAC;MACrE,IAAI,CAACC,sDAAsD,CAAC,CAAC;MAC7D,IAAI,CAACC,8DAA8D,CAAC,CAAC;MACrE,IAAI,CAACC,oDAAoD,CAAC,CAAC;MAC3D,IAAI,CAACC,wEAAwE,CAAC,CAAC;MAC/E,IAAI,CAACC,wEAAwE,CAAC,CAAC;MAC/E,IAAI,CAACC,sEAAsE,CAAC,CAAC;MAC7E,IAAI,CAACC,iEAAiE,CAAC,CAAC;MACxE,IAAI,CAACC,uDAAuD,CAAC,CAAC;MAC9D,IAAI,CAACC,yDAAyD,CAAC,CAAC;MAChE,IAAI,CAACC,oDAAoD,CAAC,CAAC;MAC3D,IAAI,CAACC,wDAAwD,CAAC,CAAC;MAC/D,IAAI,CAACC,qDAAqD,CAAC,CAAC;IAChE;EAAC;IAAAhwD,GAAA;IAAAC,KAAA,EACD,SAAAmvD,8DAA8DA,CAAA,EAAG;MAC7D,IAAI,CAACtP,2BAA2B,CAAC4K,qCAAqC,CAAC;MACvE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA9BI;IAAA1qD,GAAA;IAAAC,KAAA,EA+BA,SAAAovD,sDAAsDA,CAAA,EAAG;MACrD,IAAI,CAACxO,mBAAmB,CAAC6J,qCAAqC,CAAC;IACnE;EAAC;IAAA1qD,GAAA;IAAAC,KAAA,EACD,SAAAqvD,8DAA8DA,CAAA,EAAG;MAC7D,IAAI3Q,SAAS,GAAGmN,mBAAmB;MACnC,IAAIlN,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACk0C,uBAAuB,CAAC,CAAC,CAAC;MACjE,IAAInR,YAAY,GAAG4L,qCAAqC,GAAG,MAAM,GAAGoB,mBAAmB;MACvF,IAAI,CAACtN,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAsvD,oDAAoDA,CAAA,EAAG;MACnD,IAAI5Q,SAAS,GAAGoN,SAAS;MACzB,IAAInN,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAACm0C,YAAY,CAAC,CAAC,CAAC;MACtD,IAAIpR,YAAY,GAAG4L,qCAAqC,GAAG,MAAM,GAAGqB,SAAS;MAC7E,IAAI,CAACvN,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAuvD,wEAAwEA,CAAA,EAAG;MACvE,IAAI,CAAClU,6BAA6B,CAACoP,qCAAqC,GAAG,MAAM,GAAGsB,6BAA6B,GAAG,IAAI,GAAGA,6BAA6B,CAAC;IAC7J;EAAC;IAAAhsD,GAAA;IAAAC,KAAA,EACD,SAAAwvD,wEAAwEA,CAAA,EAAG;MACvE,IAAI,CAACnU,6BAA6B,CAACoP,qCAAqC,GAAG,MAAM,GAAGuB,6BAA6B,GAAG,IAAI,GAAGA,6BAA6B,CAAC;IAC7J;EAAC;IAAAjsD,GAAA;IAAAC,KAAA,EACD,SAAAyvD,sEAAsEA,CAAA,EAAG;MACrE,IAAI,CAACpU,6BAA6B,CAACoP,qCAAqC,GAAG,MAAM,GAAGwB,2BAA2B,GAAG,IAAI,GAAGA,2BAA2B,CAAC;IACzJ;EAAC;IAAAlsD,GAAA;IAAAC,KAAA,EACD,SAAA0vD,iEAAiEA,CAAA,EAAG;MAChE,IAAI,CAACrU,6BAA6B,CAACoP,qCAAqC,GAAG,MAAM,GAAGyB,sBAAsB,GAAG,IAAI,GAAGA,sBAAsB,CAAC;IAC/I;EAAC;IAAAnsD,GAAA;IAAAC,KAAA,EACD,SAAA2vD,uDAAuDA,CAAA,EAAG;MACtD,IAAI,CAACtU,6BAA6B,CAACoP,qCAAqC,GAAG,MAAM,GAAG0B,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;IAC3H;EAAC;IAAApsD,GAAA;IAAAC,KAAA,EACD,SAAA4vD,yDAAyDA,CAAA,EAAG;MACxD;IAAA;EACH;IAAA7vD,GAAA;IAAAC,KAAA,EACD,SAAA6vD,oDAAoDA,CAAA,EAAG;MACnD,IAAI,CAACxU,6BAA6B,CAACoP,qCAAqC,GAAG,qBAAqB,GAAG/N,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;IACpI;EAAC;IAAA38C,GAAA;IAAAC,KAAA,EACD,SAAA8vD,wDAAwDA,CAAA,EAAG;MAAA,IAAA7wC,MAAA;MACvD,IAAIjU,SAAS,GAAG,OAAO;MACvB,IAAIhG,QAAQ,GAAGylD,qCAAqC,GAAG,MAAM,GAAG6B,sBAAsB,GAAG,OAAO,GAAGA,sBAAsB;MACzH,IAAInW,OAAO,GAAG,SAAVA,OAAOA,CAAIhrC,KAAK,EAAEtH,OAAO,EAAK;QAC9B,IAAIqsD,QAAQ,GAAGvsD,GAAG,CAACiB,kBAAkB,CAACf,OAAO,CAAC;QAC9C,IAAI2oD,gCAAgC,GAAG0D,QAAQ,CAACrrD,OAAO,CAAC,KAAK,GAAGujD,iCAAiC,CAAC;QAClG,IAAIsC,+BAA+B,GAAG8B,gCAAgC,CAACtmD,YAAY,CAAC0lD,mCAAmC,CAAC;QACxH,IAAIuE,cAAc,GAAGzuD,QAAQ,CAACwI,aAAa,CAAC,OAAO,CAAC;QACpDimD,cAAc,CAACl3B,EAAE,GAAGwzB,0BAA0B,CAACliB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/D4lB,cAAc,CAAC5oD,SAAS,CAACE,GAAG,CAAC2oD,aAAa,EAAE9D,sBAAsB,CAAC;QAEnE,IAAItzB,IAAI,GAAGt3B,QAAQ,CAACwI,aAAa,CAAC,OAAO,CAAC;QAC1C,IAAImmD,OAAO,GAAG3uD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QAC1C,IAAIomD,uBAAuB,GAAG5uD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QAC1DomD,uBAAuB,CAAC/oD,SAAS,CAACE,GAAG,CAACwlD,yBAAyB,CAAC;QAChEqD,uBAAuB,CAAC9lD,SAAS,GAAG,yBAAyB;QAC7D6lD,OAAO,CAAC5hC,WAAW,CAAC6hC,uBAAuB,CAAC;QAC5C,IAAIC,gBAAgB,GAAG7uD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QACnDqmD,gBAAgB,CAAChpD,SAAS,CAACE,GAAG,CAACylD,kBAAkB,CAAC;QAClDqD,gBAAgB,CAAC/lD,SAAS,GAAG,iBAAiB;QAC9C6lD,OAAO,CAAC5hC,WAAW,CAAC8hC,gBAAgB,CAAC;QACrC,IAAIC,eAAe,GAAG9uD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QAClDsmD,eAAe,CAACjpD,SAAS,CAACE,GAAG,CAAC0lD,iBAAiB,CAAC;QAChDqD,eAAe,CAAChmD,SAAS,GAAG,gBAAgB;QAC5C6lD,OAAO,CAAC5hC,WAAW,CAAC+hC,eAAe,CAAC;QACpC,IAAIC,OAAO,GAAG/uD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QAC1CumD,OAAO,CAAClpD,SAAS,CAACE,GAAG,CAACi1C,SAAS,CAAC;QAChC+T,OAAO,CAACjmD,SAAS,GAAG,OAAO;QAC3B6lD,OAAO,CAAC5hC,WAAW,CAACgiC,OAAO,CAAC;QAC5B,IAAIC,QAAQ,GAAGhvD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;QAC3CwmD,QAAQ,CAACnpD,SAAS,CAACE,GAAG,CAACQ,UAAU,CAAC;QAClC,IAAI0oD,eAAe,GAAGjvD,QAAQ,CAACuE,aAAa,CAAC43C,2BAA2B,GAAG,IAAI,GAAG71C,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,GAAG,GAAG,GAAG61C,OAAO,CAAC;QACjJ4S,QAAQ,CAACjiC,WAAW,CAACkiC,eAAe,CAACj6B,SAAS,CAAC,IAAI,CAAC,CAAC;QACrD25B,OAAO,CAAC5hC,WAAW,CAACiiC,QAAQ,CAAC;QAC7B13B,IAAI,CAACvK,WAAW,CAAC4hC,OAAO,CAAC;QACzBF,cAAc,CAAC1hC,WAAW,CAACuK,IAAI,CAAC;QAEhC,IAAIryB,IAAI,GAAGjF,QAAQ,CAACwI,aAAa,CAAC,OAAO,CAAC;QAE1C,IAAI0mD,8BAA8B,GAAGrD,UAAU,CAACnF,iCAAiC,CAAC,CAACriD,MAAM,CAAC,UAAA8qD,IAAI;UAAA,OAAIA,IAAI,CAACjF,mCAAmC,CAAC,IAAIlB,+BAA+B;QAAA,EAAC;QAC/K,IAAIoG,6BAA6B,GAAIF,8BAA8B,IAAI,IAAI,IAAIA,8BAA8B,CAACxwD,MAAM,IAAI,CAAC,GAAI,IAAI,GAAGwwD,8BAA8B,CAAC,CAAC,CAAC;QACrK,IAAIG,SAAS,GAAID,6BAA6B,IAAI,IAAI,GAAI,IAAI,GAAGA,6BAA6B,CAACxE,sBAAsB,CAAC;QAEtHt4C,OAAO,CAACqI,GAAG,CAAC;UAAEu0C,8BAA8B,EAA9BA,8BAA8B;UAAEG,SAAS,EAATA;QAAU,CAAC,CAAC;QAC1D,IAAIA,SAAS,IAAI,IAAI,IAAIA,SAAS,CAAC3wD,MAAM,GAAG,CAAC,EAAE;UAC3C,KAAK,IAAI4wD,WAAW,IAAIzuD,MAAM,CAACC,IAAI,CAACuuD,SAAS,CAAC,EAAE;YAC5C,IAAI39C,QAAQ,GAAG29C,SAAS,CAACC,WAAW,CAAC;YACrC,IAAIza,GAAG,GAAG6Q,iBAAiB,CAAC6J,oCAAoC,CAAC79C,QAAQ,CAAC;YAC1EzM,IAAI,CAAC8nB,WAAW,CAAC8nB,GAAG,CAAC;UACzB;QACJ;QACA4Z,cAAc,CAAC1hC,WAAW,CAAC9nB,IAAI,CAAC;QAEhCupD,QAAQ,CAAC1pD,SAAS,GAAG2pD,cAAc,CAACe,SAAS;QAE7C,IAAIC,YAAY,GAAGjB,QAAQ,CAACvuD,gBAAgB,CAAC,WAAW,GAAG2qD,sBAAsB,CAAC;QAClF,IAAI6E,YAAY,IAAI,IAAI,IAAIA,YAAY,CAAC/wD,MAAM,GAAG,CAAC,EAAE;UACjD,KAAK,IAAIwpD,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGuH,YAAY,CAAC/wD,MAAM,EAAEwpD,QAAQ,EAAE,EAAE;YAC/D,IAAIrT,IAAG,GAAG4a,YAAY,CAACvH,QAAQ,CAAC;YAChC;;YAEA,IAAIx2C,SAAQ,GAAG29C,SAAS,CAACnH,QAAQ,CAAC,CAAC,CAAC;YACpC51C,OAAO,CAACqI,GAAG,CAAC;cAAEutC,QAAQ,EAARA,QAAQ;cAAErT,GAAG,EAAHA,IAAG;cAAEnjC,QAAQ,EAARA;YAAS,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI05C,kBAAkB,GAAGvW,IAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGknD,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;YAChGxpD,GAAG,CAACS,sBAAsB,CAAC0oD,kBAAkB,EAAE15C,SAAQ,CAAC+5C,iBAAiB,CAAC,CAAC;YAC3E,IAAI/I,UAAU,GAAG7N,IAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;YACxE/4C,GAAG,CAACS,sBAAsB,CAACggD,UAAU,EAAEhxC,SAAQ,CAACspC,SAAS,CAAC,CAAC;UAC/D;QACJ;QAEAz9B,MAAI,CAACmyC,+BAA+B,CAAC,CAAC;MAC1C,CAAC;MACD3mD,MAAM,CAACM,kBAAkB,CACrBC,SAAS,EACPhG,QAAQ,EACRmxC,OACN,CAAC;MACD,IAAI,CAACib,+BAA+B,CAAC,CAAC;IAC1C;EAAC;IAAArxD,GAAA;IAAAC,KAAA,EA8ED,SAAAoxD,+BAA+BA,CAAA,EAAG;MAC9B,IAAI,CAACC,yDAAyD,CAAC,CAAC;MAChE,IAAI,CAACC,kDAAkD,CAAC,CAAC;MACzD,IAAI,CAACC,iDAAiD,CAAC,CAAC;MACxD,IAAI,CAACC,yCAAyC,CAAC,CAAC;MAChD,IAAI,CAACC,0CAA0C,CAAC,CAAC;IACrD;EAAC;IAAA1xD,GAAA;IAAAC,KAAA,EACD,SAAAqxD,yDAAyDA,CAAA,EAAG;MACxD,IAAI3S,SAAS,GAAGuO,yBAAyB;MACzC,IAAItO,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAAC41C,4BAA4B,CAAC,CAAC,CAAC;MACtE,IAAI7S,YAAY,GAAG4N,0BAA0B,GAAG,MAAM,GAAGQ,yBAAyB;MAClF,IAAI,CAAC1O,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAsxD,kDAAkDA,CAAA,EAAG;MACjD,IAAI5S,SAAS,GAAGwO,kBAAkB;MAClC,IAAIvO,UAAU,GAAGj7C,WAAK,CAACoY,eAAe,CAAC61C,qBAAqB,CAAC,CAAC,CAAC;MAC/D,IAAI9S,YAAY,GAAG4N,0BAA0B,GAAG,MAAM,GAAGS,kBAAkB;MAC3E,IAAI,CAAC3O,0BAA0B,CAC3BG,SAAS,EACPC,UAAU,EACVE,YACN,CAAC;IACL;EAAC;IAAA9+C,GAAA;IAAAC,KAAA,EACD,SAAAuxD,iDAAiDA,CAAA,EAAG;MAChD,IAAI,CAAClW,6BAA6B,CAACoR,0BAA0B,GAAG,MAAM,GAAGU,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;IAC1H;EAAC;IAAAptD,GAAA;IAAAC,KAAA,EACD,SAAAwxD,yCAAyCA,CAAA,EAAG;MACxC,IAAI,CAACnW,6BAA6B,CAACoR,0BAA0B,GAAG,MAAM,GAAG/P,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;IAC1G;EAAC;IAAA38C,GAAA;IAAAC,KAAA,EACD,SAAAyxD,0CAA0CA,CAAA,EAAG;MAAA,IAAA7xC,MAAA;MACzC,IAAI,CAAC+8B,kBAAkB,CAAC2P,sBAAsB,EAAE,UAACnhD,KAAK,EAAEtH,OAAO,EAAK;QAAE+b,MAAI,CAACgyC,yCAAyC,CAACzmD,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC,CAAC;IAC5I;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAA4xD,yCAAyCA,CAACzmD,KAAK,EAAE4T,MAAM,EAAE;MACrD5T,KAAK,CAACC,eAAe,CAAC,CAAC;MACvB,IAAIymD,cAAc,GAAGluD,GAAG,CAACsB,gBAAgB,CAAC8Z,MAAM,EAAE,OAAO,CAAC;MAC1D,IAAIs3B,KAAK,GAAGwb,cAAc,CAAC5rD,aAAa,CAAC,gBAAgB,CAAC;MAC1D,IAAIswC,GAAG,GAAG6Q,iBAAiB,CAAC6J,oCAAoC,CAAC,IAAI,CAAC;MACtE,IAAI5a,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;MAC/Co5B,GAAG,CAAChvC,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MACrCsrC,GAAG,CAAC50C,gBAAgB,CAAC,GAAG,GAAGsJ,eAAe,CAAC,CAACH,OAAO,CAAC,UAASjH,OAAO,EAAE;QAClEA,OAAO,CAAC0D,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MAC7C,CAAC,CAAC;MACF,IAAIkvC,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC8qD,0BAA0B,GAAG,eAAe,CAAC,CAACrsD,MAAM;MAC9Fm2C,GAAG,CAACvyC,YAAY,CAACopD,wBAAwB,EAAE,CAAC,CAAC,GAAGjT,SAAS,CAAC;MAC1D9D,KAAK,CAACgE,OAAO,CAAC9D,GAAG,CAAC;MAClBF,KAAK,CAAC9tC,SAAS,GAAG,CAAC;MACnB,IAAI,CAAC6oD,+BAA+B,CAAC,CAAC;MACtC,IAAI,CAACU,8CAA8C,CAACzb,KAAK,CAAC;IAC9D;EAAC;IAAAt2C,GAAA;IAAAC,KAAA,EACD,SAAA8xD,8CAA8CA,CAACzb,KAAK,EAAE;MAClD,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAG0I,yBAAyB,GAAG,OAAO,GAAGA,yBAAyB,EACrE,MAAM,GAAGC,kBAAkB,GAAG,OAAO,GAAGA,kBAAkB,EAC1D,MAAM,GAAGC,iBAAiB,GAAG,OAAO,GAAGA,iBAAiB,EACxD,MAAM,GAAGzQ,SAAS,GAAG,OAAO,GAAGA,SAAS,CAC7C,CAAC1c,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;MACF,IAAIsN,eAAe,GAAG1b,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAGsG,UAAU,GAAG,IAAI,GAAGD,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,GAAG,GAAG,GAAGH,UAAU,CAAC,CAAC1H,MAAM;MAClJ;AACR;AACA;AACA;AACA;AACA;MACQ,IAAIosD,gCAAgC,GAAG7oD,GAAG,CAACmB,iBAAiB,CAACuxC,KAAK,CAAC;MACnE,IAAI2b,aAAa,GAAGxF,gCAAgC,CAACvmD,aAAa,CAAC,KAAK,GAAGgsD,cAAc,GAAG,OAAO,GAAGA,cAAc,CAAC;MACrHD,aAAa,CAACxnD,SAAS,GAAGunD,eAAe;IAC7C;EAAC;IAAAhyD,GAAA;IAAAC,KAAA,EAED,SAAA+vD,qDAAqDA,CAAA,EAAG;MAAA,IAAAxyB,MAAA;MACpD,IAAI,CAACof,kBAAkB,CAACyL,iCAAiC,EAAE,UAACj9C,KAAK,EAAEtH,OAAO,EAAK;QAAE05B,MAAI,CAAC20B,oDAAoD,CAAC/mD,KAAK,EAAEtH,OAAO,CAAC;MAAE,CAAC,CAAC;IAClK;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EACD,SAAAkyD,oDAAoDA,CAAC/mD,KAAK,EAAE4T,MAAM,EAAE;MAChE5T,KAAK,CAACC,eAAe,CAAC,CAAC;MACvB+7C,sCAAsC,CAACnjD,YAAY,CAAC4nD,mCAAmC,EAAE,CAAC,CAAC,GAAGzE,sCAAsC,CAACjhD,YAAY,CAAC0lD,mCAAmC,CAAC,CAAC;MACvL,IAAIvV,KAAK,GAAG30C,QAAQ,CAACuE,aAAa,CAACwkD,qCAAqC,GAAG,QAAQ,CAAC;MACpF,IAAIpU,KAAK,CAAC9uC,SAAS,CAACC,QAAQ,CAAC2V,eAAe,CAAC,EAAE;MAC/C,IAAIo5B,GAAG,GAAG4Q,sCAAsC,CAACzwB,SAAS,CAAC,IAAI,CAAC;MAChE6f,GAAG,CAAChvC,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MACrCsrC,GAAG,CAAC50C,gBAAgB,CAAC,GAAG,GAAGsJ,eAAe,CAAC,CAACH,OAAO,CAAC,UAASjH,OAAO,EAAE;QAClEA,OAAO,CAAC0D,SAAS,CAACG,MAAM,CAACuD,eAAe,CAAC;MAC7C,CAAC,CAAC;MACF,IAAIkvC,SAAS,GAAGz4C,QAAQ,CAACC,gBAAgB,CAAC8oD,qCAAqC,GAAG,eAAe,CAAC,CAACrqD,MAAM;MACzGm2C,GAAG,CAACvyC,YAAY,CAAC4nD,mCAAmC,EAAE,CAAC,CAAC,GAAGzR,SAAS,CAAC;MACrE9D,KAAK,CAACgE,OAAO,CAAC9D,GAAG,CAAC;MAClBF,KAAK,CAAC9tC,SAAS,GAAG,CAAC;MACnB,IAAI,CAAColD,yCAAyC,CAAC,CAAC;MAChD,IAAI,CAACwE,yDAAyD,CAAC9b,KAAK,CAAC;IACzE;EAAC;IAAAt2C,GAAA;IAAAC,KAAA,EACD,SAAAmyD,yDAAyDA,CAAC9b,KAAK,EAAE;MAC7D,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAG5tC,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EACzD,MAAM,GAAGW,WAAW,GAAG,OAAO,GAAGA,WAAW,EAC5C,MAAM,GAAGu0C,mBAAmB,GAAG,OAAO,GAAGA,mBAAmB,EAC5D,MAAM,GAAGC,SAAS,GAAG,OAAO,GAAGA,SAAS,CAC7C,CAAC9rB,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,uBAAA,CAAAsmC,iBAAA;IACJ;EAAC;IAAArnD,GAAA;IAAAC,KAAA,EA9LD,SAAOixD,oCAAoCA,CAAC79C,QAAQ,EAAE;MAClD,IAAIA,QAAQ,IAAI,IAAI,EAAEA,QAAQ,GAAA9J,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,CAAAA,yBAAA,KACzB8jD,wBAAwB,EAAG,IAAI,GAC7BC,2BAA2B,EAAA/jD,yBAAA,KACzB+jD,2BAA2B,EAAG,CAAC,IAEjCC,oBAAoB,EAAAhkD,yBAAA,KAClBgkD,oBAAoB,EAAG,CAAC,IAE1BH,iBAAiB,EAAG,EAAE,GACtBzQ,SAAS,EAAG,EAAE,GACdz0C,UAAU,EAAG,IAAI,CACvB;MACD+L,OAAO,CAACqI,GAAG,CAAC;QAAEjJ,QAAQ,EAARA;MAAS,CAAC,CAAC;MACzB,IAAIg/C,KAAK,GAAIh/C,QAAQ,CAACg6C,wBAAwB,CAAC,IAAI,IAAI,IAAIh6C,QAAQ,CAACg6C,wBAAwB,CAAC,GAAG,CAAE;MAClG,IAAI7W,GAAG,GAAG70C,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MACtCqsC,GAAG,CAAChvC,SAAS,CAACE,GAAG,CAAC6kD,sBAAsB,CAAC;MACzC,IAAI8F,KAAK,EAAE7b,GAAG,CAAChvC,SAAS,CAACE,GAAG,CAACizC,UAAU,CAAC;MACxCnE,GAAG,CAACvyC,YAAY,CAACopD,wBAAwB,EAAEh6C,QAAQ,CAACg6C,wBAAwB,CAAC,CAAC;MAE9E,IAAIiF,uBAAuB,GAAG3wD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MAC1DmoD,uBAAuB,CAAC9qD,SAAS,CAACE,GAAG,CAACwlD,yBAAyB,EAAEqF,cAAc,CAAC;MAChF,IAAIC,wBAAwB,GAAG7wD,QAAQ,CAACwI,aAAa,CAAC,KAAK,CAAC;MAC5DqoD,wBAAwB,CAAChrD,SAAS,CAACE,GAAG,CAACwlD,yBAAyB,CAAC;MACjE,IAAIuF,uBAAuB,GAAGp/C,QAAQ,CAACi6C,2BAA2B,CAAC,CAACA,2BAA2B,CAAC;MAChG,IAAIV,qBAAqB,GAAG+E,4BAA4B,CAACc,uBAAuB,CAAC;MACjF7uD,GAAG,CAACC,4CAA4C,CAAC2uD,wBAAwB,EAAEC,uBAAuB,CAAC;MACnGD,wBAAwB,CAAC/nD,SAAS,GAAImiD,qBAAqB,IAAI,IAAI,GAAI,EAAE,GAAGA,qBAAqB,CAACljD,QAAQ,CAAC;MAC3G4oD,uBAAuB,CAAC5jC,WAAW,CAAC8jC,wBAAwB,CAAC;MAC7Dhc,GAAG,CAAC9nB,WAAW,CAAC4jC,uBAAuB,CAAC;MAExC,IAAII,gBAAgB,GAAG/wD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MACnDuoD,gBAAgB,CAAClrD,SAAS,CAACE,GAAG,CAACylD,kBAAkB,EAAEoF,cAAc,CAAC;MAClE,IAAII,iBAAiB,GAAGhxD,QAAQ,CAACwI,aAAa,CAAC,KAAK,CAAC;MACrDwoD,iBAAiB,CAACnrD,SAAS,CAACE,GAAG,CAACylD,kBAAkB,CAAC;MACnD,IAAIyF,gBAAgB,GAAGv/C,QAAQ,CAACk6C,oBAAoB,CAAC,CAACA,oBAAoB,CAAC;MAC3E,IAAIT,cAAc,GAAG8E,qBAAqB,CAACgB,gBAAgB,CAAC;MAC5DhvD,GAAG,CAACC,4CAA4C,CAAC8uD,iBAAiB,EAAEC,gBAAgB,CAAC;MACrFD,iBAAiB,CAACloD,SAAS,GAAIqiD,cAAc,IAAI,IAAI,GAAI,EAAE,GAAGA,cAAc,CAACpjD,QAAQ,CAAC;MACtFgpD,gBAAgB,CAAChkC,WAAW,CAACikC,iBAAiB,CAAC;MAC/Cnc,GAAG,CAAC9nB,WAAW,CAACgkC,gBAAgB,CAAC;MAEjC,IAAIG,eAAe,GAAGlxD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MAClD0oD,eAAe,CAACrrD,SAAS,CAACE,GAAG,CAAC0lD,iBAAiB,EAAEmF,cAAc,CAAC;MAChE,IAAIxF,kBAAkB,GAAGprD,QAAQ,CAACwI,aAAa,CAAC,OAAO,CAAC;MACxD4iD,kBAAkB,CAACvoD,IAAI,GAAG,QAAQ;MAClCuoD,kBAAkB,CAACvlD,SAAS,CAACE,GAAG,CAAC0lD,iBAAiB,CAAC;MACnD,IAAIJ,aAAa,GAAG35C,QAAQ,CAAC+5C,iBAAiB,CAAC;MAC/CxpD,GAAG,CAACS,sBAAsB,CAAC0oD,kBAAkB,EAAEC,aAAa,CAAC;MAC7DppD,GAAG,CAACI,gCAAgC,CAAC+oD,kBAAkB,EAAEC,aAAa,CAAC;MACvE6F,eAAe,CAACnkC,WAAW,CAACq+B,kBAAkB,CAAC;MAC/CvW,GAAG,CAAC9nB,WAAW,CAACmkC,eAAe,CAAC;MAEhC,IAAIC,OAAO,GAAGnxD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MAC1C2oD,OAAO,CAACtrD,SAAS,CAACE,GAAG,CAACi1C,SAAS,EAAE4V,cAAc,CAAC;MAChD,IAAIlO,UAAU,GAAG1iD,QAAQ,CAACwI,aAAa,CAAC,UAAU,CAAC;MACnDk6C,UAAU,CAAC78C,SAAS,CAACE,GAAG,CAACi1C,SAAS,CAAC;MACnC,IAAI+M,KAAK,GAAGr2C,QAAQ,CAACspC,SAAS,CAAC;MAC/B/4C,GAAG,CAACS,sBAAsB,CAACggD,UAAU,EAAEqF,KAAK,CAAC;MAC7C9lD,GAAG,CAACI,gCAAgC,CAACqgD,UAAU,EAAEqF,KAAK,CAAC;MACvDoJ,OAAO,CAACpkC,WAAW,CAAC21B,UAAU,CAAC;MAC/B7N,GAAG,CAAC9nB,WAAW,CAACokC,OAAO,CAAC;MAExB7+C,OAAO,CAACqI,GAAG,CAACywC,kBAAkB,CAACzoD,OAAO,CAAC;MACvC2P,OAAO,CAACqI,GAAG,CAAC+nC,UAAU,CAAC//C,OAAO,CAAC;MAC/B2P,OAAO,CAACqI,GAAG,CAAC;QAAE0wC,aAAa,EAAbA,aAAa;QAAEtD,KAAK,EAALA;MAAM,CAAC,CAAC;MAErC,IAAIqJ,QAAQ,GAAGpxD,QAAQ,CAACwI,aAAa,CAAC,IAAI,CAAC;MAC3C4oD,QAAQ,CAACvrD,SAAS,CAACE,GAAG,CAACQ,UAAU,EAAEqqD,cAAc,CAAC;MAClD,IAAI3B,eAAe,GAAGjvD,QAAQ,CAACuE,aAAa,CAAC43C,2BAA2B,GAAG,IAAI,GAAG71C,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,GAAG,GAAG,GAAG61C,OAAO,CAAC;MACjJ,IAAIiV,kBAAkB,GAAGrxD,QAAQ,CAACuE,aAAa,CAAC43C,2BAA2B,GAAG,IAAI,GAAG71C,UAAU,GAAG,GAAG,GAAGsiD,QAAQ,GAAG,GAAG,GAAGriD,UAAU,GAAG,GAAG,GAAGH,UAAU,CAAC;MACvJ,IAAI87C,YAAY,GAAIxwC,QAAQ,CAACnL,UAAU,CAAC,GAAI8qD,kBAAkB,CAACr8B,SAAS,CAAC,IAAI,CAAC,GAAGi6B,eAAe,CAACj6B,SAAS,CAAC,IAAI,CAAC;MAChHo8B,QAAQ,CAACrkC,WAAW,CAACm1B,YAAY,CAAC;MAClCrN,GAAG,CAAC9nB,WAAW,CAACqkC,QAAQ,CAAC;MAEzB,OAAOvc,GAAG;IACd;EAAC;AAAA,EAvrB0CxC,aAAa;AAAAzqC,yBAAA,CAAvC89C,iBAAiB,UACpB4L,qBAAqB;AAAA1pD,yBAAA,CADlB89C,iBAAiB,qBAET5rC,gBAAgB;;;;;;;;;;;;;;;;;;;;ACdd;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5By3C,kBAAkB,0BAAAzP,cAAA;EAKnC,SAAAyP,mBAAY11C,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,0BAAA,OAAAozD,kBAAA;IAChBh1C,KAAA,GAAA2C,qBAAA,OAAAqyC,kBAAA,GAAM11C,MAAM;IAAEjU,0BAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACmI,eAAe;IAItCkD,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,oBAAA,CAAAoyC,kBAAA,EAAAzP,cAAA;EAAA,OAAA1jD,uBAAA,CAAAmzD,kBAAA;IAAAlzD,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACie,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACC,yBAAyB,CAAC,CAAC;MAChC,IAAI,CAAChb,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACib,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAAChe,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EACD,SAAAkzD,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAACjd,YAAY,CAAC+R,aAAa,CAAC;IACpC;EAAC;IAAAjoD,GAAA;IAAAC,KAAA,EACD,SAAAmzD,yBAAyBA,CAAA,EAAG;MACxB,IAAI,CAACld,YAAY,CAACgS,mBAAmB,CAAC;IAC1C;EAAC;IAAAloD,GAAA;IAAAC,KAAA,EACD,SAAAozD,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAACnd,YAAY,CAAC6R,eAAe,CAAC;IACtC;EAAC;IAAA/nD,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAI8c,uBAAuB,GAAG9c,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG0hD,sBAAsB,GAAG,QAAQ,CAAC;MAC1F,IAAIvD,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,WAAW,CAAC;MACnE,IAAIkH,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAACroC,gBAAgB,CAAC,GAAG+6B,GAAG,CAACrwC,YAAY,CAACsV,gBAAgB,CAAC;MAC9DqoC,OAAO,CAACmE,aAAa,CAAC,GAAG,IAAI,CAACsL,eAAe,CAAC/c,GAAG,CAAC;MAClDsN,OAAO,CAACoE,mBAAmB,CAAC,GAAG,IAAI,CAACsL,qBAAqB,CAAChd,GAAG,CAAC;MAC9DsN,OAAO,CAAC8D,sBAAsB,CAAC,GAAGhkD,GAAG,CAACuE,+BAA+B,CAACmrD,uBAAuB,CAAC;MAC9FxP,OAAO,CAACzL,cAAc,CAAC,GAAG,IAAI,CAACob,gBAAgB,CAACjd,GAAG,CAAC;MACpDsN,OAAO,CAACiE,eAAe,CAAC,GAAG,IAAI,CAAC2L,mBAAmB,CAACld,GAAG,CAAC;MACxDsN,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAszD,eAAeA,CAAC1gC,EAAE,EAAE;MAChB,IAAI8gC,cAAc,GAAG9gC,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAGshD,WAAW,GAAG,IAAI,GAAGA,WAAW,CAAC;MAC/E,OAAO5jD,GAAG,CAACuE,+BAA+B,CAACwrD,cAAc,CAAC;IAC9D;EAAC;IAAA3zD,GAAA;IAAAC,KAAA,EACD,SAAAuzD,qBAAqBA,CAAC3gC,EAAE,EAAE;MACtB,IAAI+gC,oBAAoB,GAAG/gC,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAGwhD,iBAAiB,GAAG,IAAI,GAAGA,iBAAiB,CAAC;MACjG,OAAO9jD,GAAG,CAACuE,+BAA+B,CAACyrD,oBAAoB,CAAC;IACpE;EAAC;IAAA5zD,GAAA;IAAAC,KAAA,EACD,SAAAwzD,gBAAgBA,CAAC5gC,EAAE,EAAE;MACjB,IAAIghC,eAAe,GAAGhhC,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAG2S,YAAY,GAAG,IAAI,GAAGA,YAAY,CAAC;MAClF,OAAOjV,GAAG,CAACuE,+BAA+B,CAAC0rD,eAAe,CAAC;IAC/D;EAAC;IAAA7zD,GAAA;IAAAC,KAAA,EACD,SAAAyzD,mBAAmBA,CAAC7gC,EAAE,EAAE;MACpB,IAAIihC,kBAAkB,GAAGjhC,EAAE,CAAC3sB,aAAa,CAAC,KAAK,GAAG6hD,eAAe,GAAG,IAAI,GAAGA,eAAe,CAAC;MAC3F,OAAOnkD,GAAG,CAACuE,+BAA+B,CAAC2rD,kBAAkB,CAAC;IAClE;EAAC;IAAA9zD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGuP,UAAU,GAAG,IAAI,GAAGA,UAAU,CACzC,CAAC9zB,IAAI,CAAC,EAAE,CAAC;MACV,IAAI+zB,YAAY,GAAGzP,SAAS,CAACr+C,aAAa,CAAC,KAAK,GAAG6tD,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC,CAAC,CAAC;AAC5F;AACA;AACA;AACA;MACQxP,SAAS,CAAC/8C,SAAS,CAACE,GAAG,CAAC0V,eAAe,CAAC;MACxC42C,YAAY,CAACtP,KAAK,CAAC,CAAC;MACpB;IACJ;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,wBAAA,CAAAmyC,kBAAA;MACA,IAAI,CAACe,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACC,yBAAyB,CAAC,CAAC;MAChC,IAAI,CAACC,uBAAuB,CAAC,CAAC;MAC9B,IAAI,CAAC1Q,QAAQ,CAACJ,oBAAoB,CAAC,CAAC;MACpC,IAAI,CAAC+Q,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAAC3X,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAAg0D,kBAAkBA,CAAA,EAAG;MAAA,IAAAl1C,MAAA;MACjBrU,MAAM,CAACM,kBAAkB,CACrB,OAAO,CAAC;MAAA,EACN0V,WAAW,GAAG,MAAM,GAAGqzC,UAAU,GAAG,UAAU,GAAGA,UAAU,CAAC;MAAA,EAC5D,UAAC3oD,KAAK,EAAEtH,OAAO,EAAK;QAClB,IAAIi9C,QAAQ,GAAGn9C,GAAG,CAACmB,iBAAiB,CAACjB,OAAO,CAAC;QAC7C,IAAIkkD,YAAY,GAAGjH,QAAQ,CAAC56C,YAAY,CAACsV,gBAAgB,CAAC;QAC1D;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QAEgB,IAAI/F,WAAW,GAAGs+B,aAAa,CAACe,cAAc,CAAC,CAAC;QAChD,IAAIz5B,WAAW,GAAG1X,GAAG,CAAC2B,gBAAgB,CAACmQ,WAAW,CAAC;QACnD4F,WAAW,CAACG,gBAAgB,CAAC,GAAGusC,YAAY;QAC5CrkD,WAAK,CAACuY,oCAAoC,CAAC,oBAAoB,CAAC;QAChEvY,WAAK,CAACuY,oCAAoC,CAAC,aAAa,CAAC;QACzDvY,WAAK,CAACuY,oCAAoC,CAACxG,WAAW,CAAC;QACvD/R,WAAK,CAACuY,oCAAoC,CAAC,aAAa,CAAC;QACzDvY,WAAK,CAACuY,oCAAoC,CAACZ,WAAW,CAAC;QACvDyD,MAAI,CAACM,KAAK,CAAC,CAAC;QACZxM,GAAG,CAACkC,QAAQ,CAACk+C,qBAAqB,EAAE33C,WAAW,CAAC;MACpD,CACJ,CAAC;IACL;EAAC;IAAAtb,GAAA;IAAAC,KAAA,EACD,SAAAi0D,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAAC1V,0BAA0B,CAC3BgJ,WAAW,EACT7jD,WAAK,CAACoY,eAAe,CAACoyC,cAAc,CAAC,CAAC;MAC5C,CAAC;IACL;EAAC;IAAAnuD,GAAA;IAAAC,KAAA,EACD,SAAAk0D,yBAAyBA,CAAA,EAAG;MACxB,IAAI,CAAC3V,0BAA0B,CAC3BkJ,iBAAiB,EACf/jD,WAAK,CAACoY,eAAe,CAACqyC,oBAAoB,CAAC,CAAC;MAClD,CAAC;IACL;EAAC;IAAApuD,GAAA;IAAAC,KAAA,EACD,SAAAm0D,uBAAuBA,CAAA,EAAG;MACtB,IAAI,CAAC9Y,6BAA6B,CAAC56B,WAAW,GAAG,MAAM,GAAGknC,sBAAsB,GAAG,SAAS,GAAGA,sBAAsB,CAAC;IAC1H;EAAC;IAAA5nD,GAAA;IAAAC,KAAA,EACD,SAAAo0D,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAAC7V,0BAA0B,CAC3BuJ,eAAe,EACbpkD,WAAK,CAACoY,eAAe,CAACsyC,kBAAkB,CAAC,CAAC;MAChD,CAAC;IACL;EAAC;IAAAruD,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,wBAAA,CAAAmyC,kBAAA;IACJ;EAAC;AAAA,EA9J2Clf,aAAa;AAAAzqC,0BAAA,CAAxC2pD,kBAAkB,UACrBoB,sBAAsB;AAAA/qD,0BAAA,CADnB2pD,kBAAkB,qBAEVz3C,gBAAgB;;;;;;;;;;;;;;;;;;;;ACXd;AAC8C;AAC9C;AACU;AACI;AACN;AACU;AACA;AAAA,IAE5B84C,sBAAsB,0BAAA9Q,cAAA;EAKvC,SAAA8Q,uBAAY/2C,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,+BAAA,OAAAy0D,sBAAA;IAChBr2C,KAAA,GAAA2C,0BAAA,OAAA0zC,sBAAA,GAAM/2C,MAAM;IAAEjU,+BAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAAC2hD,mBAAmB;IAI1Ct2C,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,yBAAA,CAAAyzC,sBAAA,EAAA9Q,cAAA;EAAA,OAAA1jD,4BAAA,CAAAw0D,sBAAA;IAAAv0D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B;MACA,IAAI,CAACG,kBAAkB,CAAC,CAAC;IAC7B;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA5BI;IAAAr1C,GAAA;IAAAC,KAAA,EA+BA,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ7yC,WAAK,CAACuY,oCAAoC,CAAC;QAAEs6B,GAAG,EAAHA;MAAI,CAAC,CAAC;MACnD,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB,IAAImN,SAAS,GAAGnN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGo2C,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIsH,SAAS,GAAGpN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGwD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIm6C,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E+L,OAAO,CAACqI,GAAG,CAAC,WAAW,CAAC;MACxBrI,OAAO,CAACqI,GAAG,CAACqnC,SAAS,CAAC;MAEtB,IAAIG,OAAO,GAAG,CAAC,CAAC;MAChBA,OAAO,CAAC2Q,mBAAmB,CAAC,GAAGje,GAAG,CAACrwC,YAAY,CAACsuD,mBAAmB,CAAC;MACpE3Q,OAAO,CAACxH,QAAQ,CAAC,GAAG14C,GAAG,CAACuE,+BAA+B,CAACw7C,SAAS,CAAC;MAClEG,OAAO,CAACp6C,QAAQ,CAAC,GAAG9F,GAAG,CAACuE,+BAA+B,CAACy7C,SAAS,CAAC;MAClEE,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MACjE,OAAO+7C,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EACD,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC;IAAA;EACH;IAAAt2C,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,6BAAA,CAAAwzC,sBAAA;MACA,IAAI,CAAClY,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACE,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACK,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,6BAAA,CAAAwzC,sBAAA;IACJ;EAAC;AAAA,EAvF+CvgB,aAAa;AAAAzqC,+BAAA,CAA5CgrD,sBAAsB,UACzBG,0BAA0B;AAAAnrD,+BAAA,CADvBgrD,sBAAsB,qBAEdE,mBAAmB;;;;;;;;;;;;;;;;;;;;ACZd;AAAA,IAEbE,uBAAuB,0BAAA/zC,SAAA;EAGxC,SAAA+zC,wBAAYn3C,MAAM,EAAE;IAAA1d,mCAAA,OAAA60D,uBAAA;IAAA,OAAA9zC,8BAAA,OAAA8zC,uBAAA,GACVn3C,MAAM;EAChB;EAACsD,6BAAA,CAAA6zC,uBAAA,EAAA/zC,SAAA;EAAA,OAAA7gB,gCAAA,CAAA40D,uBAAA;IAAA30D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,iCAAA,CAAA4zC,uBAAA;IACJ;EAAC;AAAA,EAbgDp3C,QAAQ;AAAAhU,mCAAA,CAAxCorD,uBAAuB,UAC1BC,2BAA2B;;;;;;;;;;;;;;;;;;;;ACHX;AAAA,IAEbC,0BAA0B,0BAAAj0C,SAAA;EAG3C,SAAAi0C,2BAAYr3C,MAAM,EAAE;IAAA1d,sCAAA,OAAA+0D,0BAAA;IAAA,OAAAh0C,iCAAA,OAAAg0C,0BAAA,GACVr3C,MAAM;EAChB;EAACsD,gCAAA,CAAA+zC,0BAAA,EAAAj0C,SAAA;EAAA,OAAA7gB,mCAAA,CAAA80D,0BAAA;IAAA70D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,oCAAA,CAAA8zC,0BAAA;IACJ;EAAC;AAAA,EAbmDt3C,QAAQ;AAAAhU,sCAAA,CAA3CsrD,0BAA0B,UAC7BC,8BAA8B;;;;;;;;;;;;;;;;;;;;ACFd;AAAA,IAEbC,WAAW,0BAAAn0C,SAAA;EAG5B,SAAAm0C,YAAYv3C,MAAM,EAAE;IAAA1d,sBAAA,OAAAi1D,WAAA;IAAA,OAAAl0C,iBAAA,OAAAk0C,WAAA,GACVv3C,MAAM;EAChB;EAACsD,gBAAA,CAAAi0C,WAAA,EAAAn0C,SAAA;EAAA,OAAA7gB,mBAAA,CAAAg1D,WAAA;IAAA/0D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,oBAAA,CAAAg0C,WAAA;IACJ;EAAC;AAAA,EAboCx3C,QAAQ;AAAAhU,sBAAA,CAA5BwrD,WAAW,UACdC,eAAe;;;;;;;;;;;;;;;;;;;;ACHC;AAAA,IAEbC,iBAAiB,0BAAAr0C,SAAA;EAGlC,SAAAq0C,kBAAYz3C,MAAM,EAAE;IAAA1d,6BAAA,OAAAm1D,iBAAA;IAAA,OAAAp0C,wBAAA,OAAAo0C,iBAAA,GACVz3C,MAAM;EAChB;EAACsD,uBAAA,CAAAm0C,iBAAA,EAAAr0C,SAAA;EAAA,OAAA7gB,0BAAA,CAAAk1D,iBAAA;IAAAj1D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,2BAAA,CAAAk0C,iBAAA;IACJ;EAAC;AAAA,EAb0C13C,QAAQ;AAAAhU,6BAAA,CAAlC0rD,iBAAiB,UACpBC,qBAAqB;;;;;;;;;;;;;;;;;;;;ACJL;AAAA,IAEbC,qBAAqB,0BAAAv0C,SAAA;EAGtC,SAAAu0C,sBAAY33C,MAAM,EAAE;IAAA1d,iCAAA,OAAAq1D,qBAAA;IAAA,OAAAt0C,4BAAA,OAAAs0C,qBAAA,GACV33C,MAAM;EAChB;EAACsD,2BAAA,CAAAq0C,qBAAA,EAAAv0C,SAAA;EAAA,OAAA7gB,8BAAA,CAAAo1D,qBAAA;IAAAn1D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,+BAAA,CAAAo0C,qBAAA;IACJ;EAAC;AAAA,EAb8C53C,QAAQ;AAAAhU,iCAAA,CAAtC4rD,qBAAqB,UACxBC,6BAA6B;;;;;;;;;;;;;;;;;;;;ACFb;AAAA,IAEbC,QAAQ,0BAAAz0C,SAAA;EAGzB,SAAAy0C,SAAY73C,MAAM,EAAE;IAAA1d,mBAAA,OAAAu1D,QAAA;IAAA,OAAAx0C,cAAA,OAAAw0C,QAAA,GACV73C,MAAM;EAChB;EAACsD,aAAA,CAAAu0C,QAAA,EAAAz0C,SAAA;EAAA,OAAA7gB,gBAAA,CAAAs1D,QAAA;IAAAr1D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,iBAAA,CAAAs0C,QAAA;IACJ;EAAC;AAAA,EAbiC93C,QAAQ;AAAAhU,mBAAA,CAAzB8rD,QAAQ,UACXC,mBAAmB;;;;;;;;;;;;;;;;;;;;ACHT;AACuB;AACvB;AACc;AACN;AAAA,IAEfC,SAAS,0BAAA9R,cAAA;EAK1B,SAAA8R,UAAY/3C,MAAM,EAAE;IAAA,IAAAU,KAAA;IAAApe,oBAAA,OAAAy1D,SAAA;IAChBr3C,KAAA,GAAA2C,eAAA,OAAA00C,SAAA,GAAM/3C,MAAM;IAAEjU,oBAAA,CAAA2U,KAAA,0BAHKrL,GAAG,CAACsD,SAAS;IAIhC+H,KAAA,CAAKwlC,QAAQ,GAAG,IAAIP,iBAAiB,CAAAjlC,KAAK,CAAC;IAAC,OAAAA,KAAA;EAChD;EAAC4C,cAAA,CAAAy0C,SAAA,EAAA9R,cAAA;EAAA,OAAA1jD,iBAAA,CAAAw1D,SAAA;IAAAv1D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAC3B;EAAC;IAAA5d,GAAA;IAAAC,KAAA,EAED,SAAAw0C,aAAaA,CAAA,EAAG;MACZ,IAAI,CAACS,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACsgB,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACngB,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAAr1C,GAAA;IAAAC,KAAA,EACD,SAAAu1D,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAACtf,YAAY,CAACuf,aAAa,CAAC;IACpC;EAAC;IAAAz1D,GAAA;IAAAC,KAAA,EAED,SAAA64C,YAAYA,CAACC,OAAO,EAAE;MAClB,IAAIA,OAAO,IAAI,IAAI,EAAE;MACrB,IAAIU,QAAQ,EAAE;QAAE91C,WAAK,CAACuY,oCAAoC,CAAC,qBAAqB,EAAE68B,OAAO,CAAC;MAAE;IAChG;EAAC;IAAA/4C,GAAA;IAAAC,KAAA,EACD,SAAA65C,UAAUA,CAACtD,GAAG,EAAE;MACZ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACjB;MACA,IAAIkf,SAAS,GAAGlf,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGyvD,QAAQ,GAAG,IAAI,GAAGA,QAAQ,CAAC;MACrE,IAAIC,cAAc,GAAGpf,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG2vD,aAAa,GAAG,IAAI,GAAGA,aAAa,CAAC;MACpF,IAAIC,YAAY,GAAGtf,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAG6vD,WAAW,GAAG,IAAI,GAAGA,WAAW,CAAC;MAC9E,IAAI1R,UAAU,GAAG7N,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGy2C,SAAS,GAAG,IAAI,GAAGA,SAAS,CAAC;MACxE,IAAIkH,YAAY,GAAGrN,GAAG,CAACtwC,aAAa,CAAC,KAAK,GAAGgC,UAAU,GAAG,IAAI,GAAGA,UAAU,CAAC;MAE5E,IAAI47C,OAAO,GAAAv6C,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,CAAAA,oBAAA,KACNysD,eAAe,EAAG,IAAI,GACpBC,SAAS,EAAG,IAAI,GAChBC,mBAAmB,EAAG,IAAI,GAC1BT,aAAa,EAAGU,OAAO,CAACV,aAAa,CAAC,GACtCW,eAAe,EAAG,IAAI,GACtBC,eAAe,EAAG,IAAI,GACtBC,gBAAgB,EAAG,IAAI,GACvBC,WAAW,EAAG,IAAI,GAClBZ,QAAQ,EAAG,IAAI,CACrB;MACD7R,OAAO,CAAC0S,UAAU,CAAC,GAAGhgB,GAAG,CAACrwC,YAAY,CAACqwD,UAAU,CAAC;MAClD;MACA1S,OAAO,CAAC2S,UAAU,CAAC,GAAG7yD,GAAG,CAACuE,+BAA+B,CAACutD,SAAS,CAAC;MACpE5R,OAAO,CAAC+R,aAAa,CAAC,GAAGjyD,GAAG,CAACuE,+BAA+B,CAACytD,cAAc,CAAC;MAC5E9R,OAAO,CAACiS,WAAW,CAAC,GAAGnyD,GAAG,CAACuE,+BAA+B,CAAC2tD,YAAY,CAAC;MACxEhS,OAAO,CAACnH,SAAS,CAAC,GAAG/4C,GAAG,CAACuE,+BAA+B,CAACk8C,UAAU,CAAC;MACpEP,OAAO,CAAC57C,UAAU,CAAC,GAAG27C,YAAY,CAACr8C,SAAS,CAACC,QAAQ,CAACM,UAAU,CAAC;MAEjEkM,OAAO,CAACqI,GAAG,CAAC,SAAS,CAAC;MACtBrI,OAAO,CAACqI,GAAG,CAACwnC,OAAO,CAAC;MAEpB,OAAOA,OAAO;IAClB;EAAC;IAAA9jD,GAAA;IAAAC,KAAA,EAED,SAAAo6C,gBAAgBA,CAAC/D,KAAK,EAAEE,GAAG,EAAE,CAE7B;EAAC;IAAAx2C,GAAA;IAAAC,KAAA,EACD,SAAAs6C,4BAA4BA,CAACjE,KAAK,EAAE;MAChC,IAAIgO,OAAO,GAAGhO,KAAK,CAAC10C,gBAAgB,CAAC,KAAK,GAAG+4C,UAAU,CAAC;MACxD,IAAI4J,SAAS,GAAGD,OAAO,CAAC,CAAC,CAAC;MAC1B,IAAIE,yBAAyB,GAAG,CAC5B,KAAK,GAAGmR,QAAQ,GAAG,OAAO,GAAGA,QAAQ,CACxC,CAAC11B,IAAI,CAAC,EAAE,CAAC;MACVskB,SAAS,CAAC3iD,gBAAgB,CAAC4iD,yBAAyB,CAAC,CAACz5C,OAAO,CAAC,UAAC05C,gBAAgB,EAAK;QAChFA,gBAAgB,CAACC,KAAK,CAAC,CAAC;MAC5B,CAAC,CAAC;IACN;EAAC;IAAA1kD,GAAA;IAAAC,KAAA,EAED,SAAA00C,eAAeA,CAAA,EAAG;MACd5zB,kBAAA,CAAAw0C,SAAA;MACA,IAAI,CAACmB,gBAAgB,CAAC,CAAC;MACvB,IAAI,CAACC,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACla,sBAAsB,CAAC,CAAC;MAC7B,IAAI,CAACE,kBAAkB,CAAC,CAAC;IAC7B;EAAC;IAAA58C,GAAA;IAAAC,KAAA,EACD,SAAAy2D,gBAAgBA,CAAA,EAAG;MACf,IAAI,CAAClY,0BAA0B,CAC3BmX,QAAQ,EACNhyD,WAAK,CAACoY,eAAe,CAAC86C,WAAW,CAAC,CAAC;MACzC,CAAC;IACL;EAAC;IAAA72D,GAAA;IAAAC,KAAA,EACD,SAAA02D,qBAAqBA,CAAA,EAAG;MACpB,IAAI,CAACrb,6BAA6B,CAACua,aAAa,CAAC;IACrD;EAAC;IAAA71D,GAAA;IAAAC,KAAA,EACD,SAAA22D,mBAAmBA,CAAA,EAAG;MAClB,IAAI,CAACtb,6BAA6B,CAACya,WAAW,CAAC;IACnD;EAAC;IAAA/1D,GAAA;IAAAC,KAAA,EAED,SAAAof,KAAKA,CAAA,EAAG;MACJ0B,kBAAA,CAAAw0C,SAAA;IACJ;EAAC;AAAA,EAlGkCvhB,aAAa;AAAAzqC,oBAAA,CAA/BgsD,SAAS,UACZuB,oBAAoB;AAAAvtD,oBAAA,CADjBgsD,SAAS,qBAEDiB,UAAU;;;;;;;;;ACRvC;AACA;AAC4C;AACM;AACe;AACa;AACe;AAC7F;AAC8C;AAC2B;AACnB;AACgB;AACtE;AACwD;AACK;AACe;AAClB;AACE;AACQ;AACpE;AAC4E;AACM;AAC/B;AACa;AACQ;AACxE;AACA;AACA;AAC4C;AACE;AAEnB;AACA;AACQ;AAAA,IAGdO,MAAM;EACvB,SAAAA,OAAA,EAAc;IAAA,IAAA74C,KAAA;IAAApe,qBAAA,OAAAi3D,MAAA;IACV;IACA,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;IACf;IACA,IAAI,CAACA,KAAK,CAAC1iD,YAAY,CAAC,GAAG;MAAE7D,IAAI,EAAE,UAAU;MAAEwmD,MAAM,EAAEt2C,QAAQA;IAAC,CAAC;IACjE,IAAI,CAACq2C,KAAK,CAAC1kB,eAAe,CAAC,GAAG;MAAE7hC,IAAI,EAAE,aAAa;MAAEwmD,MAAM,EAAE9kB,WAAWA;IAAC,CAAC;IAC1E,IAAI,CAAC6kB,KAAK,CAACxkB,sBAAsB,CAAC,GAAG;MAAE/hC,IAAI,EAAE,oBAAoB;MAAEwmD,MAAM,EAAE1kB,kBAAkBA;IAAC,CAAC;IAC/F,IAAI,CAACykB,KAAK,CAACrkB,4BAA4B,CAAC,GAAG;MAAEliC,IAAI,EAAE,0BAA0B;MAAEwmD,MAAM,EAAExkB,wBAAwBA;IAAC,CAAC;IACjH,IAAI,CAACukB,KAAK,CAACnkB,mCAAmC,CAAC,GAAG;MAAEpiC,IAAI,EAAE,iCAAiC;MAAEwmD,MAAM,EAAErkB,+BAA+BA;IAAC,CAAC;IACtI;IACA,IAAI,CAACokB,KAAK,CAAChkB,eAAe,CAAC,GAAG;MAAEviC,IAAI,EAAE,aAAa;MAAEwmD,MAAM,EAAEnkB,WAAWA;IAAC,CAAC;IAC1E,IAAI,CAACkkB,KAAK,CAACjT,4BAA4B,CAAC,GAAG;MAAEtzC,IAAI,EAAE,iBAAiB;MAAEwmD,MAAM,EAAEzT,wBAAwBA;IAAC,CAAC;IACxG,IAAI,CAACwT,KAAK,CAACnS,mBAAmB,CAAC,GAAG;MAAEp0C,IAAI,EAAE,iBAAiB;MAAEwmD,MAAM,EAAEjT,eAAeA;IAAC,CAAC;IACtF,IAAI,CAACgT,KAAK,CAAC7R,0BAA0B,CAAC,GAAG;MAAE10C,IAAI,EAAE,wBAAwB;MAAEwmD,MAAM,EAAEnS,sBAAsBA;IAAC,CAAC;IAC3G;IACA,IAAI,CAACkS,KAAK,CAACtR,oBAAoB,CAAC,GAAG;MAAEj1C,IAAI,EAAE,kBAAkB;MAAEwmD,MAAM,EAAE7R,gBAAgBA;IAAC,CAAC;IACzF,IAAI,CAAC4R,KAAK,CAAC9Q,sBAAsB,CAAC,GAAG;MAAEz1C,IAAI,EAAE,oBAAoB;MAAEwmD,MAAM,EAAEtR,kBAAkBA;IAAC,CAAC;IAC/F,IAAI,CAACqR,KAAK,CAAC9P,6BAA6B,CAAC,GAAG;MAAEz2C,IAAI,EAAE,2BAA2B;MAAEwmD,MAAM,EAAE9Q,yBAAyBA;IAAC,CAAC;IACpH,IAAI,CAAC6Q,KAAK,CAAC/D,qBAAqB,CAAC,GAAG;MAAExiD,IAAI,EAAE,mBAAmB;MAAEwmD,MAAM,EAAE5P,iBAAiBA;IAAC,CAAC;IAC5F,IAAI,CAAC2P,KAAK,CAAC1C,sBAAsB,CAAC,GAAG;MAAE7jD,IAAI,EAAE,oBAAoB;MAAEwmD,MAAM,EAAE/D,kBAAkBA;IAAC,CAAC;IAC/F,IAAI,CAAC8D,KAAK,CAACtC,0BAA0B,CAAC,GAAG;MAAEjkD,IAAI,EAAE,wBAAwB;MAAEwmD,MAAM,EAAE1C,sBAAsBA;IAAC,CAAC;IAC3G;IACA,IAAI,CAACyC,KAAK,CAAClC,8BAA8B,CAAC,GAAG;MAAErkD,IAAI,EAAE,4BAA4B;MAAEwmD,MAAM,EAAEpC,0BAA0BA;IAAC,CAAC;IACvH,IAAI,CAACmC,KAAK,CAAC5B,6BAA6B,CAAC,GAAG;MAAE3kD,IAAI,EAAE,2BAA2B;MAAEwmD,MAAM,EAAE9B,qBAAqBA;IAAC,CAAC;IAChH,IAAI,CAAC6B,KAAK,CAAChC,eAAe,CAAC,GAAG;MAAEvkD,IAAI,EAAE,aAAa;MAAEwmD,MAAM,EAAElC,WAAWA;IAAC,CAAC;IAC1E,IAAI,CAACiC,KAAK,CAAC9B,qBAAqB,CAAC,GAAG;MAAEzkD,IAAI,EAAE,mBAAmB;MAAEwmD,MAAM,EAAEhC,iBAAiBA;IAAC,CAAC;IAC5F;IACA;IACA;IACA,IAAI,CAAC+B,KAAK,CAAC1B,mBAAmB,CAAC,GAAG;MAAE7kD,IAAI,EAAE,UAAU;MAAEwmD,MAAM,EAAE5B,QAAQA;IAAC,CAAC;IACxE,IAAI,CAAC2B,KAAK,CAACF,oBAAoB,CAAC,GAAG;MAAErmD,IAAI,EAAE,WAAW;MAAEwmD,MAAM,EAAE1B,SAASA;IAAC,CAAC;IAC3E;IACA,IAAI,CAAC2B,MAAM,GAAG,CAAC,CAAC;IAChB;IACA,IAAI,CAACA,MAAM,CAAC5iD,YAAY,CAAC,GAAG;MAAA,IAACigC,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC/J,YAAY,EAAEigC,UAAU,CAAC;IAAA;IACjG,IAAI,CAAC2iB,MAAM,CAAC5kB,eAAe,CAAC,GAAG;MAAA,IAACiC,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACi0B,eAAe,EAAEiC,UAAU,CAAC;IAAA;IACvG,IAAI,CAAC2iB,MAAM,CAAC1kB,sBAAsB,CAAC,GAAG;MAAA,IAAC+B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACm0B,sBAAsB,EAAE+B,UAAU,CAAC;IAAA;IACrH,IAAI,CAAC2iB,MAAM,CAACvkB,4BAA4B,CAAC,GAAG;MAAA,IAAC4B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACs0B,4BAA4B,EAAE4B,UAAU,CAAC;IAAA;IACjI,IAAI,CAAC2iB,MAAM,CAACrkB,mCAAmC,CAAC,GAAG;MAAA,IAAC0B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACw0B,mCAAmC,EAAE0B,UAAU,CAAC;IAAA;IAC/I;IACA,IAAI,CAAC2iB,MAAM,CAAClkB,eAAe,CAAC,GAAG;MAAA,IAACuB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC20B,eAAe,EAAEuB,UAAU,CAAC;IAAA;IACvG,IAAI,CAAC2iB,MAAM,CAACnT,4BAA4B,CAAC,GAAG;MAAA,IAACxP,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC0lC,4BAA4B,EAAExP,UAAU,CAAC;IAAA;IACjI,IAAI,CAAC2iB,MAAM,CAACrS,mBAAmB,CAAC,GAAG;MAAA,IAACtQ,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACwmC,mBAAmB,EAAEtQ,UAAU,CAAC;IAAA;IAC/G,IAAI,CAAC2iB,MAAM,CAAC/R,0BAA0B,CAAC,GAAG;MAAA,IAAC5Q,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC8mC,0BAA0B,EAAE5Q,UAAU,CAAC;IAAA;IAC7H;IACA,IAAI,CAAC2iB,MAAM,CAACxR,oBAAoB,CAAC,GAAG;MAAA,IAACnR,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACqnC,oBAAoB,EAAEnR,UAAU,CAAC;IAAA;IACjH,IAAI,CAAC2iB,MAAM,CAAChR,sBAAsB,CAAC,GAAG;MAAA,IAAC3R,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC6nC,sBAAsB,EAAE3R,UAAU,CAAC;IAAA;IACrH,IAAI,CAAC2iB,MAAM,CAAChQ,6BAA6B,CAAC,GAAG;MAAA,IAAC3S,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC6oC,6BAA6B,EAAE3S,UAAU,CAAC;IAAA;IACnI,IAAI,CAAC2iB,MAAM,CAACjE,qBAAqB,CAAC,GAAG;MAAA,IAAC1e,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC40C,qBAAqB,EAAE1e,UAAU,CAAC;IAAA;IACnH,IAAI,CAAC2iB,MAAM,CAAC5C,sBAAsB,CAAC,GAAG;MAAA,IAAC/f,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACi2C,sBAAsB,EAAE/f,UAAU,CAAC;IAAA;IACrH,IAAI,CAAC2iB,MAAM,CAACxC,0BAA0B,CAAC,GAAG;MAAA,IAACngB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACq2C,0BAA0B,EAAEngB,UAAU,CAAC;IAAA;IAC7H;IACA,IAAI,CAAC2iB,MAAM,CAACpC,8BAA8B,CAAC,GAAG;MAAA,IAACvgB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACy2C,8BAA8B,EAAEvgB,UAAU,CAAC;IAAA;IACrI,IAAI,CAAC2iB,MAAM,CAAC9B,6BAA6B,CAAC,GAAG;MAAA,IAAC7gB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC+2C,6BAA6B,EAAE7gB,UAAU,CAAC;IAAA;IACnI,IAAI,CAAC2iB,MAAM,CAAClC,eAAe,CAAC,GAAG;MAAA,IAACzgB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC22C,eAAe,EAAEzgB,UAAU,CAAC;IAAA;IACvG,IAAI,CAAC2iB,MAAM,CAAChC,qBAAqB,CAAC,GAAG;MAAA,IAAC3gB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAAC62C,qBAAqB,EAAE3gB,UAAU,CAAC;IAAA;IACnH;IACA;IACA;IACA,IAAI,CAAC2iB,MAAM,CAAC5B,mBAAmB,CAAC,GAAG;MAAA,IAAC/gB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACi3C,mBAAmB,EAAE/gB,UAAU,CAAC;IAAA;IAC/G,IAAI,CAAC2iB,MAAM,CAACJ,oBAAoB,CAAC,GAAG;MAAA,IAACviB,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAAA,OAAK0a,KAAI,CAACG,cAAc,CAACy4C,oBAAoB,EAAEviB,UAAU,CAAC;IAAA;IACjH,IAAI,CAAC52B,UAAU,CAAC,CAAC;EACrB;EAAC,OAAA5d,kBAAA,CAAAg3D,MAAA;IAAA/2D,GAAA;IAAAC,KAAA,EACD,SAAAk3D,QAAQA,CAACC,QAAQ,EAAsB;MAAA,IAAAr4C,MAAA;MAAA,IAApBw1B,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MACjC,IAAM6zD,SAAS,GAAG,IAAI,CAACC,oBAAoB,CAACF,QAAQ,CAAC;MACrD,IAAI,CAACG,WAAW,GAAG,IAAIF,SAAS,CAAC,IAAI,CAAC;MACtC,IAAI,CAACE,WAAW,CAAC55C,UAAU,CAAC42B,UAAU,CAAC;MACvC3/B,MAAM,CAACzJ,gBAAgB,CAAC,cAAc,EAAE;QAAA,OAAM4T,MAAI,CAACw4C,WAAW,CAACl4C,KAAK,CAAC,CAAC;MAAA,EAAC;IAC3E;EAAC;IAAArf,GAAA;IAAAC,KAAA,EACD,SAAAq3D,oBAAoBA,CAACF,QAAQ,EAAE;MAE3B,IAAII,QAAQ,GAAG,IAAI,CAACR,KAAK,CAACI,QAAQ,CAAC;MACnC,IAAI;QACA,IAAMH,MAAM,GAAGO,QAAQ,CAACP,MAAM;QAC9B,OAAOA,MAAM;MACjB,CAAC,CACD,OAAO/iD,KAAK,EAAE;QACVvQ,WAAK,CAACuY,oCAAoC,CAAC,cAAc,EAAE,IAAI,CAAC86C,KAAK,CAAC;QACtE/iD,OAAO,CAACC,KAAK,CAAC,iBAAiB,EAAEkjD,QAAQ,CAAC;QAC1C,MAAMljD,KAAK;MACf;IACJ;EAAC;IAAAlU,GAAA;IAAAC,KAAA,EACD,SAAA0d,UAAUA,CAAA,EAAG;MACT/I,MAAM,CAACzJ,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAACssD,cAAc,CAACh2C,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE;EAAC;IAAAzhB,GAAA;IAAAC,KAAA,EACD,SAAAw3D,cAAcA,CAACrsD,KAAK,EAAE;MAClB,IAAI,CAACssD,eAAe,CAAC,CAAC;IAC1B;EAAC;IAAA13D,GAAA;IAAAC,KAAA,EACD,SAAAy3D,eAAeA,CAAA,EAAG;MACd,IAAM/wD,eAAe,GAAG/C,GAAG,CAAC8C,kBAAkB,CAAC,CAAC;MAChD,IAAI,CAACywD,QAAQ,CAACxwD,eAAe,CAAC;IAClC;EAAC;IAAA3G,GAAA;IAAAC,KAAA,EACD,SAAAoe,cAAcA,CAAChK,IAAI,EAAkD;MAAA,IAAhDtT,IAAI,GAAAyC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAA,IAAE1C,MAAM,GAAA0C,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAA,IAAE+wC,UAAU,GAAA/wC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,KAAK;MAC/D,IAAIV,GAAG,GAAG+P,GAAG,CAACY,cAAc,CAACY,IAAI,EAAEvT,MAAM,CAAC;MAC1C62D,OAAO,CAACC,SAAS,CAAC;QAAC72D,IAAI,EAAEA,IAAI;QAAED,MAAM,EAAEA;MAAM,CAAC,EAAE,EAAE,EAAEuT,IAAI,CAAC;MACzDxB,GAAG,CAAC8B,OAAO,CAAC7R,GAAG,EAAE/B,IAAI,CAAC;IAC1B;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAA43D,aAAaA,CAAC/0D,GAAG,EAAqC;MAAA,IAAnC/B,IAAI,GAAAyC,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAAA,IAAEs0D,aAAa,GAAAt0D,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAApD,SAAA,GAAAoD,SAAA,MAAG,IAAI;MAChD;MACA,IAAIs0D,aAAa,EAAEH,OAAO,CAACC,SAAS,CAAC72D,IAAI,EAAE,EAAE,EAAE+B,GAAG,CAAC;MACnDA,GAAG,GAAG+P,GAAG,CAAC0B,eAAe,CAACzR,GAAG,EAAE/B,IAAI,CAAC;MACpC8R,GAAG,CAAC8B,OAAO,CAAC7R,GAAG,CAAC;IACpB;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EAED,SAAO83D,wBAAwBA,CAAC1kD,QAAQ,EAAE;MACtCzP,GAAG,CAACyC,YAAY,CAACgN,QAAQ,CAACtS,IAAI,CAAC;IACnC;EAAC;AAAA;AA5GsB;AA+GpB,IAAMyc,MAAM,GAAG,IAAIu5C,MAAM,CAAC,CAAC;;ACnJrB;;AAAA,SAAAroD,UAAAA,CAAArC,CAAA,sCAAAqC,UAAA,wBAAAnC,MAAA,uBAAAA,MAAA,CAAAE,QAAA,aAAAJ,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAE,MAAA,IAAAF,CAAA,CAAAmE,WAAA,KAAAjE,MAAA,IAAAF,CAAA,KAAAE,MAAA,CAAAL,SAAA,qBAAAG,CAAA,KAAAqC,UAAA,CAAArC,CAAA;AAAA,SAAAvM,kBAAAA,CAAA0M,CAAA,EAAAL,CAAA,UAAAK,CAAA,YAAAL,CAAA,aAAAqD,SAAA;AAAA,SAAAgD,oBAAAA,CAAAzG,CAAA,EAAAE,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAA5L,MAAA,EAAA2L,CAAA,UAAAK,CAAA,GAAAJ,CAAA,CAAAD,CAAA,GAAAK,CAAA,CAAAU,UAAA,GAAAV,CAAA,CAAAU,UAAA,QAAAV,CAAA,CAAAW,YAAA,kBAAAX,CAAA,KAAAA,CAAA,CAAAY,QAAA,QAAAzK,MAAA,CAAA8J,cAAA,CAAAP,CAAA,EAAAoG,iBAAA,CAAA9F,CAAA,CAAArM,GAAA,GAAAqM,CAAA;AAAA,SAAAtM,eAAAA,CAAAgM,CAAA,EAAAE,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAAuG,oBAAA,CAAAzG,CAAA,CAAAG,SAAA,EAAAD,CAAA,GAAAD,CAAA,IAAAwG,oBAAA,CAAAzG,CAAA,EAAAC,CAAA,GAAAxJ,MAAA,CAAA8J,cAAA,CAAAP,CAAA,iBAAAkB,QAAA,SAAAlB,CAAA;AAAA,SAAAoG,iBAAAA,CAAAnG,CAAA,QAAAxL,CAAA,GAAAiS,eAAA,CAAAzG,CAAA,gCAAA0C,UAAA,CAAAlO,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAiS,eAAAA,CAAAzG,CAAA,EAAAC,CAAA,oBAAAyC,UAAA,CAAA1C,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAO,MAAA,CAAAmG,WAAA,kBAAA3G,CAAA,QAAAvL,CAAA,GAAAuL,CAAA,CAAA0B,IAAA,CAAAzB,CAAA,EAAAC,CAAA,gCAAAyC,UAAA,CAAAlO,CAAA,UAAAA,CAAA,YAAAgP,SAAA,yEAAAvD,CAAA,GAAA0G,MAAA,GAAAC,MAAA,EAAA5G,CAAA;AAEc;AACM;AAAA,IAG3BgsD,GAAG;EACL,SAAAA,IAAA,EAAc;IAAAl4D,kBAAA,OAAAk4D,GAAA;IACV,IAAI,CAACC,GAAG,GAAG,IAAIr0D,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC4Z,MAAM,GAAG,IAAIu5C,MAAM,CAAC,CAAC;EAC9B;EAAC,OAAAh3D,eAAA,CAAAi4D,GAAA;IAAAh4D,GAAA;IAAAC,KAAA,EAED,SAAA0d,UAAUA,CAAA,EAAG;MACT,IAAI,CAACu6C,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACrpB,KAAK,CAAC,CAAC;IAChB;EAAC;IAAA7uC,GAAA;IAAAC,KAAA,EAED,SAAAi4D,mBAAmBA,CAAA,EAAG;MAClB;IAAA;EACH;IAAAl4D,GAAA;IAAAC,KAAA,EAED,SAAAk4D,iBAAiBA,CAAC/sD,KAAK,EAAE,CACzB;EAAC;IAAApL,GAAA;IAAAC,KAAA,EAED,SAAA4uC,KAAKA,CAAA,EAAG;MACJ,IAAI,CAACupB,eAAe,CAAC,CAAC;IAC1B;EAAC;IAAAp4D,GAAA;IAAAC,KAAA,EAED,SAAAm4D,eAAeA,CAAA,EAAG;MACd,IAAI,CAAC56C,MAAM,CAACk6C,eAAe,CAAC,CAAC;IACjC;EAAC;AAAA;AAIL,IAAMW,GAAG,GAAG,IAAIL,GAAG,CAAC,CAAC;AAErB,SAASM,QAAQA,CAACtwC,EAAE,EAAE;EAClB,IAAIrmB,QAAQ,CAAC42D,UAAU,KAAK,SAAS,EAAE;IACnCvwC,EAAE,CAAC,CAAC;EACR,CAAC,MAAM;IACHrmB,QAAQ,CAACwJ,gBAAgB,CAAC,kBAAkB,EAAE6c,EAAE,CAAC;EACrD;AACJ;AAEAswC,QAAQ,CAAC,YAAM;EACXD,GAAG,CAAC16C,UAAU,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF/I,MAAM,CAACyjD,GAAG,GAAGA,GAAG;AAEhB,6CAAeA,gDAAAA,GAAG,I;;;;;ACnDlB;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA","sources":["webpack://app/./static/js/lib/validation.js","webpack://app/./static/js/dom.js","webpack://app/./static/js/lib/events.js","webpack://app/./static/js/lib/local_storage.js","webpack://app/./static/js/api.js","webpack://app/./static/js/lib/utils.js","webpack://app/./static/js/components/common/temporary/overlay_confirm.js","webpack://app/./static/js/pages/base.js","webpack://app/./static/js/pages/core/home.js","webpack://app/./static/js/vendor/altcha.js","webpack://app/./static/js/pages/core/contact.js","webpack://app/./static/js/pages/core/contact-success.js","webpack://app/./static/js/pages/core/apply-founding-partner.js","webpack://app/./static/js/pages/core/apply-founding-partner-success.js","webpack://app/./static/js/pages/dog/home.js","webpack://app/./static/js/lib/business_objects/business_objects.js","webpack://app/./static/js/components/common/temporary/overlay_error.js","webpack://app/./static/js/pages/base_table.js","webpack://app/./static/js/pages/dog/mixin.js","webpack://app/./static/js/pages/dog/mixin_table.js","webpack://app/./static/js/pages/dog/command_categories.js","webpack://app/./static/js/pages/dog/commands.js","webpack://app/./static/js/pages/dog/dog_command_links.js","webpack://app/./static/js/pages/dog/locations.js","webpack://app/./static/js/pages/dog/button_icons.js","webpack://app/./static/js/pages/dog/command_button_links.js","webpack://app/./static/js/pages/dog/assessment.js","webpack://app/./static/js/pages/dog/assessments.js","webpack://app/./static/js/pages/dog/calendar_entries.js","webpack://app/./static/js/pages/legal/accessibility_report.js","webpack://app/./static/js/pages/legal/accessibility_statement.js","webpack://app/./static/js/pages/legal/license.js","webpack://app/./static/js/pages/legal/privacy_policy.js","webpack://app/./static/js/pages/legal/retention_schedule.js","webpack://app/./static/js/pages/user/user.js","webpack://app/./static/js/pages/user/users.js","webpack://app/./static/js/router.js","webpack://app/./static/js/app.js","webpack://app/./static/css/main.css?0a91","webpack://app/./static/css/components/button.css?0e0b","webpack://app/./static/css/components/card.css","webpack://app/./static/css/components/dialog.css","webpack://app/./static/css/components/form.css?94e1","webpack://app/./static/css/components/image.css?9f9c","webpack://app/./static/css/components/label.css?b78f","webpack://app/./static/css/components/modal.css","webpack://app/./static/css/components/navigation.css","webpack://app/./static/css/components/overlay.css?6dfd","webpack://app/./static/css/components/table.css?e553","webpack://app/./static/css/layouts/header.css?da75","webpack://app/./static/css/layouts/footer.css?65e3","webpack://app/./static/css/layouts/table-main.css?8c15","webpack://app/./static/css/lib/reset.css","webpack://app/./static/css/lib/typography.css","webpack://app/./static/css/lib/utils.css","webpack://app/./static/css/lib/variables.css","webpack://app/./static/css/themes/light.css?855e"],"sourcesContent":["\nexport default class Validation {\n /*\n isNullOrWhitespace(v) {\n let txt = JSON.stringify(v).replace('/\\s\\g', '');\n return (txt == '' || 'null');\n }\n */\n\n static isEmpty(object) {\n\n let isEmpty = true;\n\n if (object !== null && object !== \"null\" && object !== undefined && object !== \"undefined\") {\n\n if (object.length == undefined) {\n isEmpty = false; // object exists but isn't a collection\n }\n else if (typeof object === \"function\") {\n isEmpty = false; // object is reference\n }\n else { // string or collection\n\n let isString = (typeof object == \"string\");\n\n if (isString) object = object.trim();\n\n if (object.length > 0) {\n\n if (isString) {\n isEmpty = false; // String greater than length 0\n }\n else {\n\n if (typeof object[0] != \"string\") {\n isEmpty = false;\n }\n else {\n for(let i = 0; i < object.length; i++) {\n if (object[i] != \"\") {\n isEmpty = false;\n break\n }\n }\n }\n }\n }\n }\n }\n\n return isEmpty;\n }\n\n static isValidNumber(value, positiveOnly) {\n return !Validation.isEmpty(value) && !isNaN(value) && (!positiveOnly || parseFloat(value) > 0);\n }\n\n static getDataContentType(params) {\n\n var data = null;\n var contentType = '';\n\n if (!Validation.isEmpty(params)) {\n\n if (typeof params === \"string\") {\n data = params;\n contentType = \"application/x-www-form-urlencoded; charset=UTF-8\";\n }\n else {\n data = JSON.stringify(params);\n contentType = \"application/json; charset=UTF-8\";\n }\n }\n\n return { Data: data, ContentType: contentType };\n }\n\n static arrayContainsItem(array, itemValue) {\n\n var hasItem = false;\n\n if (!Validation.isEmpty(array) && !Validation.isEmpty(itemValue)) {\n\n var isJQueryElementArray = array[0] instanceof jQuery;\n\n if (isJQueryElementArray) {\n\n for (let i = 0; i < array.length; i++) {\n\n if (document.querySelectorAll(array[i]).is(itemValue)) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n var isDate = array[0] instanceof Date;\n\n if (isDate) {\n \n for (let i = 0; i < array.length; i++) {\n\n if (array[i].getTime() === itemValue.getTime()) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n for (let i = 0; i < array.length; i++) {\n\n if (array[i] == itemValue) {\n hasItem = true;\n break;\n }\n }\n }\n }\n }\n\n return hasItem;\n }\n\n static dictHasKey(d, k) {\n return (k in d);\n }\n static areEqualDicts(dict1, dict2) {\n const keys1 = Object.keys(dict1);\n const keys2 = Object.keys(dict2);\n \n if (keys1.length !== keys2.length) {\n return false;\n }\n \n for (let key of keys1) {\n if (dict1[key] !== dict2[key]) {\n return false;\n }\n }\n \n return true;\n }\n\n static imageExists(url, callback) {\n\n var img = new Image();\n\n img.onload = function() { callback(true); };\n img.onerror = function() { callback(false); };\n img.src = url;\n }\n\n static toFixedOrDefault(value, decimalPlaces, defaultValue = null) {\n return Validation.isValidNumber(value) ? parseFloat(value).toFixed(decimalPlaces) : defaultValue;\n }\n}\n","\nimport Utils from \"./lib/utils.js\";\nimport Validation from \"./lib/validation.js\";\n\nexport default class DOM {\n static setElementAttributesValuesCurrentAndPrevious(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementAttributeValueCurrent(element, data) {\n element.setAttribute(attrValueCurrent, data);\n }\n static setElementAttributeValuePrevious(element, data) {\n element.setAttribute(attrValuePrevious, data);\n }\n static setElementValuesCurrentAndPrevious(element, data) {\n DOM.setElementValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementValueCurrent(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n element.checked = data;\n }\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n element.value = data;\n }\n else {\n element.textContent = data;\n }\n }\n static setElementValueCurrentIfEmpty(element, data) {\n if (Validation.isEmpty(DOM.getElementValueCurrent(element))) {\n DOM.setElementValueCurrent(element, data);\n }\n }\n static getCellFromElement(element) {\n return element.closest('td');\n }\n static getRowFromElement(element, flagRow) {\n let selector = Validation.isEmpty(flagRow) ? 'tr' : 'tr.' + flagRow;\n return element.closest(selector);\n }\n static getClosestParent(element, parentSelector) {\n let parent = element.parentElement;\n while (parent) {\n if (parent.matches(parentSelector)) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n }\n static convertForm2JSON(elementForm) {\n let dataForm = {};\n if (Validation.isEmpty(elementForm)) {\n return dataForm;\n }\n let containersFilter = elementForm.querySelectorAll('.' + flagContainerInput + '.' + flagFilter);\n let containerFilter, labelFilter, keyFilter, filter;\n for (let indexFilter = 0; indexFilter < containersFilter.length; indexFilter++) {\n containerFilter = containersFilter[indexFilter];\n labelFilter = containerFilter.querySelector('label');\n keyFilter = labelFilter.getAttribute('for');\n filter = containerFilter.querySelector(`#${keyFilter}`);\n dataForm[keyFilter] = DOM.getElementValueCurrent(filter);\n }\n return dataForm;\n }\n static loadPageBody(contentNew) {\n let pageBody = document.querySelector(idPageBody);\n pageBody.innerHTML = contentNew;\n }\n static getHashPageCurrent() {\n const hashPageCurrent = document.body.dataset.page;\n return hashPageCurrent;\n }\n static updateAndCheckIsElementDirty(element) {\n element.setAttribute(attrValueCurrent, DOM.getElementValueCurrent(element));\n return DOM.isElementDirty(element);\n }\n static isElementDirty(element) {\n let isDirty = element.getAttribute(attrValuePrevious) != element.getAttribute(attrValueCurrent);\n DOM.handleDirtyElement(element, isDirty);\n return isDirty;\n }\n static handleDirtyElement(element, isDirty) {\n DOM.toggleElementHasClassnameFlag(element, isDirty, flagDirty);\n }\n static toggleElementHasClassnameFlag(element, elementHasFlag, flag) {\n let elementAlreadyHasFlag = element.classList.contains(flag);\n if (elementHasFlag == elementAlreadyHasFlag) return;\n if (elementHasFlag) {\n element.classList.add(flag);\n } else {\n element.classList.remove(flag);\n }\n }\n static hasDirtyChildrenContainer(container) {\n if (container == null) return false;\n return container.querySelector('.' + flagDirty) != null;\n }\n static hasDirtyChildrenNotDeletedContainer(container) {\n if (container == null || container.classList.contains(flagDelete)) return false;\n return container.querySelector('.' + flagDirty + ':not(.' + flagDelete + ', .' + flagDelete + ' *)') != null;\n }\n static getElementValueCurrent(element) {\n let returnVal = '';\n \n if (!Validation.isEmpty(element)) {\n \n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n returnVal = element.checked;\n }\n /*\n else if (element.classList.contains(flagIsDatePicker)) {\n returnVal = getDatePickerDate(element, adjust4DayLightSavings);\n }\n */\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n returnVal = element.value;\n }\n else if (element.classList.contains(flagButton) && element.classList.contains(flagActive)) { // tagName === 'BUTTON'\n returnVal = element.classList.contains(flagDelete);\n }\n else if (tagName === 'TD') {\n returnVal = DOM.getElementAttributeValueCurrent(element);\n }\n else if (tagName == 'SVG' && element.classList.contains(flagCheckbox)) {\n returnVal = (element.classList.contains(flagIsChecked))\n }\n else {\n returnVal = element.textContent;\n }\n }\n \n if (Validation.isEmpty(returnVal)) returnVal = '';\n \n return returnVal;\n }\n static getElementAttributeValueCurrent(element) {\n // debugger;\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValueCurrent);\n }\n static getElementAttributeValuePrevious(element) {\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValuePrevious);\n }\n /* base_table.handleChangeElementCellTable\n static updateAndCheckIsTableElementDirty(element) {\n let wasDirty = DOM.isElementDirty(element);\n let row = DOM.getRowFromElement(element);\n let wasDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n let isDirty = DOM.updateAndCheckIsElementDirty(element);\n let cell = DOM.getCellFromElement(element);\n Utils.consoleLogIfNotProductionEnvironment({element, row, cell, isDirty, wasDirty});\n if (isDirty != wasDirty) {\n DOM.handleDirtyElement(cell, isDirty);\n let isDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(row, isDirtyRow);\n }\n }\n }\n */\n static scrollToElement(parent, element) {\n // REQUIRED: parent has scroll-bar\n parent.scrollTop(parent.scrollTop() + (element.offset().top - parent.offset().top));\n }\n static isElementInContainer(container, element) {\n\n if (typeof jQuery === 'function') {\n if (container instanceof jQuery) container = container[0];\n if (element instanceof jQuery) element = element[0];\n }\n\n var containerBounds = container.getBoundingClientRect();\n var elementBounds = element.getBoundingClientRect();\n\n return (\n containerBounds.top <= elementBounds.top &&\n containerBounds.left <= elementBounds.left &&\n ((elementBounds.top + elementBounds.height) <= (containerBounds.top + containerBounds.height)) &&\n ((elementBounds.left + elementBounds.width) <= (containerBounds.left + containerBounds.width))\n );\n }\n static alertError(errorType, errorText) {\n alert(errorType + '\\n' + errorText);\n }\n static createOptionUnselectedProductVariation() {\n return {\n [flagProductVariationType]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariationType],\n [flagName]: 'Select Variation Type',\n [attrIdProductVariationType]: 0,\n },\n [flagProductVariation]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariation],\n [flagName]: 'Select Variation',\n [attrIdProductVariation]: 0,\n },\n };\n }\n static createOption(optionJson) {\n if (Validation.isEmpty(optionJson)) optionJson = {\n text: 'Select',\n value: 0,\n };\n let option = document.createElement('option');\n option.value = optionJson.value;\n option.textContent = optionJson.text;\n option.selected = optionJson.selected;\n return option;\n }\n\n static escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n static unescapeHtml(html) {\n const div = document.createElement('div');\n div.innerHTML = html;\n return div.textContent || div.innerText || '';\n }\n}\n","\nexport default class Events {\n static initialiseEventHandler(selectorElement, classInitialised, eventHandler) {\n document.querySelectorAll(selectorElement).forEach(function(element) {\n if (element.classList.contains(classInitialised)) return;\n eventHandler(element);\n element.classList.add(classInitialised);\n });\n }\n static hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n}","\nimport Validation from \"./validation.js\";\n\nexport default class LocalStorage {\n/*\nfunction getPageLocalStorage(pageHash) {\n\n let ls;\n try {\n ls = JSON.parse(localStorage.getItem(pageHash));\n } catch {\n\n }\n\n if (Validation.isEmpty(ls)) return {}\n\n return ls;\n}\nfunction getPageLocalStorageCurrent() {\n\n return JSON.parse(localStorage.getItem(hashPageCurrent));\n}\n\nfunction setPageLocalStorage(pageHash, newLS) {\n\n localStorage.setItem(pageHash, JSON.stringify(newLS));\n}\n\nfunction clearPageLocalStorage(pageHash) {\n localStorage.removeItem(pageHash);\n}\n\nfunction setupPageLocalStorage(pageHash) {\n\n let ls = getPageLocalStorage(pageHash);\n\n if (Validation.isEmpty(ls)) ls = {};\n\n setPageLocalStorage(pageHash, ls);\n}\n*/\n\n static getLocalStorage(key) {\n return JSON.parse(localStorage.getItem(key));\n }\n\n static setLocalStorage(key, newLS) {\n localStorage.setItem(key, JSON.stringify(newLS));\n }\n\n/*\nfunction setupPageLocalStorageNext(pageHashNext) {\n let lsOld = getPageLocalStorage(hashPageCurrent);\n hashPageCurrent = pageHashNext;\n clearPageLocalStorage(hashPageCurrent);\n setupPageLocalStorage(hashPageCurrent);\n let lsNew = getPageLocalStorage(hashPageCurrent);\n lsNew[keyBasket] = (keyBasket in lsOld) ? lsOld[keyBasket] : {'items': []};\n setPageLocalStorage(hashPageCurrent, lsNew);\n}\n*/\n}","import DOM from './dom.js';\n\nexport default class API {\n \n static getCsrfToken() {\n return document.querySelector(idCSRFToken).getAttribute('content');\n }\n \n static async request(hashEndpoint, method = 'GET', data = null, params = null) {\n const url = API.getUrlFromHash(hashEndpoint, params);\n const csrfToken = API.getCsrfToken();\n const options = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n [flagCsrfToken]: csrfToken,\n }\n };\n\n if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {\n data = { \n ...data, \n [flagCsrfToken]: csrfToken,\n };\n options.body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, options);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error('API request failed:', error);\n throw error;\n }\n }\n \n static getUrlFromHash(hash, params = null) {\n if (hash == null) hash = hashPageHome;\n let url = API.parameteriseUrl(_pathHost + hash, params);\n return url;\n }\n static parameteriseUrl(url, params) {\n if (params) {\n url += '?' + new URLSearchParams(params).toString();\n }\n return url;\n }\n static goToUrl(url) {\n window.location.href = url;\n }\n static goToHash(hash, params = null) {\n const url = API.getUrlFromHash(hash, params);\n API.goToUrl(url);\n }\n\n // specific api calls\n /* Example:\n getUsers: () => request('/users'),\n getUserById: (id) => request(`/users/${id}`),\n createUser: (userData) => request('/users', 'POST', userData),\n updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData),\n deleteUser: (id) => request(`/users/${id}`, 'DELETE'),\n */\n\n // User\n static async loginUser() {\n let callback = {};\n callback[flagCallback] = DOM.getHashPageCurrent();\n return await API.request(hashPageUserLogin, 'POST', callback);\n }\n static async saveUsers(users, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagUser] = users;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogUser, 'POST', dataRequest);\n }\n \n\n // dog\n // Command categories\n static async saveCommandCategories(commandCategories, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandCategory] = commandCategories;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandCategory, 'POST', dataRequest);\n }\n \n // Commands\n static async saveCommands(commands, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommand] = commands;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommand, 'POST', dataRequest);\n }\n \n // Dog Command Links\n static async saveDogCommandLinks(dogCommandLinks, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagDogCommandLink] = dogCommandLinks;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogDogCommandLink, 'POST', dataRequest);\n }\n \n // Locations\n static async saveLocations(locations, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagLocation] = locations;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogLocation, 'POST', dataRequest);\n }\n \n // Button Icons\n static async saveButtonIcons(buttonIcons, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagButtonIcon] = buttonIcons;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogButtonIcon, 'POST', dataRequest);\n }\n \n // Command Button Links\n static async saveCommandButtonLinks(links, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandButtonLink] = links;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessments(assessments, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessment, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessmentsDistractionsAndResponses(assessments, formFilters, comment) {\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = null;\n let dataRequest = {};\n dataRequest[flagFormFilters] = filtersJson;\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest);\n }\n \n}\n","// Utility functions\n/*\nfunction $(selector) {\n return document.querySelector(selector);\n}\n\nfunction $$(selector) {\n return document.querySelectorAll(selector);\n}\n*/\nexport default class Utils {\n static getListFromDict(dict) {\n let list = [];\n for (let key in dict) {\n list.push(dict[key]);\n }\n return list;\n }\n static consoleLogIfNotProductionEnvironment(message) {\n if (environment.is_production != \"true\") {\n console.log(message);\n }\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayConfirm {\n static hookup(callbackSuccess) {\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.style.visibility = 'hidden';\n });\n });\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagSubmit, flagInitialised, (buttonConfirm) => {\n buttonConfirm.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n let textarea = overlay.querySelector('textarea');\n overlay.style.visibility = 'hidden';\n callbackSuccess(textarea.value);\n });\n });\n }\n static show() {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.classList.remove(flagIsCollapsed);\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\nimport Validation from \"../lib/validation.js\";\n\nexport default class BasePage {\n constructor(router) {\n if (!router) {\n throw new Error(\"Router is required\");\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"initialising with router: \", router);\n }\n this.router = router;\n this.title = titlePageCurrent;\n if (this.constructor === BasePage) {\n throw new Error(\"Cannot instantiate abstract class\");\n }\n \n if (!this.constructor.hash) {\n throw new Error(`Class ${this.constructor.name} must have a static hash attribute.`);\n }\n }\n\n initialize() {\n throw new Error(\"Method 'initialize()' must be implemented.\");\n }\n\n sharedInitialize() {\n this.logInitialisation();\n this.hookupCommonElements();\n }\n\n logInitialisation() {\n Utils.consoleLogIfNotProductionEnvironment('Initialising ' + this.title + ' page');\n }\n \n hookupCommonElements() {\n // hookupVideos();\n this.hookupLogos();\n this.hookupNavigation();\n this.hookupOverlays();\n }\n hookupLogos() {\n Events.hookupEventHandler(\"click\", \".\" + flagImageLogo + \",\" + \".\" + flagLogo, (event, element) => {\n Utils.consoleLogIfNotProductionEnvironment('clicking logo');\n this.router.navigateToHash(hashPageHome);\n });\n }\n /*\n hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n */\n hookupNavigation() {\n Events.hookupEventHandler(\"click\", idButtonHamburger, (event, element) => {\n let overlayHamburger = document.querySelector(idOverlayHamburger);\n if (overlayHamburger.classList.contains(flagIsCollapsed)) {\n overlayHamburger.classList.remove(flagIsCollapsed);\n overlayHamburger.classList.add(flagExpanded);\n } else {\n overlayHamburger.classList.remove(flagExpanded);\n overlayHamburger.classList.add(flagIsCollapsed);\n }\n });\n\n this.hookupButtonsNavUserAccount();\n this.hookupButtonsNavUserLogout();\n this.hookupButtonsNavUserLogin();\n }\n hookupButtonsNav(buttonSelector) {\n Events.hookupEventHandler(\"click\", buttonSelector, (event, button) => {\n let pageHash = buttonSelector.getAttribute('href');\n this.router.navigateToHash(pageHash); \n });\n }\n hookupButtonsNavUserAccount() {\n // this.hookupButtonsNav('.' + flagNavUserAccount);\n }\n hookupButtonsNavUserLogout() {\n // this.hookupButtonsNav('.' + flagNavUserLogout);\n }\n hookupButtonsNavUserLogin() {\n Events.hookupEventHandler(\"click\", '.' + flagNavUserLogin, (event, navigator) => { \n event.stopPropagation();\n this.leave();\n API.loginUser()\n .then((response) => {\n if (response.Success) {\n window.location.href = response[flagCallback];\n } else {\n DOM.alertError(\"Error\", response.Message);\n }\n });\n });\n }\n\n hookupOverlays() {\n this.hookupOverlayFromId(idOverlayConfirm);\n this.hookupOverlayFromId(idOverlayError);\n }\n\n hookupOverlayFromId(idOverlay) {\n Events.initialiseEventHandler(idOverlay, flagInitialised, (overlay) => {\n overlay.querySelector('button.' + flagCancel).addEventListener(\"click\", (event) => {\n event.stopPropagation();\n overlay.style.display = 'none';\n });\n });\n }\n\n hookupButtonSave() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagSave, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n Utils.consoleLogIfNotProductionEnvironment('saving page: ', this.title);\n OverlayConfirm.show();\n });\n });\n }\n\n leave() {\n Utils.consoleLogIfNotProductionEnvironment('Leaving ' + this.title + ' page');\n if (this.constructor === BasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n }\n setLocalStoragePage(dataPage) {\n LocalStorage.setLocalStorage(this.hash, dataPage);\n }\n getLocalStoragePage() {\n return LocalStorage.getLocalStorage(this.hash);\n }\n\n toggleShowButtonsSaveCancel(show, buttonContainerSelector = null) { // , buttonSave = null, buttonCancel = null\n if (Validation.isEmpty(buttonContainerSelector)) buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel;\n let buttonSave = document.querySelector(buttonContainerSelector + ' ' + idButtonSave);\n let buttonCancel = document.querySelector(buttonContainerSelector + ' ' + idButtonCancel);\n Utils.consoleLogIfNotProductionEnvironment({ show, buttonContainerSelector, buttonCancel, buttonSave });\n if (show) {\n buttonCancel.classList.remove(flagIsCollapsed);\n buttonSave.classList.remove(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('showing buttons');\n } else {\n buttonCancel.classList.add(flagIsCollapsed);\n buttonSave.classList.add(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('hiding buttons');\n }\n }\n\n static isDirtyFilter(filter) {\n let isDirty = DOM.updateAndCheckIsElementDirty(filter);\n if (isDirty) document.querySelectorAll(idTableMain + ' tbody tr').remove();\n return isDirty;\n }\n\n}","\n// internal\nimport BasePage from \"../base.js\";\n// external\n\n\nexport default class PageHome extends BasePage {\n static hash = hashPageHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n // this.hookupButtonsNav();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","var hi = Object.defineProperty;\nvar Or = (e) => {\n throw TypeError(e);\n};\nvar gi = (e, t, r) => t in e ? hi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;\nvar ne = (e, t, r) => gi(e, typeof t != \"symbol\" ? t + \"\" : t, r), zr = (e, t, r) => t.has(e) || Or(\"Cannot \" + r);\nvar H = (e, t, r) => (zr(e, t, \"read from private field\"), r ? r.call(e) : t.get(e)), Mt = (e, t, r) => t.has(e) ? Or(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Ut = (e, t, r, l) => (zr(e, t, \"write to private field\"), l ? l.call(e, r) : t.set(e, r), r);\nconst en = `(function(){\"use strict\";const d=new TextEncoder;function p(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}async function b(e,t,r){if(typeof crypto>\"u\"||!(\"subtle\"in crypto)||!(\"digest\"in crypto.subtle))throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");return p(await crypto.subtle.digest(r.toUpperCase(),d.encode(e+t)))}function w(e,t,r=\"SHA-256\",n=1e6,s=0){const o=new AbortController,a=Date.now();return{promise:(async()=>{for(let c=s;c<=n;c+=1){if(o.signal.aborted)return null;if(await b(t,c,r)===e)return{number:c,took:Date.now()-a}}return null})(),controller:o}}function h(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n{for(let u=n;u<=r;u+=1){if(o.signal.aborted||!c||!y)return null;try{const f=await crypto.subtle.decrypt({name:s,iv:g(u)},c,y);if(f)return{clearText:new TextDecoder().decode(f),took:Date.now()-a}}catch{}}return null};let c=null,y=null;try{y=h(e);const u=await crypto.subtle.digest(\"SHA-256\",d.encode(t));c=await crypto.subtle.importKey(\"raw\",u,s,!1,[\"decrypt\"])}catch{return{promise:Promise.reject(),controller:o}}return{promise:l(),controller:o}}let i;onmessage=async e=>{const{type:t,payload:r,start:n,max:s}=e.data;let o=null;if(t===\"abort\")i==null||i.abort(),i=void 0;else if(t===\"work\"){if(\"obfuscated\"in r){const{key:a,obfuscated:l}=r||{};o=await m(l,a,s,n)}else{const{algorithm:a,challenge:l,salt:c}=r||{};o=w(l,c,a,s,n)}i=o.controller,o.promise.then(a=>{self.postMessage(a&&{...a,worker:!0})})}}})();\n`, Fr = typeof self < \"u\" && self.Blob && new Blob([en], { type: \"text/javascript;charset=utf-8\" });\nfunction _i(e) {\n let t;\n try {\n if (t = Fr && (self.URL || self.webkitURL).createObjectURL(Fr), !t) throw \"\";\n const r = new Worker(t, {\n name: e == null ? void 0 : e.name\n });\n return r.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(t);\n }), r;\n } catch {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(en),\n {\n name: e == null ? void 0 : e.name\n }\n );\n } finally {\n t && (self.URL || self.webkitURL).revokeObjectURL(t);\n }\n}\nconst mi = \"5\";\nvar Qr;\ntypeof window < \"u\" && ((Qr = window.__svelte ?? (window.__svelte = {})).v ?? (Qr.v = /* @__PURE__ */ new Set())).add(mi);\nconst wi = 1, pi = 4, yi = 8, bi = 16, Ei = 1, xi = 2, Wt = \"[\", tn = \"[!\", rn = \"]\", Je = {}, W = Symbol(), $i = \"http://www.w3.org/1999/xhtml\", Mr = !1, oe = 2, nn = 4, It = 8, Yt = 16, pe = 32, ze = 64, yt = 128, re = 256, bt = 512, K = 1024, ye = 2048, et = 4096, Ke = 8192, St = 16384, ki = 32768, Zt = 65536, Ci = 1 << 19, ln = 1 << 20, ut = Symbol(\"$state\"), an = Symbol(\"legacy props\"), Ai = Symbol(\"\");\nvar on = Array.isArray, Ri = Array.prototype.indexOf, Ii = Array.from, Et = Object.keys, xt = Object.defineProperty, Pe = Object.getOwnPropertyDescriptor, Si = Object.getOwnPropertyDescriptors, Ti = Object.prototype, Ni = Array.prototype, sn = Object.getPrototypeOf;\nfunction fn(e) {\n for (var t = 0; t < e.length; t++)\n e[t]();\n}\nconst Li = typeof requestIdleCallback > \"u\" ? (e) => setTimeout(e, 1) : requestIdleCallback;\nlet dt = [], vt = [];\nfunction un() {\n var e = dt;\n dt = [], fn(e);\n}\nfunction cn() {\n var e = vt;\n vt = [], fn(e);\n}\nfunction Gt(e) {\n dt.length === 0 && queueMicrotask(un), dt.push(e);\n}\nfunction Di(e) {\n vt.length === 0 && Li(cn), vt.push(e);\n}\nfunction Ur() {\n dt.length > 0 && un(), vt.length > 0 && cn();\n}\nfunction dn(e) {\n return e === this.v;\n}\nfunction Pi(e, t) {\n return e != e ? t == t : e !== t || e !== null && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction vn(e) {\n return !Pi(e, this.v);\n}\nfunction Oi(e) {\n throw new Error(\"https://svelte.dev/e/effect_in_teardown\");\n}\nfunction zi() {\n throw new Error(\"https://svelte.dev/e/effect_in_unowned_derived\");\n}\nfunction Fi(e) {\n throw new Error(\"https://svelte.dev/e/effect_orphan\");\n}\nfunction Mi() {\n throw new Error(\"https://svelte.dev/e/effect_update_depth_exceeded\");\n}\nfunction Ui() {\n throw new Error(\"https://svelte.dev/e/hydration_failed\");\n}\nfunction ji(e) {\n throw new Error(\"https://svelte.dev/e/props_invalid_value\");\n}\nfunction Vi() {\n throw new Error(\"https://svelte.dev/e/state_descriptors_fixed\");\n}\nfunction Bi() {\n throw new Error(\"https://svelte.dev/e/state_prototype_fixed\");\n}\nfunction qi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_local_read\");\n}\nfunction Hi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_mutation\");\n}\nlet Wi = !1;\nfunction ue(e, t) {\n var r = {\n f: 0,\n // TODO ideally we could skip this altogether, but it causes type errors\n v: e,\n reactions: null,\n equals: dn,\n rv: 0,\n wv: 0\n };\n return r;\n}\nfunction He(e) {\n return /* @__PURE__ */ Yi(ue(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction hn(e, t = !1) {\n const r = ue(e);\n return t || (r.equals = vn), r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yi(e) {\n return k !== null && !ae && (k.f & oe) !== 0 && (ce === null ? Qi([e]) : ce.push(e)), e;\n}\nfunction P(e, t) {\n return k !== null && !ae && Dn() && (k.f & (oe | Yt)) !== 0 && // If the source was created locally within the current derived, then\n // we allow the mutation.\n (ce === null || !ce.includes(e)) && Hi(), Zi(e, t);\n}\nfunction Zi(e, t) {\n return e.equals(t) || (e.v, e.v = t, e.wv = En(), gn(e, ye), A !== null && (A.f & K) !== 0 && (A.f & (pe | ze)) === 0 && (ge === null ? el([e]) : ge.push(e))), t;\n}\nfunction gn(e, t) {\n var r = e.reactions;\n if (r !== null)\n for (var l = r.length, i = 0; i < l; i++) {\n var a = r[i], o = a.f;\n (o & ye) === 0 && (de(a, t), (o & (K | re)) !== 0 && ((o & oe) !== 0 ? gn(\n /** @type {Derived} */\n a,\n et\n ) : Lt(\n /** @type {Effect} */\n a\n )));\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction De(e) {\n var t = oe | ye, r = k !== null && (k.f & oe) !== 0 ? (\n /** @type {Derived} */\n k\n ) : null;\n return A === null || r !== null && (r.f & re) !== 0 ? t |= re : A.f |= ln, {\n ctx: B,\n deps: null,\n effects: null,\n equals: dn,\n f: t,\n fn: e,\n reactions: null,\n rv: 0,\n v: (\n /** @type {V} */\n null\n ),\n wv: 0,\n parent: r ?? A\n };\n}\nfunction _n(e) {\n var t = e.effects;\n if (t !== null) {\n e.effects = null;\n for (var r = 0; r < t.length; r += 1)\n we(\n /** @type {Effect} */\n t[r]\n );\n }\n}\nfunction Gi(e) {\n for (var t = e.parent; t !== null; ) {\n if ((t.f & oe) === 0)\n return (\n /** @type {Effect} */\n t\n );\n t = t.parent;\n }\n return null;\n}\nfunction Ji(e) {\n var t, r = A;\n Se(Gi(e));\n try {\n _n(e), t = $n(e);\n } finally {\n Se(r);\n }\n return t;\n}\nfunction mn(e) {\n var t = Ji(e), r = (Ce || (e.f & re) !== 0) && e.deps !== null ? et : K;\n de(e, r), e.equals(t) || (e.v = t, e.wv = En());\n}\nfunction Tt(e) {\n console.warn(\"https://svelte.dev/e/hydration_mismatch\");\n}\nlet D = !1;\nfunction Ge(e) {\n D = e;\n}\nlet O;\nfunction Re(e) {\n if (e === null)\n throw Tt(), Je;\n return O = e;\n}\nfunction Xe() {\n return Re(\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(O)\n );\n}\nfunction Z(e) {\n if (D) {\n if (/* @__PURE__ */ Te(O) !== null)\n throw Tt(), Je;\n O = e;\n }\n}\nfunction Ki() {\n for (var e = 0, t = O; ; ) {\n if (t.nodeType === 8) {\n var r = (\n /** @type {Comment} */\n t.data\n );\n if (r === rn) {\n if (e === 0) return t;\n e -= 1;\n } else (r === Wt || r === tn) && (e += 1);\n }\n var l = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(t)\n );\n t.remove(), t = l;\n }\n}\nfunction le(e, t = null, r) {\n if (typeof e != \"object\" || e === null || ut in e)\n return e;\n const l = sn(e);\n if (l !== Ti && l !== Ni)\n return e;\n var i = /* @__PURE__ */ new Map(), a = on(e), o = ue(0);\n a && i.set(\"length\", ue(\n /** @type {any[]} */\n e.length\n ));\n var f;\n return new Proxy(\n /** @type {any} */\n e,\n {\n defineProperty(s, c, v) {\n (!(\"value\" in v) || v.configurable === !1 || v.enumerable === !1 || v.writable === !1) && Vi();\n var h = i.get(c);\n return h === void 0 ? (h = ue(v.value), i.set(c, h)) : P(h, le(v.value, f)), !0;\n },\n deleteProperty(s, c) {\n var v = i.get(c);\n if (v === void 0)\n c in s && i.set(c, ue(W));\n else {\n if (a && typeof c == \"string\") {\n var h = (\n /** @type {Source} */\n i.get(\"length\")\n ), g = Number(c);\n Number.isInteger(g) && g < h.v && P(h, g);\n }\n P(v, W), jr(o);\n }\n return !0;\n },\n get(s, c, v) {\n var w;\n if (c === ut)\n return e;\n var h = i.get(c), g = c in s;\n if (h === void 0 && (!g || (w = Pe(s, c)) != null && w.writable) && (h = ue(le(g ? s[c] : W, f)), i.set(c, h)), h !== void 0) {\n var m = d(h);\n return m === W ? void 0 : m;\n }\n return Reflect.get(s, c, v);\n },\n getOwnPropertyDescriptor(s, c) {\n var v = Reflect.getOwnPropertyDescriptor(s, c);\n if (v && \"value\" in v) {\n var h = i.get(c);\n h && (v.value = d(h));\n } else if (v === void 0) {\n var g = i.get(c), m = g == null ? void 0 : g.v;\n if (g !== void 0 && m !== W)\n return {\n enumerable: !0,\n configurable: !0,\n value: m,\n writable: !0\n };\n }\n return v;\n },\n has(s, c) {\n var m;\n if (c === ut)\n return !0;\n var v = i.get(c), h = v !== void 0 && v.v !== W || Reflect.has(s, c);\n if (v !== void 0 || A !== null && (!h || (m = Pe(s, c)) != null && m.writable)) {\n v === void 0 && (v = ue(h ? le(s[c], f) : W), i.set(c, v));\n var g = d(v);\n if (g === W)\n return !1;\n }\n return h;\n },\n set(s, c, v, h) {\n var F;\n var g = i.get(c), m = c in s;\n if (a && c === \"length\")\n for (var w = v; w < /** @type {Source} */\n g.v; w += 1) {\n var z = i.get(w + \"\");\n z !== void 0 ? P(z, W) : w in s && (z = ue(W), i.set(w + \"\", z));\n }\n g === void 0 ? (!m || (F = Pe(s, c)) != null && F.writable) && (g = ue(void 0), P(g, le(v, f)), i.set(c, g)) : (m = g.v !== W, P(g, le(v, f)));\n var T = Reflect.getOwnPropertyDescriptor(s, c);\n if (T != null && T.set && T.set.call(h, v), !m) {\n if (a && typeof c == \"string\") {\n var Y = (\n /** @type {Source} */\n i.get(\"length\")\n ), M = Number(c);\n Number.isInteger(M) && M >= Y.v && P(Y, M + 1);\n }\n jr(o);\n }\n return !0;\n },\n ownKeys(s) {\n d(o);\n var c = Reflect.ownKeys(s).filter((g) => {\n var m = i.get(g);\n return m === void 0 || m.v !== W;\n });\n for (var [v, h] of i)\n h.v !== W && !(v in s) && c.push(v);\n return c;\n },\n setPrototypeOf() {\n Bi();\n }\n }\n );\n}\nfunction jr(e, t = 1) {\n P(e, e.v + t);\n}\nvar Vr, wn, pn, yn;\nfunction jt() {\n if (Vr === void 0) {\n Vr = window, wn = /Firefox/.test(navigator.userAgent);\n var e = Element.prototype, t = Node.prototype;\n pn = Pe(t, \"firstChild\").get, yn = Pe(t, \"nextSibling\").get, e.__click = void 0, e.__className = void 0, e.__attributes = null, e.__style = void 0, e.__e = void 0, Text.prototype.__t = void 0;\n }\n}\nfunction Jt(e = \"\") {\n return document.createTextNode(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction me(e) {\n return pn.call(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction Te(e) {\n return yn.call(e);\n}\nfunction G(e, t) {\n if (!D)\n return /* @__PURE__ */ me(e);\n var r = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(O)\n );\n return r === null && (r = O.appendChild(Jt())), Re(r), r;\n}\nfunction Br(e, t) {\n if (!D) {\n var r = (\n /** @type {DocumentFragment} */\n /* @__PURE__ */ me(\n /** @type {Node} */\n e\n )\n );\n return r instanceof Comment && r.data === \"\" ? /* @__PURE__ */ Te(r) : r;\n }\n return O;\n}\nfunction he(e, t = 1, r = !1) {\n let l = D ? O : e;\n for (var i; t--; )\n i = l, l = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l);\n if (!D)\n return l;\n var a = l == null ? void 0 : l.nodeType;\n if (r && a !== 3) {\n var o = Jt();\n return l === null ? i == null || i.after(o) : l.before(o), Re(o), o;\n }\n return Re(l), /** @type {TemplateNode} */\n l;\n}\nfunction Xi(e) {\n e.textContent = \"\";\n}\nlet wt = !1, $t = !1, kt = null, Oe = !1, Kt = !1;\nfunction qr(e) {\n Kt = e;\n}\nlet ct = [];\nlet k = null, ae = !1;\nfunction Ie(e) {\n k = e;\n}\nlet A = null;\nfunction Se(e) {\n A = e;\n}\nlet ce = null;\nfunction Qi(e) {\n ce = e;\n}\nlet V = null, J = 0, ge = null;\nfunction el(e) {\n ge = e;\n}\nlet bn = 1, Ct = 0, Ce = !1;\nfunction En() {\n return ++bn;\n}\nfunction ht(e) {\n var h;\n var t = e.f;\n if ((t & ye) !== 0)\n return !0;\n if ((t & et) !== 0) {\n var r = e.deps, l = (t & re) !== 0;\n if (r !== null) {\n var i, a, o = (t & bt) !== 0, f = l && A !== null && !Ce, s = r.length;\n if (o || f) {\n var c = (\n /** @type {Derived} */\n e\n ), v = c.parent;\n for (i = 0; i < s; i++)\n a = r[i], (o || !((h = a == null ? void 0 : a.reactions) != null && h.includes(c))) && (a.reactions ?? (a.reactions = [])).push(c);\n o && (c.f ^= bt), f && v !== null && (v.f & re) === 0 && (c.f ^= re);\n }\n for (i = 0; i < s; i++)\n if (a = r[i], ht(\n /** @type {Derived} */\n a\n ) && mn(\n /** @type {Derived} */\n a\n ), a.wv > e.wv)\n return !0;\n }\n (!l || A !== null && !Ce) && de(e, K);\n }\n return !1;\n}\nfunction tl(e, t) {\n for (var r = t; r !== null; ) {\n if ((r.f & yt) !== 0)\n try {\n r.fn(e);\n return;\n } catch {\n r.f ^= yt;\n }\n r = r.parent;\n }\n throw wt = !1, e;\n}\nfunction rl(e) {\n return (e.f & St) === 0 && (e.parent === null || (e.parent.f & yt) === 0);\n}\nfunction Nt(e, t, r, l) {\n if (wt) {\n if (r === null && (wt = !1), rl(t))\n throw e;\n return;\n }\n r !== null && (wt = !0);\n {\n tl(e, t);\n return;\n }\n}\nfunction xn(e, t, r = !0) {\n var l = e.reactions;\n if (l !== null)\n for (var i = 0; i < l.length; i++) {\n var a = l[i];\n (a.f & oe) !== 0 ? xn(\n /** @type {Derived} */\n a,\n t,\n !1\n ) : t === a && (r ? de(a, ye) : (a.f & K) !== 0 && de(a, et), Lt(\n /** @type {Effect} */\n a\n ));\n }\n}\nfunction $n(e) {\n var m;\n var t = V, r = J, l = ge, i = k, a = Ce, o = ce, f = B, s = ae, c = e.f;\n V = /** @type {null | Value[]} */\n null, J = 0, ge = null, Ce = (c & re) !== 0 && (ae || !Oe || k === null), k = (c & (pe | ze)) === 0 ? e : null, ce = null, Wr(e.ctx), ae = !1, Ct++;\n try {\n var v = (\n /** @type {Function} */\n (0, e.fn)()\n ), h = e.deps;\n if (V !== null) {\n var g;\n if (At(e, J), h !== null && J > 0)\n for (h.length = J + V.length, g = 0; g < V.length; g++)\n h[J + g] = V[g];\n else\n e.deps = h = V;\n if (!Ce)\n for (g = J; g < h.length; g++)\n ((m = h[g]).reactions ?? (m.reactions = [])).push(e);\n } else h !== null && J < h.length && (At(e, J), h.length = J);\n if (Dn() && ge !== null && !ae && h !== null && (e.f & (oe | et | ye)) === 0)\n for (g = 0; g < /** @type {Source[]} */\n ge.length; g++)\n xn(\n ge[g],\n /** @type {Effect} */\n e\n );\n return i !== null && Ct++, v;\n } finally {\n V = t, J = r, ge = l, k = i, Ce = a, ce = o, Wr(f), ae = s;\n }\n}\nfunction nl(e, t) {\n let r = t.reactions;\n if (r !== null) {\n var l = Ri.call(r, e);\n if (l !== -1) {\n var i = r.length - 1;\n i === 0 ? r = t.reactions = null : (r[l] = r[i], r.pop());\n }\n }\n r === null && (t.f & oe) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear\n // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n // allows us to skip the expensive work of disconnecting and immediately reconnecting it\n (V === null || !V.includes(t)) && (de(t, et), (t.f & (re | bt)) === 0 && (t.f ^= bt), _n(\n /** @type {Derived} **/\n t\n ), At(\n /** @type {Derived} **/\n t,\n 0\n ));\n}\nfunction At(e, t) {\n var r = e.deps;\n if (r !== null)\n for (var l = t; l < r.length; l++)\n nl(e, r[l]);\n}\nfunction Xt(e) {\n var t = e.f;\n if ((t & St) === 0) {\n de(e, K);\n var r = A, l = B, i = Oe;\n A = e, Oe = !0;\n try {\n (t & Yt) !== 0 ? hl(e) : An(e), Cn(e);\n var a = $n(e);\n e.teardown = typeof a == \"function\" ? a : null, e.wv = bn;\n var o = e.deps, f;\n Mr && Wi && e.f & ye;\n } catch (s) {\n Nt(s, e, r, l || e.ctx);\n } finally {\n Oe = i, A = r;\n }\n }\n}\nfunction il() {\n try {\n Mi();\n } catch (e) {\n if (kt !== null)\n Nt(e, kt, null);\n else\n throw e;\n }\n}\nfunction kn() {\n var e = Oe;\n try {\n var t = 0;\n for (Oe = !0; ct.length > 0; ) {\n t++ > 1e3 && il();\n var r = ct, l = r.length;\n ct = [];\n for (var i = 0; i < l; i++) {\n var a = al(r[i]);\n ll(a);\n }\n }\n } finally {\n $t = !1, Oe = e, kt = null;\n }\n}\nfunction ll(e) {\n var t = e.length;\n if (t !== 0)\n for (var r = 0; r < t; r++) {\n var l = e[r];\n if ((l.f & (St | Ke)) === 0)\n try {\n ht(l) && (Xt(l), l.deps === null && l.first === null && l.nodes_start === null && (l.teardown === null ? Rn(l) : l.fn = null));\n } catch (i) {\n Nt(i, l, null, l.ctx);\n }\n }\n}\nfunction Lt(e) {\n $t || ($t = !0, queueMicrotask(kn));\n for (var t = kt = e; t.parent !== null; ) {\n t = t.parent;\n var r = t.f;\n if ((r & (ze | pe)) !== 0) {\n if ((r & K) === 0) return;\n t.f ^= K;\n }\n }\n ct.push(t);\n}\nfunction al(e) {\n for (var t = [], r = e; r !== null; ) {\n var l = r.f, i = (l & (pe | ze)) !== 0, a = i && (l & K) !== 0;\n if (!a && (l & Ke) === 0) {\n if ((l & nn) !== 0)\n t.push(r);\n else if (i)\n r.f ^= K;\n else {\n var o = k;\n try {\n k = r, ht(r) && Xt(r);\n } catch (c) {\n Nt(c, r, null, r.ctx);\n } finally {\n k = o;\n }\n }\n var f = r.first;\n if (f !== null) {\n r = f;\n continue;\n }\n }\n var s = r.parent;\n for (r = r.next; r === null && s !== null; )\n r = s.next, s = s.parent;\n }\n return t;\n}\nfunction $(e) {\n var t;\n for (Ur(); ct.length > 0; )\n $t = !0, kn(), Ur();\n return (\n /** @type {T} */\n t\n );\n}\nasync function ol() {\n await Promise.resolve(), $();\n}\nfunction d(e) {\n var t = e.f, r = (t & oe) !== 0;\n if (k !== null && !ae) {\n ce !== null && ce.includes(e) && qi();\n var l = k.deps;\n e.rv < Ct && (e.rv = Ct, V === null && l !== null && l[J] === e ? J++ : V === null ? V = [e] : (!Ce || !V.includes(e)) && V.push(e));\n } else if (r && /** @type {Derived} */\n e.deps === null && /** @type {Derived} */\n e.effects === null) {\n var i = (\n /** @type {Derived} */\n e\n ), a = i.parent;\n a !== null && (a.f & re) === 0 && (i.f ^= re);\n }\n return r && (i = /** @type {Derived} */\n e, ht(i) && mn(i)), e.v;\n}\nfunction Qe(e) {\n var t = ae;\n try {\n return ae = !0, e();\n } finally {\n ae = t;\n }\n}\nconst sl = -7169;\nfunction de(e, t) {\n e.f = e.f & sl | t;\n}\nfunction fl(e) {\n A === null && k === null && Fi(), k !== null && (k.f & re) !== 0 && A === null && zi(), Kt && Oi();\n}\nfunction ul(e, t) {\n var r = t.last;\n r === null ? t.last = t.first = e : (r.next = e, e.prev = r, t.last = e);\n}\nfunction Fe(e, t, r, l = !0) {\n var i = A, a = {\n ctx: B,\n deps: null,\n nodes_start: null,\n nodes_end: null,\n f: e | ye,\n first: null,\n fn: t,\n last: null,\n next: null,\n parent: i,\n prev: null,\n teardown: null,\n transitions: null,\n wv: 0\n };\n if (r)\n try {\n Xt(a), a.f |= ki;\n } catch (s) {\n throw we(a), s;\n }\n else t !== null && Lt(a);\n var o = r && a.deps === null && a.first === null && a.nodes_start === null && a.teardown === null && (a.f & (ln | yt)) === 0;\n if (!o && l && (i !== null && ul(a, i), k !== null && (k.f & oe) !== 0)) {\n var f = (\n /** @type {Derived} */\n k\n );\n (f.effects ?? (f.effects = [])).push(a);\n }\n return a;\n}\nfunction cl(e) {\n const t = Fe(It, null, !1);\n return de(t, K), t.teardown = e, t;\n}\nfunction Vt(e) {\n fl();\n var t = A !== null && (A.f & pe) !== 0 && B !== null && !B.m;\n if (t) {\n var r = (\n /** @type {ComponentContext} */\n B\n );\n (r.e ?? (r.e = [])).push({\n fn: e,\n effect: A,\n reaction: k\n });\n } else {\n var l = Qt(e);\n return l;\n }\n}\nfunction dl(e) {\n const t = Fe(ze, e, !0);\n return () => {\n we(t);\n };\n}\nfunction vl(e) {\n const t = Fe(ze, e, !0);\n return (r = {}) => new Promise((l) => {\n r.outro ? Bt(t, () => {\n we(t), l(void 0);\n }) : (we(t), l(void 0));\n });\n}\nfunction Qt(e) {\n return Fe(nn, e, !1);\n}\nfunction er(e) {\n return Fe(It, e, !0);\n}\nfunction We(e, t = [], r = De) {\n const l = t.map(r);\n return tr(() => e(...l.map(d)));\n}\nfunction tr(e, t = 0) {\n return Fe(It | Yt | t, e, !0);\n}\nfunction Rt(e, t = !0) {\n return Fe(It | pe, e, !0, t);\n}\nfunction Cn(e) {\n var t = e.teardown;\n if (t !== null) {\n const r = Kt, l = k;\n qr(!0), Ie(null);\n try {\n t.call(null);\n } finally {\n qr(r), Ie(l);\n }\n }\n}\nfunction An(e, t = !1) {\n var r = e.first;\n for (e.first = e.last = null; r !== null; ) {\n var l = r.next;\n (r.f & ze) !== 0 ? r.parent = null : we(r, t), r = l;\n }\n}\nfunction hl(e) {\n for (var t = e.first; t !== null; ) {\n var r = t.next;\n (t.f & pe) === 0 && we(t), t = r;\n }\n}\nfunction we(e, t = !0) {\n var r = !1;\n if ((t || (e.f & Ci) !== 0) && e.nodes_start !== null) {\n for (var l = e.nodes_start, i = e.nodes_end; l !== null; ) {\n var a = l === i ? null : (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l)\n );\n l.remove(), l = a;\n }\n r = !0;\n }\n An(e, t && !r), At(e, 0), de(e, St);\n var o = e.transitions;\n if (o !== null)\n for (const s of o)\n s.stop();\n Cn(e);\n var f = e.parent;\n f !== null && f.first !== null && Rn(e), e.next = e.prev = e.teardown = e.ctx = e.deps = e.fn = e.nodes_start = e.nodes_end = null;\n}\nfunction Rn(e) {\n var t = e.parent, r = e.prev, l = e.next;\n r !== null && (r.next = l), l !== null && (l.prev = r), t !== null && (t.first === e && (t.first = l), t.last === e && (t.last = r));\n}\nfunction Bt(e, t) {\n var r = [];\n In(e, r, !0), gl(r, () => {\n we(e), t && t();\n });\n}\nfunction gl(e, t) {\n var r = e.length;\n if (r > 0) {\n var l = () => --r || t();\n for (var i of e)\n i.out(l);\n } else\n t();\n}\nfunction In(e, t, r) {\n if ((e.f & Ke) === 0) {\n if (e.f ^= Ke, e.transitions !== null)\n for (const o of e.transitions)\n (o.is_global || r) && t.push(o);\n for (var l = e.first; l !== null; ) {\n var i = l.next, a = (l.f & Zt) !== 0 || (l.f & pe) !== 0;\n In(l, t, a ? r : !1), l = i;\n }\n }\n}\nfunction Hr(e) {\n Sn(e, !0);\n}\nfunction Sn(e, t) {\n if ((e.f & Ke) !== 0) {\n e.f ^= Ke, (e.f & K) === 0 && (e.f ^= K), ht(e) && (de(e, ye), Lt(e));\n for (var r = e.first; r !== null; ) {\n var l = r.next, i = (r.f & Zt) !== 0 || (r.f & pe) !== 0;\n Sn(r, i ? t : !1), r = l;\n }\n if (e.transitions !== null)\n for (const a of e.transitions)\n (a.is_global || t) && a.in();\n }\n}\nfunction Tn(e) {\n throw new Error(\"https://svelte.dev/e/lifecycle_outside_component\");\n}\nlet B = null;\nfunction Wr(e) {\n B = e;\n}\nfunction Nn(e, t = !1, r) {\n B = {\n p: B,\n c: null,\n e: null,\n m: !1,\n s: e,\n x: null,\n l: null\n };\n}\nfunction Ln(e) {\n const t = B;\n if (t !== null) {\n e !== void 0 && (t.x = e);\n const o = t.e;\n if (o !== null) {\n var r = A, l = k;\n t.e = null;\n try {\n for (var i = 0; i < o.length; i++) {\n var a = o[i];\n Se(a.effect), Ie(a.reaction), Qt(a.fn);\n }\n } finally {\n Se(r), Ie(l);\n }\n }\n B = t.p, t.m = !0;\n }\n return e || /** @type {T} */\n {};\n}\nfunction Dn() {\n return !0;\n}\nconst _l = [\"touchstart\", \"touchmove\"];\nfunction ml(e) {\n return _l.includes(e);\n}\nlet Yr = !1;\nfunction Pn() {\n Yr || (Yr = !0, document.addEventListener(\n \"reset\",\n (e) => {\n Promise.resolve().then(() => {\n var t;\n if (!e.defaultPrevented)\n for (\n const r of\n /**@type {HTMLFormElement} */\n e.target.elements\n )\n (t = r.__on_r) == null || t.call(r);\n });\n },\n // In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)\n { capture: !0 }\n ));\n}\nfunction On(e) {\n var t = k, r = A;\n Ie(null), Se(null);\n try {\n return e();\n } finally {\n Ie(t), Se(r);\n }\n}\nfunction wl(e, t, r, l = r) {\n e.addEventListener(t, () => On(r));\n const i = e.__on_r;\n i ? e.__on_r = () => {\n i(), l(!0);\n } : e.__on_r = () => l(!0), Pn();\n}\nconst zn = /* @__PURE__ */ new Set(), qt = /* @__PURE__ */ new Set();\nfunction pl(e, t, r, l = {}) {\n function i(a) {\n if (l.capture || ft.call(t, a), !a.cancelBubble)\n return On(() => r == null ? void 0 : r.call(this, a));\n }\n return e.startsWith(\"pointer\") || e.startsWith(\"touch\") || e === \"wheel\" ? Gt(() => {\n t.addEventListener(e, i, l);\n }) : t.addEventListener(e, i, l), i;\n}\nfunction yl(e, t, r, l, i) {\n var a = { capture: l, passive: i }, o = pl(e, t, r, a);\n (t === document.body || t === window || t === document) && cl(() => {\n t.removeEventListener(e, o, a);\n });\n}\nfunction bl(e) {\n for (var t = 0; t < e.length; t++)\n zn.add(e[t]);\n for (var r of qt)\n r(e);\n}\nfunction ft(e) {\n var M;\n var t = this, r = (\n /** @type {Node} */\n t.ownerDocument\n ), l = e.type, i = ((M = e.composedPath) == null ? void 0 : M.call(e)) || [], a = (\n /** @type {null | Element} */\n i[0] || e.target\n ), o = 0, f = e.__root;\n if (f) {\n var s = i.indexOf(f);\n if (s !== -1 && (t === document || t === /** @type {any} */\n window)) {\n e.__root = t;\n return;\n }\n var c = i.indexOf(t);\n if (c === -1)\n return;\n s <= c && (o = s);\n }\n if (a = /** @type {Element} */\n i[o] || e.target, a !== t) {\n xt(e, \"currentTarget\", {\n configurable: !0,\n get() {\n return a || r;\n }\n });\n var v = k, h = A;\n Ie(null), Se(null);\n try {\n for (var g, m = []; a !== null; ) {\n var w = a.assignedSlot || a.parentNode || /** @type {any} */\n a.host || null;\n try {\n var z = a[\"__\" + l];\n if (z != null && (!/** @type {any} */\n a.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n // -> the target could not have been disabled because it emits the event in the first place\n e.target === a))\n if (on(z)) {\n var [T, ...Y] = z;\n T.apply(a, [e, ...Y]);\n } else\n z.call(a, e);\n } catch (F) {\n g ? m.push(F) : g = F;\n }\n if (e.cancelBubble || w === t || w === null)\n break;\n a = w;\n }\n if (g) {\n for (let F of m)\n queueMicrotask(() => {\n throw F;\n });\n throw g;\n }\n } finally {\n e.__root = t, delete e.currentTarget, Ie(v), Se(h);\n }\n }\n}\nfunction rr(e) {\n var t = document.createElement(\"template\");\n return t.innerHTML = e, t.content;\n}\nfunction Ae(e, t) {\n var r = (\n /** @type {Effect} */\n A\n );\n r.nodes_start === null && (r.nodes_start = e, r.nodes_end = t);\n}\n// @__NO_SIDE_EFFECTS__\nfunction ve(e, t) {\n var r = (t & Ei) !== 0, l = (t & xi) !== 0, i, a = !e.startsWith(\"\");\n return () => {\n if (D)\n return Ae(O, null), O;\n i === void 0 && (i = rr(a ? e : \"\" + e), r || (i = /** @type {Node} */\n /* @__PURE__ */ me(i)));\n var o = (\n /** @type {TemplateNode} */\n l || wn ? document.importNode(i, !0) : i.cloneNode(!0)\n );\n if (r) {\n var f = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(o)\n ), s = (\n /** @type {TemplateNode} */\n o.lastChild\n );\n Ae(f, s);\n } else\n Ae(o, o);\n return o;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction El(e, t, r = \"svg\") {\n var l = !e.startsWith(\"\"), i = `<${r}>${l ? e : \"\" + e}`, a;\n return () => {\n if (D)\n return Ae(O, null), O;\n if (!a) {\n var o = (\n /** @type {DocumentFragment} */\n rr(i)\n ), f = (\n /** @type {Element} */\n /* @__PURE__ */ me(o)\n );\n a = /** @type {Element} */\n /* @__PURE__ */ me(f);\n }\n var s = (\n /** @type {TemplateNode} */\n a.cloneNode(!0)\n );\n return Ae(s, s), s;\n };\n}\nfunction ee(e, t) {\n if (D) {\n A.nodes_end = O, Xe();\n return;\n }\n e !== null && e.before(\n /** @type {Node} */\n t\n );\n}\nfunction Fn(e, t) {\n return Mn(e, t);\n}\nfunction xl(e, t) {\n jt(), t.intro = t.intro ?? !1;\n const r = t.target, l = D, i = O;\n try {\n for (var a = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(r)\n ); a && (a.nodeType !== 8 || /** @type {Comment} */\n a.data !== Wt); )\n a = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(a);\n if (!a)\n throw Je;\n Ge(!0), Re(\n /** @type {Comment} */\n a\n ), Xe();\n const o = Mn(e, { ...t, anchor: a });\n if (O === null || O.nodeType !== 8 || /** @type {Comment} */\n O.data !== rn)\n throw Tt(), Je;\n return Ge(!1), /** @type {Exports} */\n o;\n } catch (o) {\n if (o === Je)\n return t.recover === !1 && Ui(), jt(), Xi(r), Ge(!1), Fn(e, t);\n throw o;\n } finally {\n Ge(l), Re(i);\n }\n}\nconst Ye = /* @__PURE__ */ new Map();\nfunction Mn(e, { target: t, anchor: r, props: l = {}, events: i, context: a, intro: o = !0 }) {\n jt();\n var f = /* @__PURE__ */ new Set(), s = (h) => {\n for (var g = 0; g < h.length; g++) {\n var m = h[g];\n if (!f.has(m)) {\n f.add(m);\n var w = ml(m);\n t.addEventListener(m, ft, { passive: w });\n var z = Ye.get(m);\n z === void 0 ? (document.addEventListener(m, ft, { passive: w }), Ye.set(m, 1)) : Ye.set(m, z + 1);\n }\n }\n };\n s(Ii(zn)), qt.add(s);\n var c = void 0, v = vl(() => {\n var h = r ?? t.appendChild(Jt());\n return Rt(() => {\n if (a) {\n Nn({});\n var g = (\n /** @type {ComponentContext} */\n B\n );\n g.c = a;\n }\n i && (l.$$events = i), D && Ae(\n /** @type {TemplateNode} */\n h,\n null\n ), c = e(h, l) || {}, D && (A.nodes_end = O), a && Ln();\n }), () => {\n var w;\n for (var g of f) {\n t.removeEventListener(g, ft);\n var m = (\n /** @type {number} */\n Ye.get(g)\n );\n --m === 0 ? (document.removeEventListener(g, ft), Ye.delete(g)) : Ye.set(g, m);\n }\n qt.delete(s), h !== r && ((w = h.parentNode) == null || w.removeChild(h));\n };\n });\n return Ht.set(c, v), c;\n}\nlet Ht = /* @__PURE__ */ new WeakMap();\nfunction $l(e, t) {\n const r = Ht.get(e);\n return r ? (Ht.delete(e), r(t)) : Promise.resolve();\n}\nfunction ke(e, t, [r, l] = [0, 0]) {\n D && r === 0 && Xe();\n var i = e, a = null, o = null, f = W, s = r > 0 ? Zt : 0, c = !1;\n const v = (g, m = !0) => {\n c = !0, h(m, g);\n }, h = (g, m) => {\n if (f === (f = g)) return;\n let w = !1;\n if (D && l !== -1) {\n if (r === 0) {\n const T = (\n /** @type {Comment} */\n i.data\n );\n T === Wt ? l = 0 : T === tn ? l = 1 / 0 : (l = parseInt(T.substring(1)), l !== l && (l = f ? 1 / 0 : -1));\n }\n const z = l > r;\n !!f === z && (i = Ki(), Re(i), Ge(!1), w = !0, l = -1);\n }\n f ? (a ? Hr(a) : m && (a = Rt(() => m(i))), o && Bt(o, () => {\n o = null;\n })) : (o ? Hr(o) : m && (o = Rt(() => m(i, [r + 1, l]))), a && Bt(a, () => {\n a = null;\n })), w && Ge(!0);\n };\n tr(() => {\n c = !1, t(v), c || h(null, null);\n }, s), D && (i = O);\n}\nfunction Ze(e, t, r, l, i) {\n var a = e, o = \"\", f;\n tr(() => {\n if (o === (o = t() ?? \"\")) {\n D && Xe();\n return;\n }\n f !== void 0 && (we(f), f = void 0), o !== \"\" && (f = Rt(() => {\n if (D) {\n O.data;\n for (var s = Xe(), c = s; s !== null && (s.nodeType !== 8 || /** @type {Comment} */\n s.data !== \"\"); )\n c = s, s = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(s);\n if (s === null)\n throw Tt(), Je;\n Ae(O, c), a = Re(s);\n return;\n }\n var v = o + \"\", h = rr(v);\n Ae(\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(h),\n /** @type {TemplateNode} */\n h.lastChild\n ), a.before(h);\n }));\n });\n}\nfunction kl(e, t, r, l, i) {\n var f;\n D && Xe();\n var a = (f = t.$$slots) == null ? void 0 : f[r], o = !1;\n a === !0 && (a = t.children, o = !0), a === void 0 || a(e, o ? () => l : l);\n}\nfunction Cl(e, t) {\n Gt(() => {\n var r = e.getRootNode(), l = (\n /** @type {ShadowRoot} */\n r.host ? (\n /** @type {ShadowRoot} */\n r\n ) : (\n /** @type {Document} */\n r.head ?? /** @type {Document} */\n r.ownerDocument.head\n )\n );\n if (!l.querySelector(\"#\" + t.hash)) {\n const i = document.createElement(\"style\");\n i.id = t.hash, i.textContent = t.code, l.appendChild(i);\n }\n });\n}\nconst Zr = [...` \t\n\\r\\f \\v\\uFEFF`];\nfunction Al(e, t, r) {\n var l = \"\" + e;\n if (r) {\n for (var i in r)\n if (r[i])\n l = l ? l + \" \" + i : i;\n else if (l.length)\n for (var a = i.length, o = 0; (o = l.indexOf(i, o)) >= 0; ) {\n var f = o + a;\n (o === 0 || Zr.includes(l[o - 1])) && (f === l.length || Zr.includes(l[f])) ? l = (o === 0 ? \"\" : l.substring(0, o)) + l.substring(f + 1) : o = f;\n }\n }\n return l === \"\" ? null : l;\n}\nfunction Rl(e, t, r, l, i, a) {\n var o = e.__className;\n if (D || o !== r) {\n var f = Al(r, l, a);\n (!D || f !== e.getAttribute(\"class\")) && (f == null ? e.removeAttribute(\"class\") : e.className = f), e.__className = r;\n } else if (a && i !== a)\n for (var s in a) {\n var c = !!a[s];\n (i == null || c !== !!i[s]) && e.classList.toggle(s, c);\n }\n return a;\n}\nconst Il = Symbol(\"is custom element\"), Sl = Symbol(\"is html\");\nfunction Gr(e) {\n if (D) {\n var t = !1, r = () => {\n if (!t) {\n if (t = !0, e.hasAttribute(\"value\")) {\n var l = e.value;\n ie(e, \"value\", null), e.value = l;\n }\n if (e.hasAttribute(\"checked\")) {\n var i = e.checked;\n ie(e, \"checked\", null), e.checked = i;\n }\n }\n };\n e.__on_r = r, Di(r), Pn();\n }\n}\nfunction Tl(e, t) {\n var r = Un(e);\n r.value === (r.value = // treat null and undefined the same for the initial value\n t ?? void 0) || // @ts-expect-error\n // `progress` elements always need their value set when it's `0`\n e.value === t && (t !== 0 || e.nodeName !== \"PROGRESS\") || (e.value = t ?? \"\");\n}\nfunction ie(e, t, r, l) {\n var i = Un(e);\n D && (i[t] = e.getAttribute(t), t === \"src\" || t === \"srcset\" || t === \"href\" && e.nodeName === \"LINK\") || i[t] !== (i[t] = r) && (t === \"loading\" && (e[Ai] = r), r == null ? e.removeAttribute(t) : typeof r != \"string\" && Nl(e).includes(t) ? e[t] = r : e.setAttribute(t, r));\n}\nfunction Un(e) {\n return (\n /** @type {Record} **/\n // @ts-expect-error\n e.__attributes ?? (e.__attributes = {\n [Il]: e.nodeName.includes(\"-\"),\n [Sl]: e.namespaceURI === $i\n })\n );\n}\nvar Jr = /* @__PURE__ */ new Map();\nfunction Nl(e) {\n var t = Jr.get(e.nodeName);\n if (t) return t;\n Jr.set(e.nodeName, t = []);\n for (var r, l = e, i = Element.prototype; i !== l; ) {\n r = Si(l);\n for (var a in r)\n r[a].set && t.push(a);\n l = sn(l);\n }\n return t;\n}\nfunction Ll(e, t, r = t) {\n wl(e, \"change\", (l) => {\n var i = l ? e.defaultChecked : e.checked;\n r(i);\n }), // If we are hydrating and the value has since changed,\n // then use the update value from the input instead.\n (D && e.defaultChecked !== e.checked || // If defaultChecked is set, then checked == defaultChecked\n Qe(t) == null) && r(e.checked), er(() => {\n var l = t();\n e.checked = !!l;\n });\n}\nfunction Kr(e, t) {\n return e === t || (e == null ? void 0 : e[ut]) === t;\n}\nfunction Xr(e = {}, t, r, l) {\n return Qt(() => {\n var i, a;\n return er(() => {\n i = a, a = [], Qe(() => {\n e !== r(...a) && (t(e, ...a), i && Kr(r(...i), e) && t(null, ...i));\n });\n }), () => {\n Gt(() => {\n a && Kr(r(...a), e) && t(null, ...a);\n });\n };\n }), e;\n}\nfunction jn(e) {\n B === null && Tn(), Vt(() => {\n const t = Qe(e);\n if (typeof t == \"function\") return (\n /** @type {() => void} */\n t\n );\n });\n}\nfunction Dl(e) {\n B === null && Tn(), jn(() => () => Qe(e));\n}\nlet mt = !1;\nfunction Pl(e) {\n var t = mt;\n try {\n return mt = !1, [e(), mt];\n } finally {\n mt = t;\n }\n}\nfunction C(e, t, r, l) {\n var be;\n var i = (r & wi) !== 0, a = !0, o = (r & yi) !== 0, f = (r & bi) !== 0, s = !1, c;\n o ? [c, s] = Pl(() => (\n /** @type {V} */\n e[t]\n )) : c = /** @type {V} */\n e[t];\n var v = ut in e || an in e, h = o && (((be = Pe(e, t)) == null ? void 0 : be.set) ?? (v && t in e && ((N) => e[t] = N))) || void 0, g = (\n /** @type {V} */\n l\n ), m = !0, w = !1, z = () => (w = !0, m && (m = !1, f ? g = Qe(\n /** @type {() => V} */\n l\n ) : g = /** @type {V} */\n l), g);\n c === void 0 && l !== void 0 && (h && a && ji(), c = z(), h && h(c));\n var T;\n if (T = () => {\n var N = (\n /** @type {V} */\n e[t]\n );\n return N === void 0 ? z() : (m = !0, w = !1, N);\n }, (r & pi) === 0)\n return T;\n if (h) {\n var Y = e.$$legacy;\n return function(N, X) {\n return arguments.length > 0 ? ((!X || Y || s) && h(X ? T() : N), N) : T();\n };\n }\n var M = !1, F = /* @__PURE__ */ hn(c), se = /* @__PURE__ */ De(() => {\n var N = T(), X = d(F);\n return M ? (M = !1, X) : F.v = N;\n });\n return i || (se.equals = vn), function(N, X) {\n if (arguments.length > 0) {\n const U = X ? d(se) : o ? le(N) : N;\n return se.equals(U) || (M = !0, P(F, U), w && g !== void 0 && (g = U), Qe(() => d(se))), N;\n }\n return d(se);\n };\n}\nfunction Ol(e) {\n return new zl(e);\n}\nvar _e, te;\nclass zl {\n /**\n * @param {ComponentConstructorOptions & {\n * component: any;\n * }} options\n */\n constructor(t) {\n /** @type {any} */\n Mt(this, _e);\n /** @type {Record} */\n Mt(this, te);\n var a;\n var r = /* @__PURE__ */ new Map(), l = (o, f) => {\n var s = /* @__PURE__ */ hn(f);\n return r.set(o, s), s;\n };\n const i = new Proxy(\n { ...t.props || {}, $$events: {} },\n {\n get(o, f) {\n return d(r.get(f) ?? l(f, Reflect.get(o, f)));\n },\n has(o, f) {\n return f === an ? !0 : (d(r.get(f) ?? l(f, Reflect.get(o, f))), Reflect.has(o, f));\n },\n set(o, f, s) {\n return P(r.get(f) ?? l(f, s), s), Reflect.set(o, f, s);\n }\n }\n );\n Ut(this, te, (t.hydrate ? xl : Fn)(t.component, {\n target: t.target,\n anchor: t.anchor,\n props: i,\n context: t.context,\n intro: t.intro ?? !1,\n recover: t.recover\n })), (!((a = t == null ? void 0 : t.props) != null && a.$$host) || t.sync === !1) && $(), Ut(this, _e, i.$$events);\n for (const o of Object.keys(H(this, te)))\n o === \"$set\" || o === \"$destroy\" || o === \"$on\" || xt(this, o, {\n get() {\n return H(this, te)[o];\n },\n /** @param {any} value */\n set(f) {\n H(this, te)[o] = f;\n },\n enumerable: !0\n });\n H(this, te).$set = /** @param {Record} next */\n (o) => {\n Object.assign(i, o);\n }, H(this, te).$destroy = () => {\n $l(H(this, te));\n };\n }\n /** @param {Record} props */\n $set(t) {\n H(this, te).$set(t);\n }\n /**\n * @param {string} event\n * @param {(...args: any[]) => any} callback\n * @returns {any}\n */\n $on(t, r) {\n H(this, _e)[t] = H(this, _e)[t] || [];\n const l = (...i) => r.call(this, ...i);\n return H(this, _e)[t].push(l), () => {\n H(this, _e)[t] = H(this, _e)[t].filter(\n /** @param {any} fn */\n (i) => i !== l\n );\n };\n }\n $destroy() {\n H(this, te).$destroy();\n }\n}\n_e = new WeakMap(), te = new WeakMap();\nlet Vn;\ntypeof HTMLElement == \"function\" && (Vn = class extends HTMLElement {\n /**\n * @param {*} $$componentCtor\n * @param {*} $$slots\n * @param {*} use_shadow_dom\n */\n constructor(t, r, l) {\n super();\n /** The Svelte component constructor */\n ne(this, \"$$ctor\");\n /** Slots */\n ne(this, \"$$s\");\n /** @type {any} The Svelte component instance */\n ne(this, \"$$c\");\n /** Whether or not the custom element is connected */\n ne(this, \"$$cn\", !1);\n /** @type {Record} Component props data */\n ne(this, \"$$d\", {});\n /** `true` if currently in the process of reflecting component props back to attributes */\n ne(this, \"$$r\", !1);\n /** @type {Record} Props definition (name, reflected, type etc) */\n ne(this, \"$$p_d\", {});\n /** @type {Record} Event listeners */\n ne(this, \"$$l\", {});\n /** @type {Map} Event listener unsubscribe functions */\n ne(this, \"$$l_u\", /* @__PURE__ */ new Map());\n /** @type {any} The managed render effect for reflecting attributes */\n ne(this, \"$$me\");\n this.$$ctor = t, this.$$s = r, l && this.attachShadow({ mode: \"open\" });\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n addEventListener(t, r, l) {\n if (this.$$l[t] = this.$$l[t] || [], this.$$l[t].push(r), this.$$c) {\n const i = this.$$c.$on(t, r);\n this.$$l_u.set(r, i);\n }\n super.addEventListener(t, r, l);\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n removeEventListener(t, r, l) {\n if (super.removeEventListener(t, r, l), this.$$c) {\n const i = this.$$l_u.get(r);\n i && (i(), this.$$l_u.delete(r));\n }\n }\n async connectedCallback() {\n if (this.$$cn = !0, !this.$$c) {\n let t = function(i) {\n return (a) => {\n const o = document.createElement(\"slot\");\n i !== \"default\" && (o.name = i), ee(a, o);\n };\n };\n if (await Promise.resolve(), !this.$$cn || this.$$c)\n return;\n const r = {}, l = Fl(this);\n for (const i of this.$$s)\n i in l && (i === \"default\" && !this.$$d.children ? (this.$$d.children = t(i), r.default = !0) : r[i] = t(i));\n for (const i of this.attributes) {\n const a = this.$$g_p(i.name);\n a in this.$$d || (this.$$d[a] = pt(a, i.value, this.$$p_d, \"toProp\"));\n }\n for (const i in this.$$p_d)\n !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]);\n this.$$c = Ol({\n component: this.$$ctor,\n target: this.shadowRoot || this,\n props: {\n ...this.$$d,\n $$slots: r,\n $$host: this\n }\n }), this.$$me = dl(() => {\n er(() => {\n var i;\n this.$$r = !0;\n for (const a of Et(this.$$c)) {\n if (!((i = this.$$p_d[a]) != null && i.reflect)) continue;\n this.$$d[a] = this.$$c[a];\n const o = pt(\n a,\n this.$$d[a],\n this.$$p_d,\n \"toAttribute\"\n );\n o == null ? this.removeAttribute(this.$$p_d[a].attribute || a) : this.setAttribute(this.$$p_d[a].attribute || a, o);\n }\n this.$$r = !1;\n });\n });\n for (const i in this.$$l)\n for (const a of this.$$l[i]) {\n const o = this.$$c.$on(i, a);\n this.$$l_u.set(a, o);\n }\n this.$$l = {};\n }\n }\n // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n // and setting attributes through setAttribute etc, this is helpful\n /**\n * @param {string} attr\n * @param {string} _oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(t, r, l) {\n var i;\n this.$$r || (t = this.$$g_p(t), this.$$d[t] = pt(t, l, this.$$p_d, \"toProp\"), (i = this.$$c) == null || i.$set({ [t]: this.$$d[t] }));\n }\n disconnectedCallback() {\n this.$$cn = !1, Promise.resolve().then(() => {\n !this.$$cn && this.$$c && (this.$$c.$destroy(), this.$$me(), this.$$c = void 0);\n });\n }\n /**\n * @param {string} attribute_name\n */\n $$g_p(t) {\n return Et(this.$$p_d).find(\n (r) => this.$$p_d[r].attribute === t || !this.$$p_d[r].attribute && r.toLowerCase() === t\n ) || t;\n }\n});\nfunction pt(e, t, r, l) {\n var a;\n const i = (a = r[e]) == null ? void 0 : a.type;\n if (t = i === \"Boolean\" && typeof t != \"boolean\" ? t != null : t, !l || !r[e])\n return t;\n if (l === \"toAttribute\")\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t == null ? null : JSON.stringify(t);\n case \"Boolean\":\n return t ? \"\" : null;\n case \"Number\":\n return t ?? null;\n default:\n return t;\n }\n else\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t && JSON.parse(t);\n case \"Boolean\":\n return t;\n // conversion already handled above\n case \"Number\":\n return t != null ? +t : t;\n default:\n return t;\n }\n}\nfunction Fl(e) {\n const t = {};\n return e.childNodes.forEach((r) => {\n t[\n /** @type {Element} node */\n r.slot || \"default\"\n ] = !0;\n }), t;\n}\nfunction Ml(e, t, r, l, i, a) {\n let o = class extends Vn {\n constructor() {\n super(e, r, i), this.$$p_d = t;\n }\n static get observedAttributes() {\n return Et(t).map(\n (f) => (t[f].attribute || f).toLowerCase()\n );\n }\n };\n return Et(t).forEach((f) => {\n xt(o.prototype, f, {\n get() {\n return this.$$c && f in this.$$c ? this.$$c[f] : this.$$d[f];\n },\n set(s) {\n var h;\n s = pt(f, s, t), this.$$d[f] = s;\n var c = this.$$c;\n if (c) {\n var v = (h = Pe(c, f)) == null ? void 0 : h.get;\n v ? c[f] = s : c.$set({ [f]: s });\n }\n }\n });\n }), l.forEach((f) => {\n xt(o.prototype, f, {\n get() {\n var s;\n return (s = this.$$c) == null ? void 0 : s[f];\n }\n });\n }), e.element = /** @type {any} */\n o, o;\n}\nconst Bn = new TextEncoder();\nfunction Ul(e) {\n return [...new Uint8Array(e)].map((t) => t.toString(16).padStart(2, \"0\")).join(\"\");\n}\nasync function jl(e, t = \"SHA-256\", r = 1e5) {\n const l = Date.now().toString(16);\n e || (e = Math.round(Math.random() * r));\n const i = await qn(l, e, t);\n return {\n algorithm: t,\n challenge: i,\n salt: l,\n signature: \"\"\n };\n}\nasync function qn(e, t, r) {\n if (typeof crypto > \"u\" || !(\"subtle\" in crypto) || !(\"digest\" in crypto.subtle))\n throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");\n return Ul(\n await crypto.subtle.digest(\n r.toUpperCase(),\n Bn.encode(e + t)\n )\n );\n}\nfunction Vl(e, t, r = \"SHA-256\", l = 1e6, i = 0) {\n const a = new AbortController(), o = Date.now();\n return {\n promise: (async () => {\n for (let s = i; s <= l; s += 1) {\n if (a.signal.aborted)\n return null;\n if (await qn(t, s, r) === e)\n return {\n number: s,\n took: Date.now() - o\n };\n }\n return null;\n })(),\n controller: a\n };\n}\nfunction Bl() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n}\nfunction ql(e) {\n const t = atob(e), r = new Uint8Array(t.length);\n for (let l = 0; l < t.length; l++)\n r[l] = t.charCodeAt(l);\n return r;\n}\nfunction Hl(e, t = 12) {\n const r = new Uint8Array(t);\n for (let l = 0; l < t; l++)\n r[l] = e % 256, e = Math.floor(e / 256);\n return r;\n}\nasync function Wl(e, t = \"\", r = 1e6, l = 0) {\n const i = \"AES-GCM\", a = new AbortController(), o = Date.now(), f = async () => {\n for (let v = l; v <= r; v += 1) {\n if (a.signal.aborted || !s || !c)\n return null;\n try {\n const h = await crypto.subtle.decrypt(\n {\n name: i,\n iv: Hl(v)\n },\n s,\n c\n );\n if (h)\n return {\n clearText: new TextDecoder().decode(h),\n took: Date.now() - o\n };\n } catch {\n }\n }\n return null;\n };\n let s = null, c = null;\n try {\n c = ql(e);\n const v = await crypto.subtle.digest(\n \"SHA-256\",\n Bn.encode(t)\n );\n s = await crypto.subtle.importKey(\n \"raw\",\n v,\n i,\n !1,\n [\"decrypt\"]\n );\n } catch {\n return {\n promise: Promise.reject(),\n controller: a\n };\n }\n return {\n promise: f(),\n controller: a\n };\n}\nvar E = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.VERIFIED = \"verified\", e.VERIFYING = \"verifying\", e.UNVERIFIED = \"unverified\", e.EXPIRED = \"expired\", e))(E || {}), Yl = /* @__PURE__ */ El(''), Zl = /* @__PURE__ */ ve(' ', 1), Gl = /* @__PURE__ */ ve(''), Jl = /* @__PURE__ */ ve(''), Kl = /* @__PURE__ */ ve('
'), Xl = /* @__PURE__ */ ve('
'), Ql = /* @__PURE__ */ ve('
'), ea = /* @__PURE__ */ ve('
'), ta = /* @__PURE__ */ ve(''), ra = /* @__PURE__ */ ve('
'), na = /* @__PURE__ */ ve('
', 1);\nconst ia = {\n hash: \"svelte-ddsc3z\",\n code: `.altcha.svelte-ddsc3z {background:var(--altcha-color-base, transparent);border:var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0);border-radius:var(--altcha-border-radius, 3px);color:var(--altcha-color-text, currentColor);display:flex;flex-direction:column;max-width:var(--altcha-max-width, 260px);position:relative;text-align:left;}.altcha.svelte-ddsc3z:focus-within {border-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z {background:var(--altcha-color-base, white);display:none;filter:drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.2));left:-100%;position:fixed;top:-100%;width:var(--altcha-max-width, 260px);z-index:999999;}.altcha[data-floating=top].svelte-ddsc3z .altcha-anchor-arrow:where(.svelte-ddsc3z) {border-bottom-color:transparent;border-top-color:var(--altcha-color-border, #a0a0a0);bottom:-12px;top:auto;}.altcha[data-floating=bottom].svelte-ddsc3z:focus-within::after {border-bottom-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating=top].svelte-ddsc3z:focus-within::after {border-top-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z:not([data-state=unverified]) {display:block;}.altcha-anchor-arrow.svelte-ddsc3z {border:6px solid transparent;border-bottom-color:var(--altcha-color-border, #a0a0a0);content:\"\";height:0;left:12px;position:absolute;top:-12px;width:0;}.altcha-main.svelte-ddsc3z {align-items:center;display:flex;gap:0.4rem;padding:0.7rem;}.altcha-label.svelte-ddsc3z {flex-grow:1;}.altcha-label.svelte-ddsc3z label:where(.svelte-ddsc3z) {cursor:pointer;}.altcha-logo.svelte-ddsc3z {color:currentColor;opacity:0.3;}.altcha-logo.svelte-ddsc3z:hover {opacity:1;}.altcha-error.svelte-ddsc3z {color:var(--altcha-color-error-text, #f23939);display:flex;font-size:0.85rem;gap:0.3rem;padding:0 0.7rem 0.7rem;}.altcha-footer.svelte-ddsc3z {align-items:center;background-color:var(--altcha-color-footer-bg, transparent);display:flex;font-size:0.75rem;opacity:0.4;padding:0.2rem 0.7rem;text-align:right;}.altcha-footer.svelte-ddsc3z:hover {opacity:1;}.altcha-footer.svelte-ddsc3z > :where(.svelte-ddsc3z):first-child {flex-grow:1;}.altcha-footer.svelte-ddsc3z a {color:currentColor;}.altcha-checkbox.svelte-ddsc3z {display:flex;align-items:center;height:24px;width:24px;}.altcha-checkbox.svelte-ddsc3z input:where(.svelte-ddsc3z) {width:18px;height:18px;margin:0;}.altcha-hidden.svelte-ddsc3z {display:none;}.altcha-spinner.svelte-ddsc3z {\n animation: svelte-ddsc3z-altcha-spinner 0.75s infinite linear;transform-origin:center;}\n\n@keyframes svelte-ddsc3z-altcha-spinner {\n 100% {\n transform: rotate(360deg);\n }\n}`\n};\nfunction la(e, t) {\n var Lr, Dr;\n Nn(t, !0), Cl(e, ia);\n let r = C(t, \"auto\", 7, void 0), l = C(t, \"blockspam\", 7, void 0), i = C(t, \"challengeurl\", 7, void 0), a = C(t, \"challengejson\", 7, void 0), o = C(t, \"customfetch\", 7, void 0), f = C(t, \"debug\", 7, !1), s = C(t, \"delay\", 7, 0), c = C(t, \"expire\", 7, void 0), v = C(t, \"floating\", 7, void 0), h = C(t, \"floatinganchor\", 7, void 0), g = C(t, \"floatingoffset\", 7, void 0), m = C(t, \"hidefooter\", 7, !1), w = C(t, \"hidelogo\", 7, !1), z = C(t, \"id\", 7, void 0), T = C(t, \"name\", 7, \"altcha\"), Y = C(t, \"maxnumber\", 7, 1e6), M = C(t, \"mockerror\", 7, !1), F = C(t, \"obfuscated\", 7, void 0), se = C(t, \"plugins\", 7, void 0), be = C(t, \"refetchonexpire\", 7, !0), N = C(t, \"spamfilter\", 7, !1), X = C(t, \"strings\", 7, void 0), U = C(t, \"test\", 7, !1), Ee = C(t, \"verifyurl\", 7, void 0), Me = C(t, \"workers\", 23, () => Math.min(16, navigator.hardwareConcurrency || 8)), tt = C(t, \"workerurl\", 7, void 0);\n const nr = [\"SHA-256\", \"SHA-384\", \"SHA-512\"], ir = \"Visit Altcha.org\", lr = \"https://altcha.org/\", rt = (n, u) => {\n t.$$host.dispatchEvent(new CustomEvent(n, { detail: u }));\n }, ar = (Dr = (Lr = document.documentElement.lang) == null ? void 0 : Lr.split(\"-\")) == null ? void 0 : Dr[0], Dt = /* @__PURE__ */ De(() => {\n var n;\n return i() && new URL(i(), location.origin).host.endsWith(\".altcha.org\") && !!((n = i()) != null && n.includes(\"apiKey=ckey_\"));\n }), Pt = /* @__PURE__ */ De(() => a() ? wr(a()) : void 0), or = /* @__PURE__ */ De(() => X() ? wr(X()) : {}), Q = /* @__PURE__ */ De(() => {\n var n;\n return {\n ariaLinkLabel: ir,\n error: \"Verification failed. Try again later.\",\n expired: \"Verification expired. Try again.\",\n footer: `Protected by ALTCHA`,\n label: \"I'm not a robot\",\n verified: \"Verified\",\n verifying: \"Verifying...\",\n waitAlert: \"Verifying... please wait.\",\n ...d(or)\n };\n }), sr = /* @__PURE__ */ De(() => z() || `${T()}_checkbox`);\n let Ue = He(!1), R = He(le(E.UNVERIFIED)), j = He(void 0), nt = He(null), je = null, y = null, Ve = He(null), fe = null, xe = [], Ne = He(null);\n Vt(() => {\n Xn(d(Ve));\n }), Vt(() => {\n Qn(d(R));\n }), Dl(() => {\n Hn(), y && (y.removeEventListener(\"submit\", hr), y.removeEventListener(\"reset\", gr), y.removeEventListener(\"focusin\", vr), y = null), fe && (clearTimeout(fe), fe = null), document.removeEventListener(\"click\", cr), document.removeEventListener(\"scroll\", dr), window.removeEventListener(\"resize\", mr);\n }), jn(() => {\n var n;\n I(\"mounted\", \"1.3.0\"), I(\"workers\", Me()), Jn(), I(\"plugins\", xe.length ? xe.map((u) => u.constructor.pluginName).join(\", \") : \"none\"), U() && I(\"using test mode\"), c() && Ot(c()), r() !== void 0 && I(\"auto\", r()), v() !== void 0 && pr(v()), y = (n = d(j)) == null ? void 0 : n.closest(\"form\"), y && (y.addEventListener(\"submit\", hr, { capture: !0 }), y.addEventListener(\"reset\", gr), r() === \"onfocus\" && y.addEventListener(\"focusin\", vr)), r() === \"onload\" && (F() ? it() : $e()), d(Dt) && (m() || w()) && I(\"Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution.\"), requestAnimationFrame(() => {\n rt(\"load\");\n });\n });\n function fr(n, u) {\n return btoa(JSON.stringify({\n algorithm: n.algorithm,\n challenge: n.challenge,\n number: u.number,\n salt: n.salt,\n signature: n.signature,\n test: U() ? !0 : void 0,\n took: u.took\n }));\n }\n function Hn() {\n for (const n of xe)\n n.destroy();\n }\n function ur() {\n i() && be() && d(R) === E.VERIFIED ? $e() : lt(E.EXPIRED, d(Q).expired);\n }\n async function Wn() {\n var n;\n if (M())\n throw I(\"mocking error\"), new Error(\"Mocked error.\");\n if (d(Pt))\n return I(\"using provided json data\"), d(Pt);\n if (U())\n return I(\"generating test challenge\", { test: U() }), jl(typeof U() != \"boolean\" ? +U() : void 0);\n {\n if (!i() && y) {\n const L = y.getAttribute(\"action\");\n L != null && L.includes(\"/form/\") && i(L + \"/altcha\");\n }\n if (!i())\n throw new Error(\"Attribute challengeurl not set.\");\n I(\"fetching challenge from\", i());\n let u = null, _ = null;\n if (o())\n if (I(\"using customfetch\"), typeof o() == \"string\") {\n if (u = globalThis[o()] || null, !u)\n throw new Error(`Custom fetch function not found: ${o()}`);\n } else\n u = o();\n const b = {\n headers: N() !== !1 ? { \"x-altcha-spam-filter\": \"1\" } : {}\n };\n if (u) {\n if (_ = await u(i(), b), !_ || !(_ instanceof Response))\n throw new Error(\"Custom fetch function did not return a response.\");\n } else\n _ = await fetch(i(), b);\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const S = _.headers.get(\"X-Altcha-Config\"), x = await _.json(), p = new URLSearchParams((n = x.salt.split(\"?\")) == null ? void 0 : n[1]), q = p.get(\"expires\") || p.get(\"expire\");\n if (q) {\n const L = new Date(+q * 1e3), qe = isNaN(L.getTime()) ? 0 : L.getTime() - Date.now();\n qe > 0 && Ot(qe);\n }\n if (S)\n try {\n const L = JSON.parse(S);\n L && typeof L == \"object\" && (L.verifyurl && (L.verifyurl = new URL(L.verifyurl, new URL(i())).toString()), Er(L));\n } catch (L) {\n I(\"unable to configure from X-Altcha-Config\", L);\n }\n return x;\n }\n }\n function Yn(n) {\n var _;\n const u = y == null ? void 0 : y.querySelector(typeof n == \"string\" ? `input[name=\"${n}\"]` : 'input[type=\"email\"]:not([data-no-spamfilter])');\n return ((_ = u == null ? void 0 : u.value) == null ? void 0 : _.slice(u.value.indexOf(\"@\"))) || void 0;\n }\n function Zn() {\n return N() === \"ipAddress\" ? {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: !1,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: !1,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n } : typeof N() == \"object\" ? N() : {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: void 0,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: void 0,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n };\n }\n function Gn(n) {\n return [\n ...(y == null ? void 0 : y.querySelectorAll(n != null && n.length ? n.map((_) => `input[name=\"${_}\"]`).join(\", \") : 'input[type=\"text\"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])')) || []\n ].reduce(\n (_, b) => {\n const S = b.name, x = b.value;\n return S && x && (_[S] = /\\n/.test(x) ? x.replace(new RegExp(\"(? u instanceof Error)) && console[n[0] instanceof Error ? \"error\" : \"log\"](\"ALTCHA\", `[name=${T()}]`, ...n);\n }\n function Kn() {\n [E.UNVERIFIED, E.ERROR, E.EXPIRED].includes(d(R)) ? N() !== !1 && (y == null ? void 0 : y.reportValidity()) === !1 ? P(Ue, !1) : F() ? it() : $e() : P(Ue, !0);\n }\n function cr(n) {\n const u = n.target;\n v() && u && !d(j).contains(u) && (d(R) === E.VERIFIED || r() === \"off\" && d(R) === E.UNVERIFIED) && (d(j).style.display = \"none\");\n }\n function dr() {\n v() && d(R) !== E.UNVERIFIED && gt();\n }\n function Xn(n) {\n for (const u of xe)\n typeof u.onErrorChange == \"function\" && u.onErrorChange(d(Ve));\n }\n function vr(n) {\n d(R) === E.UNVERIFIED && $e();\n }\n function hr(n) {\n y && r() === \"onsubmit\" ? d(R) === E.UNVERIFIED ? (n.preventDefault(), n.stopPropagation(), $e().then(() => {\n y == null || y.requestSubmit();\n })) : d(R) !== E.VERIFIED && (n.preventDefault(), n.stopPropagation(), d(R) === E.VERIFYING && _r()) : y && v() && r() === \"off\" && d(R) === E.UNVERIFIED && (n.preventDefault(), n.stopPropagation(), d(j).style.display = \"block\", gt());\n }\n function gr() {\n lt();\n }\n function _r() {\n d(R) === E.VERIFYING && d(Q).waitAlert && alert(d(Q).waitAlert);\n }\n function Qn(n) {\n for (const u of xe)\n typeof u.onStateChange == \"function\" && u.onStateChange(d(R));\n v() && d(R) !== E.UNVERIFIED && requestAnimationFrame(() => {\n gt();\n }), P(Ue, d(R) === E.VERIFIED);\n }\n function mr() {\n v() && gt();\n }\n function wr(n) {\n return JSON.parse(n);\n }\n function gt(n = 20) {\n if (d(j))\n if (je || (je = (h() ? document.querySelector(h()) : y == null ? void 0 : y.querySelector('input[type=\"submit\"], button[type=\"submit\"], button:not([type=\"button\"]):not([type=\"reset\"])')) || y), je) {\n const u = parseInt(g(), 10) || 12, _ = je.getBoundingClientRect(), b = d(j).getBoundingClientRect(), S = document.documentElement.clientHeight, x = document.documentElement.clientWidth, p = v() === \"auto\" ? _.bottom + b.height + u + n > S : v() === \"top\", q = Math.max(n, Math.min(x - n - b.width, _.left + _.width / 2 - b.width / 2));\n if (p ? d(j).style.top = `${_.top - (b.height + u)}px` : d(j).style.top = `${_.bottom + u}px`, d(j).style.left = `${q}px`, d(j).setAttribute(\"data-floating\", p ? \"top\" : \"bottom\"), d(nt)) {\n const L = d(nt).getBoundingClientRect();\n d(nt).style.left = _.left - q + _.width / 2 - L.width / 2 + \"px\";\n }\n } else\n I(\"unable to find floating anchor element\");\n }\n async function ei(n) {\n if (!Ee())\n throw new Error(\"Attribute verifyurl not set.\");\n I(\"requesting server verification from\", Ee());\n const u = { payload: n };\n if (N() !== !1) {\n const {\n blockedCountries: S,\n classifier: x,\n disableRules: p,\n email: q,\n expectedLanguages: L,\n expectedCountries: qe,\n fields: ot,\n ipAddress: st,\n text: vi,\n timeZone: Pr\n } = Zn();\n u.blockedCountries = S, u.classifier = x, u.disableRules = p, u.email = q === !1 ? void 0 : Yn(q), u.expectedCountries = qe, u.expectedLanguages = L || (ar ? [ar] : void 0), u.fields = ot === !1 ? void 0 : Gn(ot), u.ipAddress = st === !1 ? void 0 : st || \"auto\", u.text = vi, u.timeZone = Pr === !1 ? void 0 : Pr || Bl();\n }\n const _ = await fetch(Ee(), {\n body: JSON.stringify(u),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\"\n });\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const b = await _.json();\n if (b != null && b.payload && P(Ne, le(b.payload)), rt(\"serververification\", b), l() && b.classification === \"BAD\")\n throw new Error(\"SpamFilter returned negative classification.\");\n }\n function Ot(n) {\n I(\"expire\", n), fe && (clearTimeout(fe), fe = null), n < 1 ? ur() : fe = setTimeout(ur, n);\n }\n function pr(n) {\n I(\"floating\", n), v() !== n && (d(j).style.left = \"\", d(j).style.top = \"\"), v(n === !0 || n === \"\" ? \"auto\" : n === !1 || n === \"false\" ? void 0 : v()), v() ? (r() || r(\"onsubmit\"), document.addEventListener(\"scroll\", dr), document.addEventListener(\"click\", cr), window.addEventListener(\"resize\", mr)) : r() === \"onsubmit\" && r(void 0);\n }\n function yr(n) {\n if (!n.algorithm)\n throw new Error(\"Invalid challenge. Property algorithm is missing.\");\n if (n.signature === void 0)\n throw new Error(\"Invalid challenge. Property signature is missing.\");\n if (!nr.includes(n.algorithm.toUpperCase()))\n throw new Error(`Unknown algorithm value. Allowed values: ${nr.join(\", \")}`);\n if (!n.challenge || n.challenge.length < 40)\n throw new Error(\"Challenge is too short. Min. 40 chars.\");\n if (!n.salt || n.salt.length < 10)\n throw new Error(\"Salt is too short. Min. 10 chars.\");\n }\n async function br(n) {\n let u = null;\n if (\"Worker\" in window) {\n try {\n u = await ti(n, n.maxnumber);\n } catch (_) {\n I(_);\n }\n if ((u == null ? void 0 : u.number) !== void 0 || \"obfuscated\" in n)\n return { data: n, solution: u };\n }\n if (\"obfuscated\" in n) {\n const _ = await Wl(n.obfuscated, n.key, n.maxnumber);\n return { data: n, solution: await _.promise };\n }\n return {\n data: n,\n solution: await Vl(n.challenge, n.salt, n.algorithm, n.maxnumber || Y()).promise\n };\n }\n async function ti(n, u = typeof U() == \"number\" ? U() : Y(), _ = Math.ceil(Me())) {\n const b = [];\n _ = Math.min(16, Math.max(1, _));\n for (let p = 0; p < _; p++)\n b.push(altchaCreateWorker(tt()));\n const S = Math.ceil(u / _), x = await Promise.all(b.map((p, q) => {\n const L = q * S;\n return new Promise((qe) => {\n p.addEventListener(\"message\", (ot) => {\n if (ot.data)\n for (const st of b)\n st !== p && st.postMessage({ type: \"abort\" });\n qe(ot.data);\n }), p.postMessage({\n payload: n,\n max: L + S,\n start: L,\n type: \"work\"\n });\n });\n }));\n for (const p of b)\n p.terminate();\n return x.find((p) => !!p) || null;\n }\n async function it() {\n if (!F()) {\n Le(E.ERROR);\n return;\n }\n const n = xe.find((u) => u.constructor.pluginName === \"obfuscation\");\n if (!n || !(\"clarify\" in n)) {\n Le(E.ERROR), I(\"Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.\");\n return;\n }\n if (\"clarify\" in n && typeof n.clarify == \"function\")\n return n.clarify();\n }\n function Er(n) {\n n.obfuscated !== void 0 && F(n.obfuscated), n.auto !== void 0 && (r(n.auto), r() === \"onload\" && (F() ? it() : $e())), n.blockspam !== void 0 && l(!!n.blockspam), n.customfetch !== void 0 && o(n.customfetch), n.floatinganchor !== void 0 && h(n.floatinganchor), n.delay !== void 0 && s(n.delay), n.floatingoffset !== void 0 && g(n.floatingoffset), n.floating !== void 0 && pr(n.floating), n.expire !== void 0 && (Ot(n.expire), c(n.expire)), n.challenge && (a(typeof n.challenge == \"string\" ? n.challenge : JSON.stringify(n.challenge)), yr(d(Pt))), n.challengeurl !== void 0 && i(n.challengeurl), n.debug !== void 0 && f(!!n.debug), n.hidefooter !== void 0 && m(!!n.hidefooter), n.hidelogo !== void 0 && w(!!n.hidelogo), n.maxnumber !== void 0 && Y(+n.maxnumber), n.mockerror !== void 0 && M(!!n.mockerror), n.name !== void 0 && T(n.name), n.refetchonexpire !== void 0 && be(!!n.refetchonexpire), n.spamfilter !== void 0 && N(typeof n.spamfilter == \"object\" ? n.spamfilter : !!n.spamfilter), n.strings && X(typeof n.strings == \"string\" ? n.strings : JSON.stringify(n.strings)), n.test !== void 0 && U(typeof n.test == \"number\" ? n.test : !!n.test), n.verifyurl !== void 0 && Ee(n.verifyurl), n.workers !== void 0 && Me(+n.workers), n.workerurl !== void 0 && tt(n.workerurl);\n }\n function xr() {\n return {\n auto: r(),\n blockspam: l(),\n challengeurl: i(),\n debug: f(),\n delay: s(),\n expire: c(),\n floating: v(),\n floatinganchor: h(),\n floatingoffset: g(),\n hidefooter: m(),\n hidelogo: w(),\n name: T(),\n maxnumber: Y(),\n mockerror: M(),\n obfuscated: F(),\n refetchonexpire: be(),\n spamfilter: N(),\n strings: d(Q),\n test: U(),\n verifyurl: Ee(),\n workers: Me(),\n workerurl: tt()\n };\n }\n function $r() {\n return je;\n }\n function ri(n) {\n return xe.find((u) => u.constructor.pluginName === n);\n }\n function kr() {\n return d(R);\n }\n function lt(n = E.UNVERIFIED, u = null) {\n fe && (clearTimeout(fe), fe = null), P(Ue, !1), P(Ne, null), Le(n, u);\n }\n function Cr(n) {\n je = n;\n }\n function Le(n, u = null) {\n P(R, le(n)), P(Ve, le(u)), rt(\"statechange\", {\n payload: d(Ne),\n state: d(R)\n });\n }\n async function $e() {\n return lt(E.VERIFYING), await new Promise((n) => setTimeout(n, s() || 0)), Wn().then((n) => (yr(n), I(\"challenge\", n), br(n))).then(({ data: n, solution: u }) => {\n if (I(\"solution\", u), \"challenge\" in n && u && !(\"clearText\" in u))\n if ((u == null ? void 0 : u.number) !== void 0) {\n if (Ee())\n return ei(fr(n, u));\n P(Ne, le(fr(n, u))), I(\"payload\", d(Ne));\n } else\n throw I(\"Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number.\"), new Error(\"Unexpected result returned.\");\n }).then(() => {\n Le(E.VERIFIED), I(\"verified\"), ol().then(() => {\n rt(\"verified\", { payload: d(Ne) });\n });\n }).catch((n) => {\n I(n), Le(E.ERROR, n.message);\n });\n }\n var Ar = na(), Rr = Br(Ar);\n kl(Rr, t, \"default\", {});\n var at = he(Rr, 2), zt = G(at), Ir = G(zt);\n {\n var ni = (n) => {\n var u = Yl();\n ee(n, u);\n };\n ke(Ir, (n) => {\n d(R) === E.VERIFYING && n(ni);\n });\n }\n var _t = he(Ir, 2);\n let Sr;\n var Be = G(_t);\n Gr(Be), Be.__change = Kn, Z(_t);\n var Ft = he(_t, 2), ii = G(Ft);\n {\n var li = (n) => {\n var u = Zl(), _ = Br(u), b = G(_);\n Ze(b, () => d(Q).verified), Z(_);\n var S = he(_, 2);\n Gr(S), We(() => {\n ie(S, \"name\", T()), Tl(S, d(Ne));\n }), ee(n, u);\n }, ai = (n, u) => {\n {\n var _ = (S) => {\n var x = Gl(), p = G(x);\n Ze(p, () => d(Q).verifying), Z(x), ee(S, x);\n }, b = (S) => {\n var x = Jl(), p = G(x);\n Ze(p, () => d(Q).label), Z(x), We(() => ie(x, \"for\", d(sr))), ee(S, x);\n };\n ke(\n n,\n (S) => {\n d(R) === E.VERIFYING ? S(_) : S(b, !1);\n },\n u\n );\n }\n };\n ke(ii, (n) => {\n d(R) === E.VERIFIED ? n(li) : n(ai, !1);\n });\n }\n Z(Ft);\n var oi = he(Ft, 2);\n {\n var si = (n) => {\n var u = Kl(), _ = G(u);\n ie(_, \"href\", lr), Z(u), We(() => ie(_, \"aria-label\", d(Q).ariaLinkLabel)), ee(n, u);\n };\n ke(oi, (n) => {\n (w() !== !0 || d(Dt)) && n(si);\n });\n }\n Z(zt);\n var Tr = he(zt, 2);\n {\n var fi = (n) => {\n var u = ea(), _ = he(G(u), 2);\n {\n var b = (x) => {\n var p = Xl(), q = G(p);\n Ze(q, () => d(Q).expired), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n }, S = (x) => {\n var p = Ql(), q = G(p);\n Ze(q, () => d(Q).error), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n };\n ke(_, (x) => {\n d(R) === E.EXPIRED ? x(b) : x(S, !1);\n });\n }\n Z(u), ee(n, u);\n };\n ke(Tr, (n) => {\n (d(Ve) || d(R) === E.EXPIRED) && n(fi);\n });\n }\n var Nr = he(Tr, 2);\n {\n var ui = (n) => {\n var u = ta(), _ = G(u), b = G(_);\n Ze(b, () => d(Q).footer), Z(_), Z(u), ee(n, u);\n };\n ke(Nr, (n) => {\n d(Q).footer && (m() !== !0 || d(Dt)) && n(ui);\n });\n }\n var ci = he(Nr, 2);\n {\n var di = (n) => {\n var u = ra();\n Xr(u, (_) => P(nt, _), () => d(nt)), ee(n, u);\n };\n ke(ci, (n) => {\n v() && n(di);\n });\n }\n return Z(at), Xr(at, (n) => P(j, n), () => d(j)), We(\n (n) => {\n ie(at, \"data-state\", d(R)), ie(at, \"data-floating\", v()), Sr = Rl(_t, 1, \"altcha-checkbox svelte-ddsc3z\", null, Sr, n), ie(Be, \"id\", d(sr)), Be.required = r() !== \"onsubmit\" && (!v() || r() !== \"off\");\n },\n [\n () => ({\n \"altcha-hidden\": d(R) === E.VERIFYING\n })\n ]\n ), yl(\"invalid\", Be, _r), Ll(Be, () => d(Ue), (n) => P(Ue, n)), ee(e, Ar), Ln({\n clarify: it,\n configure: Er,\n getConfiguration: xr,\n getFloatingAnchor: $r,\n getPlugin: ri,\n getState: kr,\n reset: lt,\n setFloatingAnchor: Cr,\n setState: Le,\n verify: $e,\n get auto() {\n return r();\n },\n set auto(n = void 0) {\n r(n), $();\n },\n get blockspam() {\n return l();\n },\n set blockspam(n = void 0) {\n l(n), $();\n },\n get challengeurl() {\n return i();\n },\n set challengeurl(n = void 0) {\n i(n), $();\n },\n get challengejson() {\n return a();\n },\n set challengejson(n = void 0) {\n a(n), $();\n },\n get customfetch() {\n return o();\n },\n set customfetch(n = void 0) {\n o(n), $();\n },\n get debug() {\n return f();\n },\n set debug(n = !1) {\n f(n), $();\n },\n get delay() {\n return s();\n },\n set delay(n = 0) {\n s(n), $();\n },\n get expire() {\n return c();\n },\n set expire(n = void 0) {\n c(n), $();\n },\n get floating() {\n return v();\n },\n set floating(n = void 0) {\n v(n), $();\n },\n get floatinganchor() {\n return h();\n },\n set floatinganchor(n = void 0) {\n h(n), $();\n },\n get floatingoffset() {\n return g();\n },\n set floatingoffset(n = void 0) {\n g(n), $();\n },\n get hidefooter() {\n return m();\n },\n set hidefooter(n = !1) {\n m(n), $();\n },\n get hidelogo() {\n return w();\n },\n set hidelogo(n = !1) {\n w(n), $();\n },\n get id() {\n return z();\n },\n set id(n = void 0) {\n z(n), $();\n },\n get name() {\n return T();\n },\n set name(n = \"altcha\") {\n T(n), $();\n },\n get maxnumber() {\n return Y();\n },\n set maxnumber(n = 1e6) {\n Y(n), $();\n },\n get mockerror() {\n return M();\n },\n set mockerror(n = !1) {\n M(n), $();\n },\n get obfuscated() {\n return F();\n },\n set obfuscated(n = void 0) {\n F(n), $();\n },\n get plugins() {\n return se();\n },\n set plugins(n = void 0) {\n se(n), $();\n },\n get refetchonexpire() {\n return be();\n },\n set refetchonexpire(n = !0) {\n be(n), $();\n },\n get spamfilter() {\n return N();\n },\n set spamfilter(n = !1) {\n N(n), $();\n },\n get strings() {\n return X();\n },\n set strings(n = void 0) {\n X(n), $();\n },\n get test() {\n return U();\n },\n set test(n = !1) {\n U(n), $();\n },\n get verifyurl() {\n return Ee();\n },\n set verifyurl(n = void 0) {\n Ee(n), $();\n },\n get workers() {\n return Me();\n },\n set workers(n = Math.min(16, navigator.hardwareConcurrency || 8)) {\n Me(n), $();\n },\n get workerurl() {\n return tt();\n },\n set workerurl(n = void 0) {\n tt(n), $();\n }\n });\n}\nbl([\"change\"]);\ncustomElements.define(\"altcha-widget\", Ml(\n la,\n {\n blockspam: { type: \"Boolean\" },\n debug: { type: \"Boolean\" },\n delay: { type: \"Number\" },\n expire: { type: \"Number\" },\n floatingoffset: { type: \"Number\" },\n hidefooter: { type: \"Boolean\" },\n hidelogo: { type: \"Boolean\" },\n maxnumber: { type: \"Number\" },\n mockerror: { type: \"Boolean\" },\n refetchonexpire: { type: \"Boolean\" },\n test: { type: \"Boolean\" },\n workers: { type: \"Number\" },\n auto: {},\n challengeurl: {},\n challengejson: {},\n customfetch: {},\n floating: {},\n floatinganchor: {},\n id: {},\n name: {},\n obfuscated: {},\n plugins: {},\n spamfilter: {},\n strings: {},\n verifyurl: {},\n workerurl: {}\n },\n [\"default\"],\n [\n \"clarify\",\n \"configure\",\n \"getConfiguration\",\n \"getFloatingAnchor\",\n \"getPlugin\",\n \"getState\",\n \"reset\",\n \"setFloatingAnchor\",\n \"setState\",\n \"verify\"\n ],\n !1\n));\nglobalThis.altchaCreateWorker = (e) => e ? new Worker(new URL(e)) : new _i();\nglobalThis.altchaPlugins = globalThis.altchaPlugins || [];\nexport {\n la as Altcha\n};","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContact extends BasePage {\n static hash = hashPageContact;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormContactUs();\n }\n\n hookupButtonSubmitFormContactUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContactSuccess extends BasePage {\n static hash = hashPageContactSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageApplyFoundingPartner extends BasePage {\n static hash = hashPageApplyFoundingPartner;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormApplyFoundingPartnerUs();\n }\n\n hookupButtonSubmitFormApplyFoundingPartnerUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageApplyFoundingPartnerSuccess extends BasePage {\n static hash = hashPageApplyFoundingPartnerSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageDogHome extends BasePage {\n static hash = hashPageDogHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupDogHome();\n }\n hookupDogHome() {\n \n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport Utils from '../utils.js';\n\nexport default class BusinessObjects {\n static getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected = null) {\n return {\n text: objectJson[keyText],\n value: objectJson[keyValue],\n selected: (objectJson[keyValue] == valueSelected),\n };\n }\n static getOptionJsonFromObjectJson(objectJson, valueSelected = null) {\n let keyText = objectJson[flagNameAttrOptionText];\n let keyValue = objectJson[flagNameAttrOptionValue];\n // Utils.consoleLogIfNotProductionEnvironment({objectJson, keyText, keyValue});\n return BusinessObjects.getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected);\n }\n static getObjectText(objectJson) {\n return objectJson == null ? '' : objectJson[objectJson[flagNameAttrOptionText]];\n }\n static getListObjectsFromIdDictAndCsv(idDict, idCsv) {\n let listObjects = [];\n let ids = idCsv.split(',');\n for (let id of ids) {\n listObjects.push(idDict[id]);\n }\n return listObjects;\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayError {\n static hookup() {\n Events.initialiseEventHandler(idOverlayError + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayError);\n overlay.style.visibility = 'hidden';\n });\n });\n }\n static show(msgError) {\n let overlay = document.querySelector(idOverlayError);\n let labelError = overlay.querySelector(idLabelError);\n labelError.innerText = msgError;\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport Validation from \"../lib/validation.js\";\nimport BasePage from \"./base.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\n\nexport default class TableBasePage extends BasePage {\n // static hash\n // static attrIdRowObject\n // callSaveTableContent\n\n constructor(router) {\n super(router);\n this.cursorYInitial = null;\n this.rowInitial = null;\n this.placeholder = null;\n this.dragSrcEl = null;\n this.dragSrcRow = null;\n\n this.hookupTableCellDdls = this.hookupTableCellDdls.bind(this);\n }\n \n initialize(isPopState = false) {\n throw new Error(\"Must implement initialize() method.\");\n }\n sharedInitialize(isPopState = false, isSinglePageApp = false) {\n if (!isPopState) {\n super.sharedInitialize();\n this.hookupFilters();\n this.hookupButtonsSaveCancel();\n this.hookupTableMain();\n OverlayConfirm.hookup(() => {\n if (isSinglePageApp) {\n this.saveRecordsTableDirtySinglePageApp();\n }\n else {\n this.saveRecordsTableDirty();\n }\n });\n } else {\n let dataPage = this.getLocalStoragePage();\n let filters = dataPage[flagFormFilters];\n let formFilters = TableBasePage.getFormFilters();\n let filtersDefault = DOM.convertForm2JSON(formFilters);\n if (!Validation.areEqualDicts(filters, filtersDefault)) {\n this.callFilterTableContent();\n }\n }\n }\n hookupFilters() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method hookupFilters().\");\n }\n }\n sharedHookupFilters() {\n this.hookupButtonApplyFilters();\n this.hookupSearchTextFilter();\n }\n hookupFilterActive() {\n let filterSelector = idFormFilters + ' #' + flagActiveOnly;\n let filterActiveOld = document.querySelector(filterSelector);\n filterActiveOld.removeAttribute('id');\n let parentDiv = filterActiveOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterActiveNew = document.querySelector(idFormFilters + ' div.' + flagActiveOnly + '.' + flagContainerInput + ' svg.' + flagActiveOnly);\n filterActiveNew.setAttribute('id', flagActiveOnly);\n if (isChecked) filterActiveNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterActive) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterActive });\n Utils.consoleLogIfNotProductionEnvironment({ [filterActive.tagName]: filterActive.tagName });\n let svgElement = (filterActive.tagName.toUpperCase() == 'SVG') ? filterActive : filterActive.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterActive);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n hookupFilter(filterFlag, handler = (event, filter) => { return this.handleChangeFilter(event, filter); }) {\n let filterSelector = idFormFilters + ' #' + filterFlag;\n Events.hookupEventHandler(\"change\", filterSelector, handler);\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n handleChangeFilter(event, filter) {\n let isDirtyFilter = DOM.updateAndCheckIsElementDirty(filter);\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = isDirtyFilter || DOM.hasDirtyChildrenContainer(formFilters);\n let tbody = document.querySelector(idTableMain + ' tbody');\n let rows = tbody.querySelectorAll(':scope > tr');\n rows.forEach((row) => {\n if (areDirtyFilters && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);\n if (!areDirtyFilters && row.classList.contains(flagIsCollapsed)) {\n row.classList.remove(flagIsCollapsed);\n let dirtyInputs = row.querySelectorAll('input.' + flagDirty);\n dirtyInputs.forEach((dirtyInput) => {\n dirtyInput.value = DOM.getElementAttributeValueCurrent(dirtyInput);\n });\n }\n });\n if (areDirtyFilters) {\n /*\n tbody.querySelectorAll('tr').forEach((tr) => { \n if (!DOM.hasDirtyChildrenContainer(tr)) tr.remove(); \n });\n */\n tbody.innerHTML = '
Press \"Apply Filters\" to refresh the table.
' + tbody.innerHTML;\n if (!tbody.classList.contains(flagIsCollapsed)) tbody.classList.add(flagIsCollapsed);\n }\n else {\n let isDirtyLabel = tbody.querySelector(\":scope > div\");\n if (isDirtyLabel != null) isDirtyLabel.remove();\n if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);\n let initialisedElements = tbody.querySelectorAll('.' + flagInitialised);\n initialisedElements.forEach((initialisedElement) => {\n initialisedElement.classList.remove(flagInitialised);\n });\n this.hookupTableMain();\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupFilterIsNotEmpty() {\n this.hookupFilter(flagIsNotEmpty);\n }\n hookupButtonApplyFilters() {\n Events.hookupEventHandler(\"click\", idButtonApplyFilters, (event, button) => {\n event.stopPropagation();\n this.callFilterTableContent();\n });\n }\n hookupSearchTextFilter() {\n this.hookupFilter(flagSearch);\n }\n hookupFilterDog() {\n this.hookupFilter(attrIdDog); \n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory, (event, filterCommandCategory) => {\n this.handleChangeFilter();\n let isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);\n let idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);\n console.log(\"filter commands unsorted\");\n console.log(Utils.getListFromDict(filterCommands));\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => command[attrIdCommandCategory] == idCommandCategory);\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);\n let idCommandPrevious = DOM.getElementAttributeValuePrevious(filterCommand);\n filterCommand.innerHTML = '';\n let optionJson, option;\n option = DOM.createOption(null);\n filterCommand.appendChild(option);\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command, idCommandPrevious);\n option = DOM.createOption(optionJson);\n filterCommand.appendChild(option);\n });\n filterCommand.dispatchEvent(new Event('change'));\n return isDirtyFilter;\n });\n }\n hookupFilterCommand() {\n this.hookupFilter(attrIdCommand);\n }\n hookupFilterLocation() {\n this.hookupFilter(attrIdLocation);\n }\n /*\n getAndLoadFilteredTableContent = () => {\n this.callFilterTableContent()\n .catch(error => console.error('Error:', error));\n }\n */\n static getFormFilters() {\n return document.querySelector(idFormFilters);\n }\n callFilterTableContent() {\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"callFilterTableContent\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(this.constructor.hash, filtersJson);\n }\n callbackLoadTableContent(response) {\n let table = TableBasePage.getTableMain();\n let bodyTable = table.querySelector('tbody');\n bodyTable.querySelectorAll('tr').forEach(function(row) { row.remove(); });\n let rowsJson = response.data[flagRows];\n if (!Validation.isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {\n rowsJson = rowsJson.sort((a, b) => a.display_order - b.display_order);\n }\n rowsJson.forEach(this.loadRowTable.bind(this));\n this.hookupTableMain();\n }\n static getTableMain() {\n return document.querySelector(idTableMain);\n }\n loadRowTable(rowJson) {\n throw new Error(\"Subclass of TableBasePage must implement method loadRowTable().\");\n }\n getAndLoadFilteredTableContentSinglePageApp() {\n this.callFilterTableContent()\n .then(data => {\n Utils.consoleLogIfNotProductionEnvironment('Table data received:', data);\n this.callbackLoadTableContent(data);\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonsSaveCancel() {\n this.hookupButtonSave();\n this.hookupButtonCancel();\n this.toggleShowButtonsSaveCancel(false);\n }\n saveRecordsTableDirty() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n /*\n Utils.consoleLogIfNotProductionEnvironment({ formElement, comment, records });\n Utils.consoleLogIfNotProductionEnvironment('records');\n Utils.consoleLogIfNotProductionEnvironment(records);\n debugger;\n */\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callFilterTableContent();\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n getTableRecords(dirtyOnly = false) {\n let records = [];\n let record;\n document.querySelectorAll(idTableMain + ' > tbody > tr').forEach((row) => {\n if (dirtyOnly && !DOM.hasDirtyChildrenContainer(row)) return;\n record = this.getJsonRow(row);\n records.push(record);\n });\n return records;\n }\n getJsonRow(row) {\n throw new Error(\"Subclass of TableBasePage must implement method getJsonRow().\");\n }\n saveRecordsTableDirtySinglePageApp() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callbackLoadTableContent(data);\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonCancel() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagCancel, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n this.callFilterTableContent();\n });\n button.classList.add(flagIsCollapsed);\n });\n }\n handleClickAddRowTable(event, button) {\n event.stopPropagation();\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - _rowBlank.getAttribute(this.constructor.attrIdRowObject));\n let tbody = document.querySelector(idTableMain + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlank.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n row.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n this.initialiseRowNew(tbody, row);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableMain();\n this.postInitialiseRowNewCallback(tbody);\n }\n initialiseRowNew(tbody, row) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method initialiseRowNew().\");\n }\n // row.classList.remove(flagRowNew);\n }\n hookupTableMain() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement hookupTableMain() method.\");\n }\n Events.initialiseEventHandler(idTableMain, flagInitialised, (table) => {\n this.cacheRowBlank();\n });\n }\n cacheRowBlank() {\n let selectorRowNew = idTableMain + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n _rowBlank = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n }\n postInitialiseRowNewCallback(tbody) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method postInitialiseRowNewCallback(tbody).\");\n }\n }\n initialiseSliderDisplayOrderRowNew(tbody, row) {\n // let tdSelector = ':scope > tr > td.' + flagDisplayOrder;\n // let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');\n let slidersDisplayOrder = tbody.querySelectorAll(':scope > tr > td.' + flagDisplayOrder + ' input.' + flagSlider);\n let maxDisplayOrder = 0;\n slidersDisplayOrder.forEach((slider) => {\n maxDisplayOrder = Math.max(maxDisplayOrder, parseFloat(DOM.getElementValueCurrent(slider)));\n });\n let sliderDisplayOrder = row.querySelector('td.' + flagDisplayOrder + ' .' + flagSlider);\n DOM.setElementValuesCurrentAndPrevious(sliderDisplayOrder, maxDisplayOrder + 1);\n }\n hookupSlidersDisplayOrderTable() {\n let selectorDisplayOrder = idTableMain + ' tbody tr td.' + flagDisplayOrder + ' input.' + flagSlider + '.' + flagDisplayOrder;\n this.hookupChangeHandlerTableCells(selectorDisplayOrder);\n }\n hookupChangeHandlerTableCells(inputSelector, handler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.initialiseEventHandler(inputSelector, flagInitialised, (input) => {\n input.addEventListener(\"change\", (event) => {\n handler(event, input);\n });\n handler(null, input);\n });\n }\n handleChangeNestedElementCellTable(event, element) {\n let wasDirtyParentRows = this.getAllIsDirtyRowsInParentTree(element);\n let wasDirtyElement = element.classList.contains(flagDirty);\n let isDirtyElement = DOM.updateAndCheckIsElementDirty(element);\n // Utils.consoleLogIfNotProductionEnvironment({isDirtyElement, wasDirtyElement, wasDirtyParentRows});\n // let td = DOM.getCellFromElement(element);\n // DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));\n if (isDirtyElement != wasDirtyElement) {\n // DOM.handleDirtyElement(td, isDirtyElement);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows);\n }\n }\n getAllIsDirtyRowsInParentTree(element) {\n let rows = [];\n let parent = element;\n let isDirty;\n while (parent) {\n if (parent.tagName.toUpperCase() == 'TR') {\n isDirty = parent.classList.contains(flagDirty)\n rows.push(isDirty);\n }\n parent = parent.parentElement;\n }\n return rows;\n }\n cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows) {\n if (Validation.isEmpty(wasDirtyParentRows)) return;\n let tr = DOM.getRowFromElement(element);\n let isDirtyRow = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);\n let wasDirtyRow = wasDirtyParentRows.shift();\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(tr, isDirtyRow);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(tr.parentElement, isDirtyRow, wasDirtyParentRows);\n }\n }\n hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector, handler = (event, element) => {\n if (!element.classList.contains(flagIsCollapsed)) this.handleChangeNestedElementCellTable(event, element);\n }) {\n Events.hookupEventHandler(\"change\", inputSelector, handler);\n }\n hookupFieldsCodeTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagCode + ' > .' + flagCode);\n }\n hookupFieldsNameTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagName + ' > .' + flagName);\n }\n hookupFieldsDescriptionTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagDescription + ' > .' + flagDescription);\n }\n hookupFieldsNotesTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagNotes + ' > .' + flagNotes);\n }\n hookupFieldsActive(flagTable = '', handleClickRowNew = (event, element) => { this.handleClickAddRowTable(event, element); }) {\n let selectorButton = 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;\n let selectorButtonDelete = selectorButton + '.' + flagDelete;\n let selectorButtonUndelete = selectorButton + ':not(.' + flagDelete + ')';\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsActive: \", selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete);\n Events.hookupEventHandler(\n \"click\"\n , 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' .' + flagButton + '.' + flagActive\n , (event, button) => { handleClickRowNew(event, button); }\n );\n }\n hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonDelete, (event, element) => {\n this.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = element.classList.contains(flagDirty);\n let row = DOM.getRowFromElement(element);\n if (row.classList.contains(flagRowNew) && !DOM.hasDirtyChildrenContainer(row)) {\n row.parentNode.removeChild(row);\n }\n else {\n let buttonAddTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagAdd);\n let buttonAdd = buttonAddTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonAdd, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonAdd, false);\n if (wasDirty) buttonAdd.classList.add(flagDirty);\n element.replaceWith(buttonAdd);\n changeHandler(null, buttonAdd);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonUndelete, (event, element) => {\n this.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = DOM.isElementDirty(element);\n let buttonDeleteTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagDelete);\n let buttonDelete = buttonDeleteTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonDelete, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonDelete, true);\n if (wasDirty) buttonDelete.classList.add(flagDirty);\n element.replaceWith(buttonDelete);\n changeHandler(null, buttonDelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupTdsAccessLevel() {\n this.hookupTableCellDdlPreviews(flagAccessLevel, Utils.getListFromDict(accessLevels));\n }\n hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n if (cellSelector == null) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + fieldFlag, (event, div) => {\n this.handleClickTableCellDdlPreview(\n event\n , div\n , fieldFlag\n , optionList\n , cellSelector\n , (ddlSelector) => { ddlHookup(\n ddlSelector\n , (event, element) => { changeHandler(event, element); }\n ); }\n );\n });\n ddlHookup(cellSelector + ' select.' + fieldFlag);\n }\n hookupTableCellDdls(ddlSelector, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { changeHandler(event, element); });\n }\n handleClickTableCellDdlPreview(event, div, fieldFlag, optionObjectList, cellSelector = null, ddlHookup = (cellSelector) => { this.hookupTableCellDdls(cellSelector); }) {\n if (Validation.isEmpty(cellSelector)) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n let idSelected = DOM.getElementAttributeValueCurrent(div);\n let td = DOM.getCellFromElement(div);\n td.innerHTML = '';\n let ddl = document.createElement('select');\n ddl.classList.add(fieldFlag);\n DOM.setElementValuesCurrentAndPrevious(ddl, idSelected);\n let optionJson, option;\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"click table cell ddl preview\");\n Utils.consoleLogIfNotProductionEnvironment({optionObjectList, cellSelector});\n }\n option = DOM.createOption(null);\n ddl.appendChild(option);\n optionObjectList.forEach((optionObjectJson) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(optionObjectJson, idSelected);\n option = DOM.createOption(optionJson);\n ddl.appendChild(option);\n });\n td.appendChild(ddl);\n let ddlSelector = cellSelector + ' select.' + fieldFlag;\n ddlHookup(ddlSelector);\n }\n /*\n hookupTableCellDDlPreviewsWhenNotCollapsed(cellSelector, optionList, ddlHookup = (event, element) => { this.hookupTableCellDdls(event, element); }) {\n Events.hookupEventHandler(\"click\", cellSelector + ' div', (event, div) => {\n this.handleClickTableCellDdlPreview(event, div, optionList, cellSelector, (event, element) => { ddlHookup(event, element); });\n });\n }\n */\n toggleColumnCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n toggleColumnHeaderCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n\n hookupFieldsCommandCategory(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , idTable + ' > tbody > tr > td.' + flagCommandCategory // + ' .' + flagCommandCategory\n , (cellSelector) => { this.hookupCommandCategoryDdls(cellSelector); }\n );\n }\n hookupCommandCategoryDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeCommandCategoryDdl(event, element); });\n }\n handleChangeCommandCategoryDdl(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (\n idCommandCategoryRowOld == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n ) return;\n console.log({ idCommandCategoryRowNew, idCommandCategoryRowOld });\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let tdCommand = row.querySelector('td.' + flagCommand);\n tdCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n hookupFieldsCommand(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n Events.hookupEventHandler(\"click\", idTable + ' > tbody > tr > td.' + flagCommand + ' div.' + flagCommand, (event, div) => {\n Utils.consoleLogIfNotProductionEnvironment(div);\n let parentTr = DOM.getRowFromElement(div);\n Utils.consoleLogIfNotProductionEnvironment({ div, parentTr });\n let tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);\n let idCommandCategoryRow = this.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let filterCommandList = Utils.getListFromDict(filterCommands);\n let commandsInCategory = filterCommandList.filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRow\n || idCommandCategoryRow == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n Utils.consoleLogIfNotProductionEnvironment({ tdCommandCategory, idCommandCategoryRow, idCommandCategoryFilter, filterCommandList, commandsInCategory });\n Utils.consoleLogIfNotProductionEnvironment(filterCommandList);\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagCommand // fieldFlag\n , sortedCommands // optionList\n , idTable + ' > tbody > tr > td.' + flagCommand // cellSelector\n , (cellSelector) => { this.hookupTableCellDdls(\n cellSelector\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n idTable + ' > tbody > tr > td.' + flagCommand + ' select.' + flagCommand\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n );\n }\n handleChangeCommandDdl(event, ddlCommand) {\n // console.log(\"handle change command ddl\");\n let row = DOM.getRowFromElement(ddlCommand);\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row);\n let idCommandNew = this.getIdCommandRow(row);\n let commandNew = filterCommands[idCommandNew];\n // console.log({ idCommandCategoryRowOld, commandNew });\n if (commandNew == null || idCommandCategoryRowOld == commandNew[attrIdCommandCategory]) return;\n let divCommandCategory = row.querySelector('td.' + flagCommandCategory + ' div');\n if (divCommandCategory) divCommandCategory.dispatchEvent(new Event('click'));\n let ddlCommandCategory = row.querySelector('td.' + flagCommandCategory + ' select.' + flagCommandCategory);\n DOM.setElementValueCurrent(ddlCommandCategory, commandNew[attrIdCommandCategory]);\n // console.log({ ddlCommandCategory, commandNew });\n this.handleChangeNestedElementCellTable(event, ddlCommandCategory);\n }\n getIdCommandCategoryRow(tr) {\n let elementCommandCategory = tr.querySelector('td.' + flagCommandCategory + ' .' + flagCommandCategory);\n return DOM.getElementAttributeValueCurrent(elementCommandCategory);\n }\n getIdCommandCategoryFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let idCommandCategory = 0;\n if (formFilters == null) return idCommandCategory;\n let commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandCategoryFilter = DOM.getElementAttributeValueCurrent(commandCategoryFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandCategoryFilter });\n if (valueCurrentCommandCategoryFilter == \"\") {\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandFilter });\n if (valueCurrentCommandFilter != \"\") {\n let command = filterCommands[valueCurrentCommandFilter];\n idCommandCategory = command[attrIdCommandCategory];\n }\n } else {\n idCommandCategory = Number(valueCurrentCommandCategoryFilter);\n }\n return idCommandCategory;\n }\n getHasCommandCategoryFilter() {\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n return !(Validation.isEmpty(idCommandCategoryFilter) || idCommandCategoryFilter == 0);\n }\n getIdCommandRow(tr) {\n let elementCommand = tr.querySelector('td.' + flagCommand + ' .' + flagCommand);\n return DOM.getElementAttributeValueCurrent(elementCommand);\n }\n getIdCommandFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n let idCommand = Number(valueCurrentCommandFilter);\n return idCommand;\n }\n getHasCommandFilter() {\n let idCommandFilter = this.getIdCommandFilter();\n return !(Validation.isEmpty(idCommandFilter) || idCommandFilter == 0);\n }\n hookupFieldsDog() {\n this.hookupTableCellDdlPreviews(flagDog, Utils.getListFromDict(filterDogs));\n }\n getIdDogRow(tr) {\n let elementDog = tr.querySelector('td.' + flagDog + ' .' + flagDog);\n return DOM.getElementAttributeValueCurrent(elementDog);\n }\n /*\n createTdActive(isActive) {\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive);\n let buttonActive = document.createElement(\"button\");\n buttonActive.classList.add(flagActive);\n buttonActive.classList.add(isActive ? flagDelete : flagAdd);\n buttonActive.textContent = isActive ? 'x' : '+';\n DOM.setElementAttributesValuesCurrentAndPrevious(buttonActive, isActive);\n tdActive.appendChild(buttonActive);\n return tdActive;\n }\n */\n leave() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n super.leave();\n let formFilters = TableBasePage.getFormFilters();\n let dataPage = {};\n dataPage[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n this.setLocalStoragePage(dataPage);\n }\n\n toggleColumnHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n let columnThHasFlag = columnTh.classList.contains(classnameFlag);\n if (isRequiredFlag == columnThHasFlag) return;\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n toggleColumnHeaderHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n\n updateAndToggleShowButtonsSaveCancel() {\n let records = this.getTableRecords(true);\n let isDirtyMainTable = records.length > 0;\n\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters);\n\n console.log({ records, isDirtyMainTable, formFilters, areDirtyFilters });\n\n this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters);\n }\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport TableBasePage from \"../base_table.js\";\n\nexport default class DogMixinPage {\n constructor(pageCurrent) {\n this.page = pageCurrent;\n }\n\n initialize() {\n Utils.consoleLogIfNotProductionEnvironment('hookup dog start for ', this.page.hash);\n this.hookupFilters();\n this.hookupLocalStorageDog();\n }\n hookupFilters() {\n }\n hookupLocalStorageDog() {\n \n }\n\n /*\n hookupDogCardsProduct() {\n \n let d; // , lsShared;\n let selectorCardProduct = '.card.subcard';\n Events.initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"initialising product card: \", cardProduct); }\n cardProduct.addEventListener(\"click\", function(event) {\n // d = { keyIdProduct: product.getAttribute(attrIdProduct) }\n var elemClicked = event.target;\n if (elemClicked.id != 'submit') { // disable for submit buttons\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"product click: \" + cardProduct.getAttribute(attrIdProduct));\n Utils.consoleLogIfNotProductionEnvironment(\"permutation click: \" + cardProduct.getAttribute(attrIdPermutation));\n }\n var d = {}\n d[keyIdProduct] = cardProduct.getAttribute(attrIdProduct)\n d[keyIdPermutation] = cardProduct.getAttribute(attrIdPermutation)\n // send quantity requested\n goToPage(hashPageDogProduct, d);\n }\n });\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"click method added for product ID: \" + cardProduct.getAttribute(attrIdProduct) + ', permutation ID: ', cardProduct.getAttribute(attrIdPermutation)); }\n });\n }\n */\n \n leave() {}\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport DogMixinPage from \"./mixin.js\";\nimport Utils from \"../../lib/utils.js\";\n\nexport default class DogTableMixinPage extends DogMixinPage {\n constructor(pageCurrent) {\n super(pageCurrent);\n }\n initialize() {\n super.initialize();\n this.hookupFilters();\n this.hookupTable();\n }\n hookupFilters() {\n // Implement filter-specific functionality here\n }\n hookupTable() {\n // Implement table-specific functionality here\n }\n hookupFieldsLocation() {\n this.page.hookupTableCellDdlPreviews(\n flagLocation\n , Utils.getListFromDict(filterLocations) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n}","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandCategories extends TableBasePage {\n static hash = hashPageDogCommandCategories;\n static attrIdRowObject = attrIdCommandCategory;\n callSaveTableContent = API.saveCommandCategories;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCommandCategory] = row.getAttribute(attrIdCommandCategory);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommands extends TableBasePage {\n static hash = hashPageDogCommands;\n static attrIdRowObject = attrIdCommand;\n callSaveTableContent = API.saveCommands;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterActive();\n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let inputHandSignalDefaultDescription = row.querySelector('td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n let inputCanHaveButton = row.querySelector('td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n /*\n Utils.consoleLogIfNotProductionEnvironment({ inputName, inputHandSignalDefaultDescription, inputCanHaveButton, inputNotes, buttonActive });\n debugger;\n */\n\n let jsonRow = {};\n jsonRow[attrIdCommand] = row.getAttribute(attrIdCommand);\n jsonRow[attrIdCommandCategory] = this.getIdCommandCategoryRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagHandSignalDefaultDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDefaultDescription);\n jsonRow[flagCanHaveButton] = (DOM.getElementAttributeValueCurrent(inputCanHaveButton) == \"true\");\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsNameTable();\n this.hookupTextareasHandSignalDefaultDescription();\n this.hookupFieldsCanHaveButton();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsCommandCategory() {\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories)\n );\n }\n hookupTextareasHandSignalDefaultDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n }\n hookupFieldsCanHaveButton() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogDogCommandLinks extends TableBasePage {\n static hash = hashPageDogDogCommandLinks;\n static attrIdRowObject = attrIdDogCommandLink;\n callSaveTableContent = API.saveDogCommandLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterDog();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDog();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupTextareasHandSignalDescription();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupTextareasHandSignalDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDescription + ' .' + flagHandSignalDescription);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogLocations extends TableBasePage {\n static hash = hashPageDogLocations;\n static attrIdRowObject = attrIdLocation;\n callSaveTableContent = API.saveLocations;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdLocation] = row.getAttribute(attrIdLocation);\n jsonRow[flagLocationParent] = this.getIdLocationParentRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdLocationParentRow(row) {\n let elementLocationParent = row.querySelector('td.' + flagLocationParent + ' .' + flagLocationParent);\n return DOM.getElementAttributeValueCurrent(elementLocationParent);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagLocationParent + ' div.' + flagLocationParent\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsLocationParent();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsLocationParent() {\n /*\n this.hookupTableCellDdlPreviews(\n flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] == idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , null // cellSelector\n , (cellSelector) => { this.hookupLocationParentDdls(cellSelector); }\n ,\n );\n\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n\n */\n let cellSelector = idTableMain + ' > tbody > tr > td.' + flagLocationParent;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + flagLocationParent, (event, div) => {\n let row = DOM.getRowFromElement(div);\n let idLocationRow = Number(row.getAttribute(attrIdLocation));\n Utils.consoleLogIfNotProductionEnvironment({ idLocationRow });\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] != idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , cellSelector\n , (ddlSelector) => { this.hookupTableCellDdls(\n ddlSelector\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n cellSelector + ' select.' + flagLocationParent\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n );\n }\n /*\n hookupLocationParentDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeNestedElementCellTable(event, element); });\n }\n */\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogButtonIcons extends TableBasePage {\n static hash = hashPageDogButtonIcons;\n static attrIdRowObject = attrIdButtonIcon;\n callSaveTableContent = API.saveButtonIcons;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdButtonIcon] = row.getAttribute(attrIdButtonIcon);\n jsonRow[flagImage] = this.getIdImageRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdImageRow(row) {\n let elementImage = row.querySelector('td.' + flagImage + ' .' + flagImage);\n return DOM.getElementAttributeValueCurrent(elementImage);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagImage + ' div.' + flagImage\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsImage();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsImage() {\n this.hookupTableCellDdlPreviews(\n flagImage\n , Utils.getListFromDict(buttonicons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandButtonLinks extends TableBasePage {\n static hash = hashPageDogCommandButtonLinks;\n static attrIdRowObject = attrIdCommandButtonLink;\n callSaveTableContent = API.saveCommandButtonLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterButtonShape();\n this.hookupFilterColour();\n this.hookupFilterButtonIcon();\n this.hookupFilterLocation();\n this.hookupFilterActive();\n }\n hookupFilterButtonShape() {\n this.hookupFilter(attrIdButtonShape);\n }\n hookupFilterColour() {\n this.hookupFilter(attrIdColour);\n }\n hookupFilterButtonIcon() {\n this.hookupFilter(attrIdButtonIcon);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdCommandButtonLink] = row.getAttribute(attrIdCommandButtonLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupFieldsButtonShape();\n this.hookupFieldsColour();\n this.hookupFieldsButtonIcon();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsActive();\n }\n hookupFieldsButtonShape() {\n this.hookupTableCellDdlPreviews(\n flagButtonShape\n , Utils.getListFromDict(filterButtonShapes) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsColour() {\n this.hookupTableCellDdlPreviews(\n flagColour\n , Utils.getListFromDict(filterColours) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsButtonIcon() {\n this.hookupTableCellDdlPreviews(\n flagButtonIcon\n , Utils.getListFromDict(filterButtonIcons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nvar _rowBlankDistraction;\nvar _rowBlankAssessmentCommandModalityLink;\n\nexport default class PageDogAssessment extends TableBasePage {\n static hash = hashPageDogAssessment;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessmentsDistractionsAndResponses;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getTableRecords(dirtyOnly = false) {\n dirtyOnly = true;\n let row = document.querySelector(idTableAssessment + ' tbody tr.' + flagAssessment);\n return [this.getJsonRow(row)];\n }\n getJsonRow(row) {\n console.log(\"getJsonRow: \", row);\n if (row == null) return;\n let inputWeather = row.querySelector(idTableAssessment + ' td.' + flagWeather + ' .' + flagWeather);\n let inputLightingLevel = row.querySelector(idTableAssessment + ' td.' + flagLightingLevel + ' .' + flagLightingLevel);\n let inputTemeratureCelcius = row.querySelector(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n let inputLocation = row.querySelector(idTableAssessment + ' td.' + flagLocation + ' .' + flagLocation);\n let inputUserHandler = row.querySelector(idTableAssessment + ' td.' + flagUserHandler + ' .' + flagUserHandler);\n let inputNotes = row.querySelector(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n // let buttonActive = row.querySelector(idTableAssessment + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n let idAssessment = row.getAttribute(attrIdAssessment);\n let jsonRow = {};\n jsonRow[attrIdAssessment] = idAssessment;\n jsonRow[attrIdWeather] = DOM.getElementAttributeValueCurrent(inputWeather);\n jsonRow[attrIdLightingLevel] = DOM.getElementAttributeValueCurrent(inputLightingLevel);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemeratureCelcius);\n jsonRow[attrIdLocation] = DOM.getElementAttributeValueCurrent(inputLocation);\n jsonRow[flagUserHandler] = DOM.getElementAttributeValueCurrent(inputUserHandler);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = true; // buttonActive.classList.contains(flagDelete);\n jsonRow[flagDistraction] = this.getDirtyDistractions(idAssessment);\n jsonRow[flagAssessmentCommandModalityLink] = this.getDirtyAssessmentCommandModalityLinks(idAssessment);\n console.log({ jsonRow });\n return jsonRow;\n }\n getDirtyDistractions(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableDistractions + ' tbody tr.' + flagDistraction + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n // dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputDistractionType, distractionType,\n inputIntensityLevelEmotional, intensityLevelEmotional,\n inputIntensityLevelScent, intensityLevelScent,\n inputIntensityLevelSight, intensityLevelSight,\n inputIntensityLevelSound, intensityLevelSound,\n inputIntensityLevelTouch, intensityLevelTouch,\n inputQuantity, quantity,\n inputProximityMetres, proximityMetres,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyDistractions');\n console.log({ dirtyRows });\n let dirtyDistractions = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputDistractionType = dirtyRow.querySelector('td.' + flagDistractionType + ' .' + flagDistractionType);\n distractionType = DOM.getElementAttributeValueCurrent(inputDistractionType);\n inputIntensityLevelEmotional = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelEmotional + ' .' + flagDistractionIntensityLevelEmotional);\n intensityLevelEmotional = DOM.getElementAttributeValueCurrent(inputIntensityLevelEmotional);\n inputIntensityLevelScent = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelScent + ' .' + flagDistractionIntensityLevelScent);\n intensityLevelScent = DOM.getElementAttributeValueCurrent(inputIntensityLevelScent);\n inputIntensityLevelSight = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSight + ' .' + flagDistractionIntensityLevelSight);\n intensityLevelSight = DOM.getElementAttributeValueCurrent(inputIntensityLevelSight);\n inputIntensityLevelSound = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSound + ' .' + flagDistractionIntensityLevelSound);\n intensityLevelSound = DOM.getElementAttributeValueCurrent(inputIntensityLevelSound);\n inputIntensityLevelTouch = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelTouch + ' .' + flagDistractionIntensityLevelTouch);\n intensityLevelTouch = DOM.getElementAttributeValueCurrent(inputIntensityLevelTouch);\n inputQuantity = dirtyRow.querySelector('td.' + flagQuantity + ' .' + flagQuantity);\n quantity = DOM.getElementAttributeValueCurrent(inputQuantity);\n inputProximityMetres = dirtyRow.querySelector('td.' + flagProximityMetres + ' .' + flagProximityMetres);\n proximityMetres = DOM.getElementAttributeValueCurrent(inputProximityMetres);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableDistractions + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyDistractions.push({\n [attrIdDistraction]: dirtyRow.getAttribute(attrIdDistraction)\n , [attrIdAssessment]: idAssessment\n , [attrIdDistractionType]: distractionType\n , [flagDistractionIntensityLevelEmotional]: intensityLevelEmotional\n , [flagDistractionIntensityLevelScent]: intensityLevelScent\n , [flagDistractionIntensityLevelSight]: intensityLevelSight\n , [flagDistractionIntensityLevelSound]: intensityLevelSound\n , [flagDistractionIntensityLevelTouch]: intensityLevelTouch\n , [flagQuantity]: quantity\n , [flagProximityMetres]: proximityMetres\n , [flagNotes]: notes\n , [flagActive]: active\n });\n };\n return dirtyDistractions;\n }\n getDirtyAssessmentCommandModalityLinks(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr.' + flagAssessmentCommandModalityLink + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow, idAssessmentCommandModalityLink,\n inputCommand, command,\n inputCommandModality, commandModality,\n inputBribe, bribe,\n inputDistanceFromHandler, distanceFromhandler,\n inputIsInHearingRangeOfHandler, isInHearingRangeOfHandler,\n inputIsInScentRangeOfHandler, isInScentRangeOfHandler,\n inputIsInSightOfHandler, isInSightOfHandler,\n inputIsOnLead, isOnLead,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentCommandModalityLinks');\n console.log({ dirtyRows });\n let dirtyLinks = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n idAssessmentCommandModalityLink = dirtyRow.getAttribute(attrIdAssessmentCommandModalityLink);\n inputCommand = dirtyRow.querySelector('td.' + flagCommand + ' .' + flagCommand);\n command = DOM.getElementAttributeValueCurrent(inputCommand);\n inputCommandModality = dirtyRow.querySelector('td.' + flagCommandModality + ' .' + flagCommandModality);\n commandModality = DOM.getElementAttributeValueCurrent(inputCommandModality);\n inputBribe = dirtyRow.querySelector('td.' + flagBribe + ' .' + flagBribe);\n bribe = DOM.getElementAttributeValueCurrent(inputBribe);\n inputDistanceFromHandler = dirtyRow.querySelector('td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n distanceFromhandler = DOM.getElementAttributeValueCurrent(inputDistanceFromHandler);\n inputIsInHearingRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n isInHearingRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInHearingRangeOfHandler);\n inputIsInScentRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n isInScentRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInScentRangeOfHandler);\n inputIsInSightOfHandler = dirtyRow.querySelector('td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n isInSightOfHandler = DOM.getElementAttributeValueCurrent(inputIsInSightOfHandler);\n inputIsOnLead = dirtyRow.querySelector('td.' + flagIsOnLead + ' .' + flagIsOnLead);\n isOnLead = DOM.getElementAttributeValueCurrent(inputIsOnLead);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentCommandModalityLinks + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyLinks.push({\n [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdAssessment]: idAssessment\n , [attrIdCommand]: command\n , [attrIdCommandModality]: commandModality\n , [attrIdBribe]: bribe\n , [flagDistanceFromHandlerMetres]: distanceFromhandler\n , [flagIsInHearingRangeOfHandler]: isInHearingRangeOfHandler\n , [flagIsInScentRangeOfHandler]: isInScentRangeOfHandler\n , [flagIsInSightOfHandler]: isInSightOfHandler\n , [flagIsOnLead]: isOnLead\n , [flagNotes]: notes\n , [flagActive]: active\n , [flagAssessmentResponse]: this.getDirtyAssessmentResponses(dirtyRow, idAssessmentCommandModalityLink)\n });\n }\n return dirtyLinks;\n }\n getDirtyAssessmentResponses(rowAssessmentCommandModalityLink, idAssessmentCommandModalityLink) {\n let dirtyRows = rowAssessmentCommandModalityLink.querySelectorAll(idTableAssessmentResponses + ' tbody tr.' + flagAssessmentResponse + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputResponseQualityMetric, responseQualityMetric,\n inputObedienceLevel, obedienceLevel,\n inputValueMeasured, valueMeasured,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentResponses');\n console.log({ dirtyRows });\n let dirtyResponses = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputResponseQualityMetric = dirtyRow.querySelector('td.' + flagResponseQualityMetric + ' .' + flagResponseQualityMetric);\n responseQualityMetric = DOM.getElementAttributeValueCurrent(inputResponseQualityMetric);\n inputObedienceLevel = dirtyRow.querySelector('td.' + flagObedienceLevel + ' .' + flagObedienceLevel);\n obedienceLevel = DOM.getElementAttributeValueCurrent(inputObedienceLevel);\n inputValueMeasured = dirtyRow.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n valueMeasured = DOM.getElementAttributeValueCurrent(inputValueMeasured);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentResponses + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyResponses.push({\n [attrIdAssessmentResponse]: dirtyRow.getAttribute(attrIdAssessmentResponse)\n , [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdResponseQualityMetric]: responseQualityMetric\n , [attrIdObedienceLevel]: obedienceLevel\n , [flagValueMeasured]: valueMeasured\n , [flagNotes]: notes\n , [flagActive]: active\n });\n }\n return dirtyResponses;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagWeather + ' div.' + flagWeather\n , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel\n , ',td.' + flagLocation + ' div.' + flagLocation\n , ',td.' + flagUserHandler + ' div.' + flagUserHandler\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n callFilterTableContent() {\n if (assessment[attrIdAssessment] < 1) {\n let formFilters = TableBasePage.getFormFilters();\n let filterAssessment = formFilters.querySelector('#' + attrIdAssessment);\n DOM.setElementValueCurrent(filterAssessment, '');\n }\n super.callFilterTableContent();\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupTableAssessmentHeader();\n this.hookupTableDistractions();\n this.hookupTableAssessmentCommandModalityLinks();\n }\n hookupTableAssessmentHeader() {\n this.hookupTableAssessmentFieldWeather();\n this.hookupTableAssessmentFieldLightingLevel();\n this.hookupTableAssessmentFieldTemperature();\n this.hookupTableAssessmentFieldLocation();\n this.hookupTableAssessmentFieldUserHandler();\n this.hookupTableAssessmentFieldNotes();\n if (assessment[attrIdAssessment] < 1) {\n let tbody = document.querySelector(idTableAssessment + ' tbody');\n let row = tbody.querySelector('tr');\n row.classList.add(flagRowNew);\n this.postInitialiseRowNewCallback(tbody);\n }\n }\n hookupTableAssessmentFieldWeather() {\n let fieldFlag = flagWeather;\n let optionList = Utils.getListFromDict(filterWeathers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagWeather;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldLightingLevel() {\n let fieldFlag = flagLightingLevel;\n let optionList = Utils.getListFromDict(filterLightingLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLightingLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldTemperature() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n }\n hookupTableAssessmentFieldLocation() {\n let fieldFlag = flagLocation;\n let optionList = Utils.getListFromDict(filterLocations); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLocation;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldUserHandler() {\n let fieldFlag = flagUserHandler;\n let optionList = Utils.getListFromDict(filterUserHandlers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessment + ' td.' + flagUserHandler;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractions() {\n Events.initialiseEventHandler(idTableDistractions, flagInitialised, (table) => {\n let selectorRowNew = idTableDistractions + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n _rowBlankDistraction = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - countRows);\n });\n\n this.hookupTableDistractionsFieldsDistractionType();\n this.hookupTableDistractionsFieldsIntensityLevelEmotional();\n this.hookupTableDistractionsFieldsIntensityLevelScent();\n this.hookupTableDistractionsFieldsIntensityLevelSight();\n this.hookupTableDistractionsFieldsIntensityLevelSound();\n this.hookupTableDistractionsFieldsIntensityLevelTouch();\n this.hookupTableDistractionsFieldsQuantity();\n this.hookupTableDistractionsFieldsProximityMetres();\n this.hookupTableDistractionsFieldsNotes();\n this.hookupTableDistractionsFieldsActive();\n }\n hookupTableDistractionsFieldsDistractionType() {\n let fieldFlag = flagDistractionType;\n let optionList = Utils.getListFromDict(filterDistractionTypes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionType;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelEmotional() {\n let fieldFlag = flagDistractionIntensityLevelEmotional;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelEmotional;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelScent() {\n let fieldFlag = flagDistractionIntensityLevelScent;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelScent;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSight() {\n let fieldFlag = flagDistractionIntensityLevelSight;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSight;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSound() {\n let fieldFlag = flagDistractionIntensityLevelSound;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSound;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelTouch() {\n let fieldFlag = flagDistractionIntensityLevelTouch;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelTouch;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsQuantity() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagQuantity + ' .' + flagQuantity);\n }\n hookupTableDistractionsFieldsProximityMetres() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagProximityMetres + ' .' + flagProximityMetres);\n }\n hookupTableDistractionsFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractionsFieldsActive() {\n this.hookupFieldsActive(flagDistraction, (event, element) => { this.handleClickAddRowTableDistractions(event, element); });\n }\n handleClickAddRowTableDistractions(event, button) {\n event.stopPropagation();\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - _rowBlankDistraction.getAttribute(attrIdDistraction));\n let tbody = document.querySelector(idTableDistractions + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankDistraction.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n row.setAttribute(attrIdDistraction, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableDistractions();\n this.postInitialiseDistractionRowNewCallback(tbody);\n }\n postInitialiseDistractionRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDistractionType + ' div.' + flagDistractionType\n , ',td.' + flagDistractionIntensityLevelEmotional + ' div.' + flagDistractionIntensityLevelEmotional\n , ',td.' + flagDistractionIntensityLevelScent + ' div.' + flagDistractionIntensityLevelScent\n , ',td.' + flagDistractionIntensityLevelSight + ' div.' + flagDistractionIntensityLevelSight\n , ',td.' + flagDistractionIntensityLevelSound + ' div.' + flagDistractionIntensityLevelSound\n , ',td.' + flagDistractionIntensityLevelTouch + ' div.' + flagDistractionIntensityLevelTouch\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n hookupTableAssessmentCommandModalityLinks() {\n Events.initialiseEventHandler(idTableAssessmentCommandModalityLinks, flagInitialised, (table) => {\n let selectorRowNew = idTableAssessmentCommandModalityLinks + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n _rowBlankAssessmentCommandModalityLink = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n });\n\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandCategory();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommand();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality();\n this.hookupTableAssessmentCommandModalityLinksFieldsBribe();\n this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsOnLead();\n this.hookupTableAssessmentCommandModalityLinksFieldsTrialCount();\n this.hookupTableAssessmentCommandModalityLinksFieldsNotes();\n this.hookupTableAssessmentCommandModalityLinksFieldsResponses();\n this.hookupTableAssessmentCommandModalityLinksFieldsActive();\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandCategory() {\n this.hookupFieldsCommandCategory(idTableAssessmentCommandModalityLinks);\n /*\n let fieldFlag = flagCommandCategory;\n let optionList = Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandCategory;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n , (tdSelector) => { this.hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(tdSelector); }\n , (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); }\n );\n */\n }\n /*\n hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); });\n }\n handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (idCommandCategoryRowOld == idCommandCategoryRowNew) return;\n let divCommand = row.querySelector('td.' + flagCommand + ' div');\n if (divCommand) divCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n */\n hookupTableAssessmentCommandModalityLinksFieldsCommand() {\n this.hookupFieldsCommand(idTableAssessmentCommandModalityLinks);\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandModality() {\n let fieldFlag = flagCommandModality;\n let optionList = Utils.getListFromDict(filterCommandModalities); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandModality;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsBribe() {\n let fieldFlag = flagBribe;\n let optionList = Utils.getListFromDict(filterBribes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagBribe;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsOnLead() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsOnLead + ' .' + flagIsOnLead);\n }\n hookupTableAssessmentCommandModalityLinksFieldsTrialCount() {\n // this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagTrialCount + ' .' + flagTrialCount);\n }\n hookupTableAssessmentCommandModalityLinksFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' > tbody > tr > td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentCommandModalityLinksFieldsResponses() {\n let eventType = \"click\";\n let selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse;\n let handler = (event, element) => {\n let parentTd = DOM.getCellFromElement(element);\n let rowAssessmentCommandModalityLink = parentTd.closest('tr.' + flagAssessmentCommandModalityLink);\n let idAssessmentCommandModalityLink = rowAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink);\n let responsesTable = document.createElement(\"table\");\n responsesTable.id = idTableAssessmentResponses.replace(\"#\", \"\");\n responsesTable.classList.add(flagTableMain, flagAssessmentResponse);\n\n let head = document.createElement(\"thead\");\n let headRow = document.createElement(\"tr\");\n let thResponseQualityMetric = document.createElement(\"th\");\n thResponseQualityMetric.classList.add(flagResponseQualityMetric);\n thResponseQualityMetric.innerText = 'Response Quality Metric';\n headRow.appendChild(thResponseQualityMetric);\n let thObedienceLevel = document.createElement(\"th\");\n thObedienceLevel.classList.add(flagObedienceLevel);\n thObedienceLevel.innerText = 'Obedience Level';\n headRow.appendChild(thObedienceLevel);\n let thValueMeasured = document.createElement(\"th\");\n thValueMeasured.classList.add(flagValueMeasured);\n thValueMeasured.innerText = 'Value Measured';\n headRow.appendChild(thValueMeasured);\n let thNotes = document.createElement(\"th\");\n thNotes.classList.add(flagNotes);\n thNotes.innerText = 'Notes';\n headRow.appendChild(thNotes);\n let thActive = document.createElement(\"th\");\n thActive.classList.add(flagActive);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n thActive.appendChild(templateAddIcon.cloneNode(true));\n headRow.appendChild(thActive);\n head.appendChild(headRow);\n responsesTable.appendChild(head);\n\n let body = document.createElement(\"tbody\");\n \n let assessmentCommandModalityLinks = assessment[flagAssessmentCommandModalityLink].filter(link => link[attrIdAssessmentCommandModalityLink] == idAssessmentCommandModalityLink);\n let assessmentCommandModalityLink = (assessmentCommandModalityLinks == null || assessmentCommandModalityLinks.length == 0) ? null : assessmentCommandModalityLinks[0];\n let responses = (assessmentCommandModalityLink == null) ? null : assessmentCommandModalityLink[flagAssessmentResponse];\n \n console.log({ assessmentCommandModalityLinks, responses });\n if (responses != null && responses.length > 0) {\n for (let responseKey in Object.keys(responses)) {\n let response = responses[responseKey];\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(response);\n body.appendChild(row);\n }\n }\n responsesTable.appendChild(body);\n\n parentTd.innerHTML = responsesTable.outerHTML;\n\n let responseRows = parentTd.querySelectorAll('tbody tr.' + flagAssessmentResponse);\n if (responseRows != null && responseRows.length > 0) {\n for (let indexRow = 0; indexRow < responseRows.length; indexRow++) {\n let row = responseRows[indexRow];\n // let idAssessmentResponse = row.getAttribute(attrIdAssessmentResponse);\n \n let response = responses[indexRow]; // idAssessmentResponse];\n console.log({ indexRow, row, response }); // idAssessmentResponse,\n let inputValueMeasured = row.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n DOM.setElementValueCurrent(inputValueMeasured, response[flagValueMeasured]);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n DOM.setElementValueCurrent(inputNotes, response[flagNotes]);\n }\n }\n\n this.hookupTablesAssessmentResponses();\n };\n Events.hookupEventHandler(\n eventType\n , selector\n , handler\n );\n this.hookupTablesAssessmentResponses();\n }\n static createNewRowTableAssessmentResponses(response) {\n if (response == null) response = {\n [attrIdAssessmentResponse]: null\n , [attrIdResponseQualityMetric]: {\n [attrIdResponseQualityMetric]: 0\n }\n , [attrIdObedienceLevel]: {\n [attrIdObedienceLevel]: 0\n }\n , [flagValueMeasured]: ''\n , [flagNotes]: ''\n , [flagActive]: true\n };\n console.log({ response });\n let isNew = (response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1);\n let row = document.createElement(\"tr\");\n row.classList.add(flagAssessmentResponse);\n if (isNew) row.classList.add(flagRowNew);\n row.setAttribute(attrIdAssessmentResponse, response[attrIdAssessmentResponse]);\n\n let tdResponseQualityMetric = document.createElement(\"td\");\n tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview);\n let divResponseQualityMetric = document.createElement(\"div\");\n divResponseQualityMetric.classList.add(flagResponseQualityMetric);\n let idResponseQualityMetric = response[attrIdResponseQualityMetric][attrIdResponseQualityMetric];\n let responseQualityMetric = filterResponseQualityMetrics[idResponseQualityMetric];\n DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, idResponseQualityMetric);\n divResponseQualityMetric.innerText = (responseQualityMetric == null) ? '' : responseQualityMetric[flagName];\n tdResponseQualityMetric.appendChild(divResponseQualityMetric);\n row.appendChild(tdResponseQualityMetric);\n\n let tdObedienceLevel = document.createElement(\"td\");\n tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview);\n let divObedienceLevel = document.createElement(\"div\");\n divObedienceLevel.classList.add(flagObedienceLevel);\n let idObedienceLevel = response[attrIdObedienceLevel][attrIdObedienceLevel];\n let obedienceLevel = filterObedienceLevels[idObedienceLevel];\n DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, idObedienceLevel);\n divObedienceLevel.innerText = (obedienceLevel == null) ? '' : obedienceLevel[flagName];\n tdObedienceLevel.appendChild(divObedienceLevel);\n row.appendChild(tdObedienceLevel);\n\n let tdValueMeasured = document.createElement(\"td\");\n tdValueMeasured.classList.add(flagValueMeasured, flagDdlPreview);\n let inputValueMeasured = document.createElement(\"input\");\n inputValueMeasured.type = \"number\";\n inputValueMeasured.classList.add(flagValueMeasured);\n let valueMeasured = response[flagValueMeasured];\n DOM.setElementValueCurrent(inputValueMeasured, valueMeasured);\n DOM.setElementAttributeValuePrevious(inputValueMeasured, valueMeasured);\n tdValueMeasured.appendChild(inputValueMeasured);\n row.appendChild(tdValueMeasured);\n\n let tdNotes = document.createElement(\"td\");\n tdNotes.classList.add(flagNotes, flagDdlPreview);\n let inputNotes = document.createElement(\"textarea\");\n inputNotes.classList.add(flagNotes);\n let notes = response[flagNotes];\n DOM.setElementValueCurrent(inputNotes, notes);\n DOM.setElementAttributeValuePrevious(inputNotes, notes);\n tdNotes.appendChild(inputNotes);\n row.appendChild(tdNotes);\n\n console.log(inputValueMeasured.tagName);\n console.log(inputNotes.tagName);\n console.log({ valueMeasured, notes });\n\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive, flagDdlPreview);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n let templateDeleteIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete);\n let buttonActive = (response[flagActive]) ? templateDeleteIcon.cloneNode(true) : templateAddIcon.cloneNode(true);\n tdActive.appendChild(buttonActive);\n row.appendChild(tdActive);\n\n return row;\n }\n hookupTablesAssessmentResponses() {\n this.hookupTableAssessmentResponsesFieldsResponseQualityMetric();\n this.hookupTableAssessmentResponsesFieldsObedienceLevel();\n this.hookupTableAssessmentResponsesFieldsValueMeasured();\n this.hookupTableAssessmentResponsesFieldsNotes();\n this.hookupTableAssessmentResponsesFieldsActive();\n }\n hookupTableAssessmentResponsesFieldsResponseQualityMetric() {\n let fieldFlag = flagResponseQualityMetric;\n let optionList = Utils.getListFromDict(filterResponseQualityMetrics); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagResponseQualityMetric;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsObedienceLevel() {\n let fieldFlag = flagObedienceLevel;\n let optionList = Utils.getListFromDict(filterObedienceLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagObedienceLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsValueMeasured() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagValueMeasured + ' .' + flagValueMeasured);\n }\n hookupTableAssessmentResponsesFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentResponsesFieldsActive() {\n this.hookupFieldsActive(flagAssessmentResponse, (event, element) => { this.handleClickAddRowTableAssessmentResponses(event, element); });\n }\n handleClickAddRowTableAssessmentResponses(event, button) {\n event.stopPropagation();\n let tableResponses = DOM.getClosestParent(button, \"table\");\n let tbody = tableResponses.querySelector(\":scope > tbody\");\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(null);\n if (tbody.classList.contains(flagIsCollapsed)) return;\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentResponses + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentResponse, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTablesAssessmentResponses();\n this.postInitialiseAssessmentResponseRowNewCallback(tbody);\n }\n postInitialiseAssessmentResponseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagResponseQualityMetric + ' div.' + flagResponseQualityMetric\n , ',td.' + flagObedienceLevel + ' div.' + flagObedienceLevel\n , ',td.' + flagValueMeasured + ' div.' + flagValueMeasured\n , ',td.' + flagNotes + ' div.' + flagNotes\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n let countActiveRows = tbody.querySelectorAll('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete).length;\n /*\n newRows.filter(row => {\n let activeButton = row.querySelector('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n return activeButton.classList.contains(flagDelete);\n }).length;\n */\n let rowAssessmentCommandModalityLink = DOM.getRowFromElement(tbody);\n let divTrialCount = rowAssessmentCommandModalityLink.querySelector('td.' + flagTrialCount + ' div.' + flagTrialCount);\n divTrialCount.innerText = countActiveRows;\n }\n\n hookupTableAssessmentCommandModalityLinksFieldsActive() {\n this.hookupFieldsActive(flagAssessmentCommandModalityLink, (event, element) => { this.handleClickAddRowTableAssessmentCommandModalityLinks(event, element); });\n }\n handleClickAddRowTableAssessmentCommandModalityLinks(event, button) {\n event.stopPropagation();\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - _rowBlankAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink));\n let tbody = document.querySelector(idTableAssessmentCommandModalityLinks + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankAssessmentCommandModalityLink.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableAssessmentCommandModalityLinks();\n this.postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody);\n }\n postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n , ',td.' + flagCommandModality + ' div.' + flagCommandModality\n , ',td.' + flagBribe + ' div.' + flagBribe\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogAssessments extends TableBasePage {\n static hash = hashPageDogAssessments;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessments;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterWeather();\n this.hookupFilterLightingLevel();\n this.hookupFilterLocation();\n this.hookupFilterHandler();\n this.hookupFilterActive();\n }\n hookupFilterWeather() {\n this.hookupFilter(attrIdWeather);\n }\n hookupFilterLightingLevel() {\n this.hookupFilter(attrIdLightingLevel);\n }\n hookupFilterHandler() {\n this.hookupFilter(flagUserHandler);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment);\n jsonRow[attrIdWeather] = this.getIdWeatherRow(row);\n jsonRow[attrIdLightingLevel] = this.getIdLightingLevelRow(row);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemperatureCelcius);\n jsonRow[attrIdLocation] = this.getIdLocationRow(row);\n jsonRow[flagUserHandler] = this.getIdUserHandlerRow(row);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n getIdWeatherRow(tr) {\n let elementWeather = tr.querySelector('td.' + flagWeather + ' .' + flagWeather);\n return DOM.getElementAttributeValueCurrent(elementWeather);\n }\n getIdLightingLevelRow(tr) {\n let elementLightingLevel = tr.querySelector('td.' + flagLightingLevel + ' .' + flagLightingLevel);\n return DOM.getElementAttributeValueCurrent(elementLightingLevel);\n }\n getIdLocationRow(tr) {\n let elementLocation = tr.querySelector('td.' + flagLocation + ' .' + flagLocation);\n return DOM.getElementAttributeValueCurrent(elementLocation);\n }\n getIdUserHandlerRow(tr) {\n let elementUserHandler = tr.querySelector('td.' + flagUserHandler + ' .' + flagUserHandler);\n return DOM.getElementAttributeValueCurrent(elementUserHandler);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDetail + ' .' + flagDetail\n ].join('');\n let detailButton = newestRow.querySelector('td.' + flagDetail + ' .' + flagDetail); /*.forEach((clickableElement) => {\n clickableElement.\n clickableElement.click();\n });\n */\n newestRow.classList.add(flagIsCollapsed);\n detailButton.click();\n // console.log({ newestRow, detailButton });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDetail();\n this.hookupFieldsWeather();\n this.hookupFieldsLightingLevel();\n this.hookupFieldsTemperature();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsHandler();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsDetail() {\n Events.hookupEventHandler(\n \"click\" // eventType\n , idTableMain + ' td.' + flagDetail + ' button.' + flagDetail // selector\n , (event, element) => {\n let parentTr = DOM.getRowFromElement(element);\n let idAssessment = parentTr.getAttribute(attrIdAssessment);\n /*\n console.log(\"click detail\");\n console.log({ element, parentTr, idAssessment });\n const data = {};\n const params = {\n [attrIdAssessment]: idAssessment\n };\n API.request(\n hashPageDogAssessment // hashEndpoint\n , 'GET' // method\n , data\n , params\n );\n */\n\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = idAssessment;\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsDetail\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(hashPageDogAssessment, filtersJson);\n }\n );\n }\n hookupFieldsWeather() {\n this.hookupTableCellDdlPreviews(\n flagWeather\n , Utils.getListFromDict(filterWeathers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsLightingLevel() {\n this.hookupTableCellDdlPreviews(\n flagLightingLevel\n , Utils.getListFromDict(filterLightingLevels) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsTemperature() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagTemperatureCelcius + ' input.' + flagTemperatureCelcius);\n }\n hookupFieldsHandler() {\n this.hookupTableCellDdlPreviews(\n flagUserHandler\n , Utils.getListFromDict(filterUserHandlers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCalendarEntries extends TableBasePage {\n static hash = hashPageDogCalendarEntries;\n static attrIdRowObject = attrIdCalendarEntry;\n callSaveTableContent = API.saveCalendarEntries;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n // this.hookupFilterCalendarEntryType();\n this.hookupFilterActive();\n }\n /*\n hookupFilterCalendarEntryType() {\n let filterSelector = idFormFilters + ' #' + attrIdCalendarEntryType;\n let filterCalendarEntryTypeOld = document.querySelector(filterSelector);\n filterCalendarEntryTypeOld.removeAttribute('id');\n let parentDiv = filterCalendarEntryTypeOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterCalendarEntryTypeNew = document.querySelector(idFormFilters + ' div.' + flagCalendarEntryTypeOnly + '.' + flagContainerInput + ' svg.' + flagCalendarEntryTypeOnly);\n filterCalendarEntryTypeNew.setAttribute('id', flagCalendarEntryTypeOnly);\n if (isChecked) filterCalendarEntryTypeNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterCalendarEntryType) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterCalendarEntryType });\n Utils.consoleLogIfNotProductionEnvironment({ [filterCalendarEntryType.tagName]: filterCalendarEntryType.tagName });\n let svgElement = (filterCalendarEntryType.tagName.toUpperCase() == 'SVG') ? filterCalendarEntryType : filterCalendarEntryType.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterCalendarEntryType);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n */\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCalendarEntry] = row.getAttribute(attrIdCalendarEntry);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityReport extends BasePage {\n static hash = hashPageAccessibilityReport;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityStatement extends BasePage {\n static hash = hashPageAccessibilityStatement;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageLicense extends BasePage {\n static hash = hashPageLicense;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","\nimport BasePage from \"../base.js\";\n\nexport default class PagePrivacyPolicy extends BasePage {\n static hash = hashPagePrivacyPolicy;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","import BasePage from \"../base.js\";\n\nexport default class PageRetentionSchedule extends BasePage {\n static hash = hashPageDataRetentionSchedule;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageUser extends BasePage {\n static hash = hashPageUserAccount;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport API from \"../../api\";\nimport DogTableMixinPage from \"../dog/mixin_table\";\nimport DOM from \"../../dom\";\nimport TableBasePage from \"../base_table\";\nimport Utils from \"../../lib/utils\";\n\nexport default class PageUsers extends TableBasePage {\n static hash = hashPageUserAccounts;\n static attrIdRowObject = attrIdUser;\n callSaveTableContent = API.saveUsers;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCompany();\n this.hookupFilterActive();\n }\n hookupFilterCompany() {\n this.hookupFilter(attrIdCompany); \n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n // let tdCompany = row.querySelector('td.' + flagCompany);\n let inputRole = row.querySelector('td.' + flagRole + ' .' + flagRole);\n let inputFirstname = row.querySelector('td.' + flagFirstname + ' .' + flagFirstname);\n let inputSurname = row.querySelector('td.' + flagSurname + ' .' + flagSurname);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {\n [attrIdUserAuth0]: null\n , [flagEmail]: null\n , [flagIsEmailVerified]: null\n , [attrIdCompany]: company[attrIdCompany]\n , [flagIsSuperUser]: null\n , [flagCanAdminDog]: null\n , [flagCanAdminUser]: null\n , [flagCompany]: null\n , [flagRole]: null\n };\n jsonRow[attrIdUser] = row.getAttribute(attrIdUser);\n // jsonRow[attrIdCompany] = tdCompany.getAttribute(attrIdCompany);\n jsonRow[attrIdRole] = DOM.getElementAttributeValueCurrent(inputRole);\n jsonRow[flagFirstname] = DOM.getElementAttributeValueCurrent(inputFirstname);\n jsonRow[flagSurname] = DOM.getElementAttributeValueCurrent(inputSurname);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n \n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagRole + ' div.' + flagRole\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsRole();\n this.hookupFieldsFirstname();\n this.hookupFieldsSurname();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsRole() {\n this.hookupTableCellDdlPreviews(\n flagRole\n , Utils.getListFromDict(filterRoles) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsFirstname() {\n this.hookupChangeHandlerTableCells(flagFirstname);\n }\n hookupFieldsSurname() {\n this.hookupChangeHandlerTableCells(flagSurname);\n }\n\n leave() {\n super.leave();\n }\n}\n","\n// Pages\n// Core\nimport PageHome from './pages/core/home.js';\nimport PageContact from './pages/core/contact.js';\nimport PageContactSuccess from './pages/core/contact-success.js';\nimport PageApplyFoundingPartner from './pages/core/apply-founding-partner.js';\nimport PageApplyFoundingPartnerSuccess from './pages/core/apply-founding-partner-success.js';\n// Dog\nimport PageDogHome from './pages/dog/home.js';\nimport PageDogCommandCategories from './pages/dog/command_categories.js';\nimport PageDogCommands from './pages/dog/commands.js';\nimport PageDogDogCommandLinks from './pages/dog/dog_command_links.js';\n// import PageDogDogs from './pages/dog/dogs.js';\nimport PageDogLocations from './pages/dog/locations.js';\nimport PageDogButtonIcons from './pages/dog/button_icons.js';\nimport PageDogCommandButtonLinks from './pages/dog/command_button_links.js';\nimport PageDogAssessment from './pages/dog/assessment.js';\nimport PageDogAssessments from './pages/dog/assessments.js';\nimport PageDogCalendarEntries from './pages/dog/calendar_entries.js'\n// Legal\nimport PageAccessibilityReport from './pages/legal/accessibility_report.js';\nimport PageAccessibilityStatement from './pages/legal/accessibility_statement.js';\nimport PageLicense from './pages/legal/license.js';\nimport PagePrivacyPolicy from './pages/legal/privacy_policy.js';\nimport PageRetentionSchedule from './pages/legal/retention_schedule.js';\n// User\n// import PageUserLogin from './pages/user/login.js';\n// import PageUserLogout from './pages/user/logout.js';\nimport PageUser from './pages/user/user.js';\nimport PageUsers from './pages/user/users.js';\n\nimport API from './api.js';\nimport DOM from './dom.js';\nimport Utils from './lib/utils.js';\n\n\nexport default class Router {\n constructor() {\n // Pages\n this.pages = {};\n // Core\n this.pages[hashPageHome] = { name: 'PageHome', module: PageHome };\n this.pages[hashPageContact] = { name: 'PageContact', module: PageContact };\n this.pages[hashPageContactSuccess] = { name: 'PageContactSuccess', module: PageContactSuccess };\n this.pages[hashPageApplyFoundingPartner] = { name: 'PageApplyFoundingPartner', module: PageApplyFoundingPartner };\n this.pages[hashPageApplyFoundingPartnerSuccess] = { name: 'PageApplyFoundingPartnerSuccess', module: PageApplyFoundingPartnerSuccess };\n // Dog\n this.pages[hashPageDogHome] = { name: 'PageDogHome', module: PageDogHome };\n this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories };\n this.pages[hashPageDogCommands] = { name: 'PageDogCommands', module: PageDogCommands };\n this.pages[hashPageDogDogCommandLinks] = { name: 'PageDogDogCommandLinks', module: PageDogDogCommandLinks };\n // this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };\n this.pages[hashPageDogLocations] = { name: 'PageDogLocations', module: PageDogLocations };\n this.pages[hashPageDogButtonIcons] = { name: 'PageDogButtonIcons', module: PageDogButtonIcons };\n this.pages[hashPageDogCommandButtonLinks] = { name: 'PageDogCommandButtonLinks', module: PageDogCommandButtonLinks };\n this.pages[hashPageDogAssessment] = { name: 'PageDogAssessment', module: PageDogAssessment };\n this.pages[hashPageDogAssessments] = { name: 'PageDogAssessments', module: PageDogAssessments };\n this.pages[hashPageDogCalendarEntries] = { name: 'PageDogCalendarEntries', module: PageDogCalendarEntries };\n // Legal\n this.pages[hashPageAccessibilityStatement] = { name: 'PageAccessibilityStatement', module: PageAccessibilityStatement };\n this.pages[hashPageDataRetentionSchedule] = { name: 'PageDataRetentionSchedule', module: PageRetentionSchedule };\n this.pages[hashPageLicense] = { name: 'PageLicense', module: PageLicense };\n this.pages[hashPagePrivacyPolicy] = { name: 'PagePrivacyPolicy', module: PagePrivacyPolicy };\n // User\n // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' };\n // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' };\n this.pages[hashPageUserAccount] = { name: 'PageUser', module: PageUser };\n this.pages[hashPageUserAccounts] = { name: 'PageUsers', module: PageUsers };\n // Routes\n this.routes = {};\n // Core\n this.routes[hashPageHome] = (isPopState = false) => this.navigateToHash(hashPageHome, isPopState);\n this.routes[hashPageContact] = (isPopState = false) => this.navigateToHash(hashPageContact, isPopState);\n this.routes[hashPageContactSuccess] = (isPopState = false) => this.navigateToHash(hashPageContactSuccess, isPopState);\n this.routes[hashPageApplyFoundingPartner] = (isPopState = false) => this.navigateToHash(hashPageApplyFoundingPartner, isPopState);\n this.routes[hashPageApplyFoundingPartnerSuccess] = (isPopState = false) => this.navigateToHash(hashPageApplyFoundingPartnerSuccess, isPopState);\n // Dog\n this.routes[hashPageDogHome] = (isPopState = false) => this.navigateToHash(hashPageDogHome, isPopState);\n this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState);\n this.routes[hashPageDogCommands] = (isPopState = false) => this.navigateToHash(hashPageDogCommands, isPopState);\n this.routes[hashPageDogDogCommandLinks] = (isPopState = false) => this.navigateToHash(hashPageDogDogCommandLinks, isPopState);\n // this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);\n this.routes[hashPageDogLocations] = (isPopState = false) => this.navigateToHash(hashPageDogLocations, isPopState);\n this.routes[hashPageDogButtonIcons] = (isPopState = false) => this.navigateToHash(hashPageDogButtonIcons, isPopState);\n this.routes[hashPageDogCommandButtonLinks] = (isPopState = false) => this.navigateToHash(hashPageDogCommandButtonLinks, isPopState);\n this.routes[hashPageDogAssessment] = (isPopState = false) => this.navigateToHash(hashPageDogAssessment, isPopState);\n this.routes[hashPageDogAssessments] = (isPopState = false) => this.navigateToHash(hashPageDogAssessments, isPopState);\n this.routes[hashPageDogCalendarEntries] = (isPopState = false) => this.navigateToHash(hashPageDogCalendarEntries, isPopState);\n // Legal\n this.routes[hashPageAccessibilityStatement] = (isPopState = false) => this.navigateToHash(hashPageAccessibilityStatement, isPopState);\n this.routes[hashPageDataRetentionSchedule] = (isPopState = false) => this.navigateToHash(hashPageDataRetentionSchedule, isPopState);\n this.routes[hashPageLicense] = (isPopState = false) => this.navigateToHash(hashPageLicense, isPopState);\n this.routes[hashPagePrivacyPolicy] = (isPopState = false) => this.navigateToHash(hashPagePrivacyPolicy, isPopState);\n // User\n // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState);\n // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState);\n this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState);\n this.routes[hashPageUserAccounts] = (isPopState = false) => this.navigateToHash(hashPageUserAccounts, isPopState);\n this.initialize();\n }\n loadPage(hashPage, isPopState = false) {\n const PageClass = this.getClassPageFromHash(hashPage);\n this.currentPage = new PageClass(this);\n this.currentPage.initialize(isPopState);\n window.addEventListener('beforeunload', () => this.currentPage.leave());\n }\n getClassPageFromHash(hashPage) {\n \n let pageJson = this.pages[hashPage];\n try {\n const module = pageJson.module;\n return module; \n }\n catch (error) {\n Utils.consoleLogIfNotProductionEnvironment(\"this.pages: \", this.pages);\n console.error('Page not found:', hashPage);\n throw error;\n }\n }\n initialize() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n }\n handlePopState(event) {\n this.loadPageCurrent();\n }\n loadPageCurrent() {\n const hashPageCurrent = DOM.getHashPageCurrent();\n this.loadPage(hashPageCurrent);\n }\n navigateToHash(hash, data = null, params = null, isPopState = false) {\n let url = API.getUrlFromHash(hash, params);\n history.pushState({data: data, params: params}, '', hash);\n API.goToUrl(url, data);\n }\n \n navigateToUrl(url, data = null, appendHistory = true) {\n // this.beforeLeave();\n if (appendHistory) history.pushState(data, '', url);\n url = API.parameteriseUrl(url, data);\n API.goToUrl(url);\n }\n\n static loadPageBodyFromResponse(response) {\n DOM.loadPageBody(response.data);\n }\n}\n\nexport const router = new Router();\n","\n'use strict';\n\nimport DOM from './dom.js';\nimport Router from './router.js';\n\n\nclass App {\n constructor() {\n this.dom = new DOM();\n this.router = new Router();\n }\n\n initialize() {\n this.setupEventListeners();\n this.start();\n }\n\n setupEventListeners() {\n // document.addEventListener('click', this.handleGlobalClick.bind(this));\n }\n\n handleGlobalClick(event) {\n }\n\n start() {\n this.initPageCurrent();\n }\n\n initPageCurrent() {\n this.router.loadPageCurrent();\n }\n \n}\n\nconst app = new App();\n\nfunction domReady(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n}\n\ndomReady(() => {\n app.initialize();\n});\n\nwindow.app = app;\n\nexport default app;","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":["Validation","_classCallCheck","_createClass","key","value","isEmpty","object","undefined","length","isString","trim","i","isValidNumber","positiveOnly","isNaN","parseFloat","getDataContentType","params","data","contentType","JSON","stringify","Data","ContentType","arrayContainsItem","array","itemValue","hasItem","isJQueryElementArray","jQuery","document","querySelectorAll","is","isDate","Date","getTime","dictHasKey","d","k","areEqualDicts","dict1","dict2","keys1","Object","keys","keys2","_i3","_keys","imageExists","url","callback","img","Image","onload","onerror","src","toFixedOrDefault","decimalPlaces","defaultValue","arguments","toFixed","default","Utils","DOM","setElementAttributesValuesCurrentAndPrevious","element","setElementAttributeValueCurrent","setElementAttributeValuePrevious","setAttribute","attrValueCurrent","attrValuePrevious","setElementValuesCurrentAndPrevious","setElementValueCurrent","tagName","toUpperCase","type","checked","textContent","setElementValueCurrentIfEmpty","getElementValueCurrent","getCellFromElement","closest","getRowFromElement","flagRow","selector","getClosestParent","parentSelector","parent","parentElement","matches","convertForm2JSON","elementForm","dataForm","containersFilter","flagContainerInput","flagFilter","containerFilter","labelFilter","keyFilter","filter","indexFilter","querySelector","getAttribute","concat","loadPageBody","contentNew","pageBody","idPageBody","innerHTML","getHashPageCurrent","hashPageCurrent","body","dataset","page","updateAndCheckIsElementDirty","isElementDirty","isDirty","handleDirtyElement","toggleElementHasClassnameFlag","flagDirty","elementHasFlag","flag","elementAlreadyHasFlag","classList","contains","add","remove","hasDirtyChildrenContainer","container","hasDirtyChildrenNotDeletedContainer","flagDelete","returnVal","flagButton","flagActive","getElementAttributeValueCurrent","flagCheckbox","flagIsChecked","getElementAttributeValuePrevious","scrollToElement","scrollTop","offset","top","isElementInContainer","containerBounds","getBoundingClientRect","elementBounds","left","height","width","alertError","errorType","errorText","alert","createOptionUnselectedProductVariation","_defineProperty","flagProductVariationType","flagNameAttrOptionText","flagName","flagNameAttrOptionValue","attrIdProductVariationType","flagProductVariation","attrIdProductVariation","createOption","optionJson","text","option","createElement","selected","escapeHtml","div","unescapeHtml","html","innerText","Events","initialiseEventHandler","selectorElement","classInitialised","eventHandler","forEach","hookupEventHandler","eventType","flagInitialised","addEventListener","event","stopPropagation","LocalStorage","getLocalStorage","parse","localStorage","getItem","setLocalStorage","newLS","setItem","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","_objectSpread","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPrimitive","toPrimitive","String","Number","API","getCsrfToken","idCSRFToken","_request","_callee","hashEndpoint","csrfToken","options","response","_args","_callee$","_context","getUrlFromHash","headers","flagCsrfToken","fetch","ok","status","json","t0","console","error","request","_x","hash","hashPageHome","parameteriseUrl","_pathHost","URLSearchParams","toString","goToUrl","window","location","href","goToHash","_loginUser","_callee2","_callee2$","_context2","flagCallback","hashPageUserLogin","loginUser","_saveUsers","_callee3","users","formFilters","comment","dataRequest","_callee3$","_context3","flagFormFilters","flagUser","flagComment","hashSaveDogUser","saveUsers","_x2","_x3","_x4","_saveCommandCategories","_callee4","commandCategories","_callee4$","_context4","flagCommandCategory","hashSaveDogCommandCategory","saveCommandCategories","_x5","_x6","_x7","_saveCommands","_callee5","commands","_callee5$","_context5","flagCommand","hashSaveDogCommand","saveCommands","_x8","_x9","_x10","_saveDogCommandLinks","_callee6","dogCommandLinks","_callee6$","_context6","flagDogCommandLink","hashSaveDogDogCommandLink","saveDogCommandLinks","_x11","_x12","_x13","_saveLocations","_callee7","locations","_callee7$","_context7","flagLocation","hashSaveDogLocation","saveLocations","_x14","_x15","_x16","_saveButtonIcons","_callee8","buttonIcons","_callee8$","_context8","flagButtonIcon","hashSaveDogButtonIcon","saveButtonIcons","_x17","_x18","_x19","_saveCommandButtonLinks","_callee9","links","_callee9$","_context9","flagCommandButtonLink","hashSaveDogCommandButtonLink","saveCommandButtonLinks","_x20","_x21","_x22","_saveAssessments","_callee10","assessments","_callee10$","_context10","flagAssessment","hashSaveDogAssessment","saveAssessments","_x23","_x24","_x25","_saveAssessmentsDistractionsAndResponses","_callee11","filtersJson","_callee11$","_context11","attrIdAssessment","hashSaveDogAssessmentDistractionAndResponse","saveAssessmentsDistractionsAndResponses","_x26","_x27","_x28","getListFromDict","dict","list","consoleLogIfNotProductionEnvironment","message","environment","is_production","log","OverlayConfirm","hookup","callbackSuccess","idOverlayConfirm","flagCancel","buttonCancel","overlay","style","visibility","flagSubmit","buttonConfirm","textarea","show","flagIsCollapsed","BusinessObjects","OverlayError","BasePage","router","title","titlePageCurrent","initialize","sharedInitialize","logInitialisation","hookupCommonElements","hookupLogos","hookupNavigation","hookupOverlays","_this","flagImageLogo","flagLogo","navigateToHash","idButtonHamburger","overlayHamburger","idOverlayHamburger","flagExpanded","hookupButtonsNavUserAccount","hookupButtonsNavUserLogout","hookupButtonsNavUserLogin","hookupButtonsNav","buttonSelector","_this2","button","pageHash","_this3","flagNavUserLogin","navigator","leave","Success","Message","hookupOverlayFromId","idOverlayError","idOverlay","display","hookupButtonSave","_this4","flagContainer","flagSave","target","setLocalStoragePage","dataPage","getLocalStoragePage","toggleShowButtonsSaveCancel","buttonContainerSelector","buttonSave","idButtonSave","idButtonCancel","isDirtyFilter","idTableMain","PageHome","_BasePage","_callSuper","_inherits","_superPropGet","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","_get","get","bind","_superPropBase","_setPrototypeOf","_wrapNativeSuper","Map","_isNativeFunction","has","set","Wrapper","_construct","Boolean","valueOf","Function","indexOf","_toArray","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_iterableToArrayLimit","_createForOfIteratorHelper","_n2","F","test","hi","Or","gi","ne","zr","H","Mt","WeakSet","Ut","en","Fr","self","Blob","_i","URL","webkitURL","createObjectURL","Worker","revokeObjectURL","_unused","encodeURIComponent","mi","Qr","_Qr$v","_window$__svelte","__svelte","Set","wi","pi","yi","bi","Ei","xi","Wt","tn","rn","Je","W","$i","Mr","oe","nn","It","Yt","pe","ze","yt","re","bt","K","ye","et","Ke","St","ki","Zt","Ci","ln","ut","an","Ai","on","Ri","Ii","Et","xt","Pe","Si","Ti","Ni","sn","fn","Li","requestIdleCallback","setTimeout","dt","vt","un","cn","Gt","queueMicrotask","Di","Ur","dn","Pi","vn","Oi","zi","Fi","Mi","Ui","ji","Vi","Bi","qi","Hi","Wi","ue","reactions","equals","rv","wv","He","Yi","hn","ae","ce","Qi","P","Dn","includes","Zi","En","gn","A","ge","el","de","Lt","De","ctx","B","deps","effects","_n","we","Gi","Ji","Se","$n","mn","Ce","Tt","warn","D","Ge","O","Re","Xe","Te","Z","Ki","nodeType","le","Proxy","deleteProperty","isInteger","jr","w","m","z","T","Y","M","_iterator","_step","_step$value","err","Vr","wn","pn","yn","jt","userAgent","Element","Node","__click","__className","__attributes","__style","__e","Text","__t","Jt","createTextNode","me","G","appendChild","Br","Comment","he","after","before","Xi","wt","$t","kt","Oe","Kt","qr","ct","Ie","V","J","bn","Ct","ht","_a$reactions","tl","_unused2","rl","Nt","xn","Wr","At","_m$reactions","nl","Xt","hl","An","Cn","teardown","il","kn","al","ll","first","nodes_start","Rn","$","ol","_ol","Qe","sl","fl","ul","last","Fe","nodes_end","transitions","_f$effects","cl","Vt","_r$e","effect","reaction","Qt","dl","vl","outro","Bt","er","We","map","tr","Rt","_iterator2","_step2","In","gl","_iterator3","_step3","out","_iterator4","_step4","is_global","Hr","Sn","_iterator5","_step5","Tn","Nn","x","Ln","_l","ml","Yr","Pn","defaultPrevented","_iterator6","elements","_step6","__on_r","capture","On","wl","zn","qt","pl","ft","cancelBubble","startsWith","yl","passive","removeEventListener","bl","_iterator7","_step7","ownerDocument","composedPath","__root","assignedSlot","parentNode","host","disabled","_z","_z2","_iterator8","_step8","_loop","currentTarget","rr","content","Ae","ve","importNode","cloneNode","lastChild","El","ee","Fn","Mn","xl","_t$intro","intro","anchor","recover","Ye","_ref","_ref$props","props","events","context","_ref$intro","$$events","_iterator9","_step9","removeChild","Ht","WeakMap","$l","ke","_ref2","_ref3","parseInt","substring","Ze","_t2","kl","$$slots","children","Cl","_r$head","getRootNode","head","id","code","Zr","Al","Rl","removeAttribute","className","toggle","Il","Sl","Gr","hasAttribute","ie","Tl","Un","nodeName","Nl","_e$__attributes","namespaceURI","Jr","Ll","defaultChecked","Kr","Xr","jn","Dl","mt","Pl","C","_Pl","_Pl2","_ref4","be","N","$$legacy","X","se","U","Ol","zl","_e","te","_t$intro2","_r$get","_r$get2","_r$get3","hydrate","component","$$host","sync","_loop2","_Object$keys","_i2","$set","assign","$destroy","$on","_len","_key","Vn","HTMLElement","_HTMLElement","$$ctor","$$s","attachShadow","mode","$$l","$$c","$$l_u","_connectedCallback","_this5","_iterator10","_step10","_i4","_iterator11","_step11","_i5","_a","_iterator13","_step13","$$cn","Fl","$$d","attributes","$$g_p","pt","$$p_d","shadowRoot","$$me","$$r","_iterator12","_step12","reflect","attribute","connectedCallback","attributeChangedCallback","disconnectedCallback","_this6","_this7","find","toLowerCase","childNodes","slot","Ml","_Vn","_this8","Bn","TextEncoder","Ul","Uint8Array","padStart","join","jl","_jl","_args10","now","Math","round","random","qn","algorithm","challenge","salt","signature","_qn","crypto","subtle","digest","encode","t1","Vl","AbortController","promise","signal","aborted","number","took","controller","Bl","Intl","DateTimeFormat","resolvedOptions","timeZone","_unused3","ql","atob","charCodeAt","Hl","floor","Wl","_Wl","_callee13","_args13","_callee13$","_context13","_ref7","_callee12","_callee12$","_context12","decrypt","iv","clearText","TextDecoder","decode","importKey","reject","E","ERROR","VERIFIED","VERIFYING","UNVERIFIED","EXPIRED","Yl","Zl","Gl","Jl","Kl","Xl","Ql","ea","ta","ra","na","ia","la","Lr","Dr","Ee","Me","min","hardwareConcurrency","tt","nr","ir","lr","rt","dispatchEvent","CustomEvent","detail","ar","documentElement","lang","split","Dt","origin","endsWith","Pt","wr","or","Q","ariaLinkLabel","expired","footer","label","verified","verifying","waitAlert","sr","Ue","R","j","nt","je","Ve","fe","xe","Ne","Xn","Qn","Hn","hr","gr","vr","clearTimeout","cr","dr","mr","I","Jn","pluginName","Ot","pr","it","$e","requestAnimationFrame","fr","btoa","_i6","_xe","destroy","ur","lt","Wn","_Wn","L","_","b","S","q","_L","qe","_L2","globalThis","Response","verifyurl","Er","Yn","Zn","blockedCountries","classifier","disableRules","email","expectedCountries","expectedLanguages","fields","ipAddress","Gn","reduce","replace","RegExp","_iterator14","altchaPlugins","_step14","clarify","dispatch","getConfiguration","xr","getFloatingAnchor","$r","getState","kr","solve","br","setState","Le","setFloatingAnchor","Cr","verify","_console","_len2","_key2","some","Kn","reportValidity","gt","_i7","_xe2","onErrorChange","preventDefault","requestSubmit","_r","_i8","_xe3","onStateChange","clientHeight","clientWidth","bottom","max","ei","_ei","_Zn","ot","st","vi","Pr","payload","classification","yr","_br","ti","maxnumber","solution","obfuscated","t2","t3","t4","_ti","_i10","_b2","_p","_args6","ceil","altchaCreateWorker","all","_i9","_b","postMessage","start","terminate","_it","auto","blockspam","customfetch","floatinganchor","delay","floatingoffset","floating","expire","challengeurl","debug","hidefooter","hidelogo","mockerror","refetchonexpire","spamfilter","strings","workers","workerurl","ri","state","_$e","_ref6","Ar","Rr","at","zt","Ir","ni","_t","Sr","Be","__change","Ft","ii","li","ai","oi","si","Tr","fi","Nr","ui","ci","di","required","configure","getPlugin","challengejson","plugins","customElements","Altcha","PageContact","hookupButtonSubmitFormContactUs","flagButtonPrimary","hashPageContact","PageContactSuccess","hashPageContactSuccess","PageApplyFoundingPartner","hookupButtonSubmitFormApplyFoundingPartnerUs","hashPageApplyFoundingPartner","PageApplyFoundingPartnerSuccess","hashPageApplyFoundingPartnerSuccess","PageDogHome","hookupDogHome","hashPageDogHome","getOptionJsonFromObjectJsonAndKeys","objectJson","keyText","keyValue","valueSelected","getOptionJsonFromObjectJson","getObjectText","getListObjectsFromIdDictAndCsv","idDict","idCsv","listObjects","ids","msgError","labelError","idLabelError","TableBasePage","cursorYInitial","rowInitial","placeholder","dragSrcEl","dragSrcRow","hookupTableCellDdls","isPopState","isSinglePageApp","hookupFilters","hookupButtonsSaveCancel","hookupTableMain","saveRecordsTableDirtySinglePageApp","saveRecordsTableDirty","filters","getFormFilters","filtersDefault","callFilterTableContent","sharedHookupFilters","hookupButtonApplyFilters","hookupSearchTextFilter","hookupFilterActive","filterSelector","idFormFilters","flagActiveOnly","filterActiveOld","parentDiv","isChecked","filterActiveNew","filterActive","svgElement","wasChecked","handleChangeFilter","filterValuePrevious","hookupFilter","filterFlag","handler","areDirtyFilters","tbody","rows","row","dirtyInputs","dirtyInput","isDirtyLabel","initialisedElements","initialisedElement","updateAndToggleShowButtonsSaveCancel","hookupFilterIsNotEmpty","flagIsNotEmpty","idButtonApplyFilters","flagSearch","hookupFilterDog","attrIdDog","hookupFilterCommandCategory","attrIdCommandCategory","filterCommandCategory","idCommandCategory","filterCommands","commandsInCategory","command","sortedCommands","sort","localeCompare","filterCommand","idCommandPrevious","Event","hookupFilterCommand","attrIdCommand","hookupFilterLocation","attrIdLocation","callbackLoadTableContent","table","getTableMain","bodyTable","rowsJson","flagRows","every","display_order","loadRowTable","rowJson","getAndLoadFilteredTableContentSinglePageApp","hookupButtonCancel","records","getTableRecords","formElement","idTextareaConfirm","callSaveTableContent","flagStatus","flagSuccess","_verbose","flagMessage","_this9","dirtyOnly","record","getJsonRow","_this10","_this11","handleClickAddRowTable","_rowBlank","attrIdRowObject","countRows","initialiseRowNew","prepend","postInitialiseRowNewCallback","_this12","cacheRowBlank","selectorRowNew","flagRowNew","rowBlankTemp","initialiseSliderDisplayOrderRowNew","slidersDisplayOrder","flagDisplayOrder","flagSlider","maxDisplayOrder","slider","sliderDisplayOrder","hookupSlidersDisplayOrderTable","selectorDisplayOrder","hookupChangeHandlerTableCells","inputSelector","_this13","handleChangeNestedElementCellTable","input","wasDirtyParentRows","getAllIsDirtyRowsInParentTree","wasDirtyElement","isDirtyElement","cascadeChangedIsDirtyNestedElementCellTable","isDirtyRow","wasDirtyRow","shift","hookupChangeHandlerTableCellsWhenNotCollapsed","_this14","hookupFieldsCodeTable","flagCode","hookupFieldsNameTable","hookupFieldsDescriptionTable","flagDescription","hookupFieldsNotesTable","flagNotes","hookupFieldsActive","_this15","flagTable","handleClickRowNew","selectorButton","selectorButtonDelete","selectorButtonUndelete","hookupButtonsRowDelete","hookupButtonsRowUndelete","_this16","changeHandler","handleClickButtonRowDelete","changeEvent","changeElement","_this17","valuePrevious","wasDirty","buttonAddTemplate","idContainerTemplateElements","flagAdd","buttonAdd","replaceWith","_this18","handleClickButtonRowUndelete","_this19","buttonDeleteTemplate","buttonDelete","hookupTdsAccessLevel","hookupTableCellDdlPreviews","flagAccessLevel","accessLevels","fieldFlag","optionList","_this20","cellSelector","ddlHookup","ddlSelector","handleClickTableCellDdlPreview","_this21","optionObjectList","_this22","idSelected","td","ddl","optionObjectJson","toggleColumnCollapsed","flagColumn","isCollapsed","toggleColumnHasClassnameFlag","toggleColumnHeaderCollapsed","hookupFieldsCommandCategory","_this23","idTable","filterCommandCategories","hookupCommandCategoryDdls","_this24","handleChangeCommandCategoryDdl","ddlCategory","idCommandCategoryRowOld","getIdCommandCategoryRow","idCommandCategoryRowNew","idCommandCategoryFilter","getIdCommandCategoryFilter","tdCommand","ddlCommand","hookupFieldsCommand","_this25","parentTr","tdCommandCategory","idCommandCategoryRow","filterCommandList","handleChangeCommandDdl","idCommandNew","getIdCommandRow","commandNew","divCommandCategory","ddlCommandCategory","elementCommandCategory","commandCategoryFilter","commandFilter","valueCurrentCommandCategoryFilter","valueCurrentCommandFilter","getHasCommandCategoryFilter","elementCommand","getIdCommandFilter","idCommand","getHasCommandFilter","idCommandFilter","hookupFieldsDog","flagDog","filterDogs","getIdDogRow","elementDog","columnFlag","isRequiredFlag","classnameFlag","columnTh","columnThHasFlag","toggleColumnHeaderHasClassnameFlag","isDirtyMainTable","DogMixinPage","pageCurrent","hookupLocalStorageDog","DogTableMixinPage","_DogMixinPage","hookupTable","hookupFieldsLocation","filterLocations","PageDogCommandCategories","_TableBasePage","dogMixin","inputCode","inputName","buttonActive","jsonRow","hashPageDogCommandCategories","PageDogCommands","inputHandSignalDefaultDescription","flagHandSignalDefaultDescription","inputCanHaveButton","flagCanHaveButton","inputNotes","newRows","newestRow","clickableElementsSelector","clickableElement","click","hookupTextareasHandSignalDefaultDescription","hookupFieldsCanHaveButton","hashPageDogCommands","PageDogDogCommandLinks","inputHandSignalDescription","flagHandSignalDescription","attrIdDogCommandLink","hookupTextareasHandSignalDescription","hashPageDogDogCommandLinks","PageDogLocations","flagLocationParent","getIdLocationParentRow","elementLocationParent","hookupFieldsLocationParent","idLocationRow","hashPageDogLocations","PageDogButtonIcons","attrIdButtonIcon","flagImage","getIdImageRow","elementImage","hookupFieldsImage","buttonicons","hashPageDogButtonIcons","PageDogCommandButtonLinks","hookupFilterButtonShape","hookupFilterColour","hookupFilterButtonIcon","attrIdButtonShape","attrIdColour","attrIdCommandButtonLink","hookupFieldsButtonShape","hookupFieldsColour","hookupFieldsButtonIcon","flagButtonShape","filterButtonShapes","flagColour","filterColours","filterButtonIcons","hashPageDogCommandButtonLinks","_rowBlankDistraction","_rowBlankAssessmentCommandModalityLink","PageDogAssessment","idTableAssessment","inputWeather","flagWeather","inputLightingLevel","flagLightingLevel","inputTemeratureCelcius","flagTemperatureCelcius","inputLocation","inputUserHandler","flagUserHandler","idAssessment","attrIdWeather","attrIdLightingLevel","flagDistraction","getDirtyDistractions","flagAssessmentCommandModalityLink","getDirtyAssessmentCommandModalityLinks","dirtyRows","idTableDistractions","dirtyRow","inputDistractionType","distractionType","inputIntensityLevelEmotional","intensityLevelEmotional","inputIntensityLevelScent","intensityLevelScent","inputIntensityLevelSight","intensityLevelSight","inputIntensityLevelSound","intensityLevelSound","inputIntensityLevelTouch","intensityLevelTouch","inputQuantity","quantity","inputProximityMetres","proximityMetres","notes","active","dirtyDistractions","indexRow","_dirtyDistractions$pu","flagDistractionType","flagDistractionIntensityLevelEmotional","flagDistractionIntensityLevelScent","flagDistractionIntensityLevelSight","flagDistractionIntensityLevelSound","flagDistractionIntensityLevelTouch","flagQuantity","flagProximityMetres","flagIcon","attrIdDistraction","attrIdDistractionType","idTableAssessmentCommandModalityLinks","idAssessmentCommandModalityLink","inputCommand","inputCommandModality","commandModality","inputBribe","bribe","inputDistanceFromHandler","distanceFromhandler","inputIsInHearingRangeOfHandler","isInHearingRangeOfHandler","inputIsInScentRangeOfHandler","isInScentRangeOfHandler","inputIsInSightOfHandler","isInSightOfHandler","inputIsOnLead","isOnLead","dirtyLinks","_dirtyLinks$push","attrIdAssessmentCommandModalityLink","flagCommandModality","flagBribe","flagDistanceFromHandlerMetres","flagIsInHearingRangeOfHandler","flagIsInScentRangeOfHandler","flagIsInSightOfHandler","flagIsOnLead","attrIdCommandModality","attrIdBribe","flagAssessmentResponse","getDirtyAssessmentResponses","rowAssessmentCommandModalityLink","idTableAssessmentResponses","inputResponseQualityMetric","responseQualityMetric","inputObedienceLevel","obedienceLevel","inputValueMeasured","valueMeasured","dirtyResponses","flagResponseQualityMetric","flagObedienceLevel","flagValueMeasured","attrIdAssessmentResponse","attrIdResponseQualityMetric","attrIdObedienceLevel","assessment","filterAssessment","hookupTableAssessmentHeader","hookupTableDistractions","hookupTableAssessmentCommandModalityLinks","hookupTableAssessmentFieldWeather","hookupTableAssessmentFieldLightingLevel","hookupTableAssessmentFieldTemperature","hookupTableAssessmentFieldLocation","hookupTableAssessmentFieldUserHandler","hookupTableAssessmentFieldNotes","filterWeathers","filterLightingLevels","filterUserHandlers","hookupTableDistractionsFieldsDistractionType","hookupTableDistractionsFieldsIntensityLevelEmotional","hookupTableDistractionsFieldsIntensityLevelScent","hookupTableDistractionsFieldsIntensityLevelSight","hookupTableDistractionsFieldsIntensityLevelSound","hookupTableDistractionsFieldsIntensityLevelTouch","hookupTableDistractionsFieldsQuantity","hookupTableDistractionsFieldsProximityMetres","hookupTableDistractionsFieldsNotes","hookupTableDistractionsFieldsActive","filterDistractionTypes","filterDistractionIntensityLevels","handleClickAddRowTableDistractions","postInitialiseDistractionRowNewCallback","hookupTableAssessmentCommandModalityLinksFieldsCommandCategory","hookupTableAssessmentCommandModalityLinksFieldsCommand","hookupTableAssessmentCommandModalityLinksFieldsCommandModality","hookupTableAssessmentCommandModalityLinksFieldsBribe","hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres","hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsOnLead","hookupTableAssessmentCommandModalityLinksFieldsTrialCount","hookupTableAssessmentCommandModalityLinksFieldsNotes","hookupTableAssessmentCommandModalityLinksFieldsResponses","hookupTableAssessmentCommandModalityLinksFieldsActive","filterCommandModalities","filterBribes","parentTd","responsesTable","flagTableMain","headRow","thResponseQualityMetric","thObedienceLevel","thValueMeasured","thNotes","thActive","templateAddIcon","assessmentCommandModalityLinks","link","assessmentCommandModalityLink","responses","responseKey","createNewRowTableAssessmentResponses","outerHTML","responseRows","hookupTablesAssessmentResponses","hookupTableAssessmentResponsesFieldsResponseQualityMetric","hookupTableAssessmentResponsesFieldsObedienceLevel","hookupTableAssessmentResponsesFieldsValueMeasured","hookupTableAssessmentResponsesFieldsNotes","hookupTableAssessmentResponsesFieldsActive","filterResponseQualityMetrics","filterObedienceLevels","handleClickAddRowTableAssessmentResponses","tableResponses","postInitialiseAssessmentResponseRowNewCallback","countActiveRows","divTrialCount","flagTrialCount","handleClickAddRowTableAssessmentCommandModalityLinks","postInitialiseAssessmentCommandModalityLinkRowNewCallback","isNew","tdResponseQualityMetric","flagDdlPreview","divResponseQualityMetric","idResponseQualityMetric","tdObedienceLevel","divObedienceLevel","idObedienceLevel","tdValueMeasured","tdNotes","tdActive","templateDeleteIcon","hashPageDogAssessment","PageDogAssessments","hookupFilterWeather","hookupFilterLightingLevel","hookupFilterHandler","inputTemperatureCelcius","getIdWeatherRow","getIdLightingLevelRow","getIdLocationRow","getIdUserHandlerRow","elementWeather","elementLightingLevel","elementLocation","elementUserHandler","flagDetail","detailButton","hookupFieldsDetail","hookupFieldsWeather","hookupFieldsLightingLevel","hookupFieldsTemperature","hookupFieldsHandler","hashPageDogAssessments","PageDogCalendarEntries","saveCalendarEntries","attrIdCalendarEntry","hashPageDogCalendarEntries","PageAccessibilityReport","hashPageAccessibilityReport","PageAccessibilityStatement","hashPageAccessibilityStatement","PageLicense","hashPageLicense","PagePrivacyPolicy","hashPagePrivacyPolicy","PageRetentionSchedule","hashPageDataRetentionSchedule","PageUser","hashPageUserAccount","PageUsers","hookupFilterCompany","attrIdCompany","inputRole","flagRole","inputFirstname","flagFirstname","inputSurname","flagSurname","attrIdUserAuth0","flagEmail","flagIsEmailVerified","company","flagIsSuperUser","flagCanAdminDog","flagCanAdminUser","flagCompany","attrIdUser","attrIdRole","hookupFieldsRole","hookupFieldsFirstname","hookupFieldsSurname","filterRoles","hashPageUserAccounts","Router","pages","module","routes","loadPage","hashPage","PageClass","getClassPageFromHash","currentPage","pageJson","handlePopState","loadPageCurrent","history","pushState","navigateToUrl","appendHistory","loadPageBodyFromResponse","App","dom","setupEventListeners","handleGlobalClick","initPageCurrent","app","domReady","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/user_account.bundle.js.map b/static/dist/js/user_account.bundle.js.map index 1e43515..67c10f0 100644 --- a/static/dist/js/user_account.bundle.js.map +++ b/static/dist/js/user_account.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"js/user_account.bundle.js","mappings":";;;;AAAA;;;;;;ACAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/dog.css?a9d0","webpack://app/./static/css/sections/user.css","webpack://app/./static/css/pages/user/user.css"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/user_account.bundle.js","mappings":";;;;AAAA;;;;;;ACAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/dog.css?a9d0","webpack://app/./static/css/sections/user.css","webpack://app/./static/css/pages/user/user.css?8ee9"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/user_accounts.bundle.js b/static/dist/js/user_accounts.bundle.js new file mode 100644 index 0000000..0e16e3b --- /dev/null +++ b/static/dist/js/user_accounts.bundle.js @@ -0,0 +1,23 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +/******/ })() +; +//# sourceMappingURL=user_accounts.bundle.js.map \ No newline at end of file diff --git a/static/dist/js/user_accounts.bundle.js.map b/static/dist/js/user_accounts.bundle.js.map new file mode 100644 index 0000000..b475b22 --- /dev/null +++ b/static/dist/js/user_accounts.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/user_accounts.bundle.js","mappings":";;;;AAAA;;;;;;ACAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/user.css","webpack://app/./static/css/sections/dog.css?a9d0","webpack://app/./static/css/pages/user/users.css?320d"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/docs/dog_training_progress_chart.html b/static/docs/dog_training_progress_chart.html index b891ab5..5943150 100644 --- a/static/docs/dog_training_progress_chart.html +++ b/static/docs/dog_training_progress_chart.html @@ -264,7 +264,7 @@ }); } - // Wait for Chart.js to load and initialize + // Wait for Chart.js to load and initialise function initializeChart() { if (typeof Chart === 'undefined') { console.error('Chart.js not loaded'); diff --git a/static/js/api.js b/static/js/api.js index fc75095..ac133c7 100644 --- a/static/js/api.js +++ b/static/js/api.js @@ -64,11 +64,21 @@ export default class API { updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData), deleteUser: (id) => request(`/users/${id}`, 'DELETE'), */ + + // User static async loginUser() { let callback = {}; callback[flagCallback] = DOM.getHashPageCurrent(); return await API.request(hashPageUserLogin, 'POST', callback); } + static async saveUsers(users, formFilters, comment) { + let dataRequest = {}; + dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); + dataRequest[flagUser] = users; + dataRequest[flagComment] = comment; + return await API.request(hashSaveDogUser, 'POST', dataRequest); + } + // dog // Command categories diff --git a/static/js/pages/base.js b/static/js/pages/base.js index 4a6a61c..45fe38b 100644 --- a/static/js/pages/base.js +++ b/static/js/pages/base.js @@ -39,7 +39,7 @@ export default class BasePage { } logInitialisation() { - Utils.consoleLogIfNotProductionEnvironment('Initializing ' + this.title + ' page'); + Utils.consoleLogIfNotProductionEnvironment('Initialising ' + this.title + ' page'); } hookupCommonElements() { diff --git a/static/js/pages/user/user.js b/static/js/pages/user/user.js index 57d5625..4fa54ff 100644 --- a/static/js/pages/user/user.js +++ b/static/js/pages/user/user.js @@ -2,7 +2,7 @@ import BasePage from "../base.js"; export default class PageUser extends BasePage { - static hash = hashPageUser; + static hash = hashPageUserAccount; constructor(router) { super(router); @@ -10,7 +10,6 @@ export default class PageUser extends BasePage { initialize() { this.sharedInitialize(); - this.hookupButtonsNavContact(); } leave() { diff --git a/static/js/pages/user/users.js b/static/js/pages/user/users.js new file mode 100644 index 0000000..0946c96 --- /dev/null +++ b/static/js/pages/user/users.js @@ -0,0 +1,107 @@ + +import API from "../../api"; +import DogTableMixinPage from "../dog/mixin_table"; +import DOM from "../../dom"; +import TableBasePage from "../base_table"; +import Utils from "../../lib/utils"; + +export default class PageUsers extends TableBasePage { + static hash = hashPageUserAccounts; + static attrIdRowObject = attrIdUser; + callSaveTableContent = API.saveUsers; + + constructor(router) { + super(router); + this.dogMixin = new DogTableMixinPage(this); + } + + initialize() { + this.sharedInitialize(); + } + + hookupFilters() { + this.sharedHookupFilters(); + this.hookupFilterCompany(); + this.hookupFilterActive(); + } + hookupFilterCompany() { + this.hookupFilter(attrIdCompany); + } + + loadRowTable(rowJson) { + if (rowJson == null) return; + if (_verbose) { Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); } + } + getJsonRow(row) { + if (row == null) return; + // let tdCompany = row.querySelector('td.' + flagCompany); + let inputRole = row.querySelector('td.' + flagRole + ' .' + flagRole); + let inputFirstname = row.querySelector('td.' + flagFirstname + ' .' + flagFirstname); + let inputSurname = row.querySelector('td.' + flagSurname + ' .' + flagSurname); + let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes); + let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive); + + let jsonRow = { + [attrIdUserAuth0]: null + , [flagEmail]: null + , [flagIsEmailVerified]: null + , [attrIdCompany]: company[attrIdCompany] + , [flagIsSuperUser]: null + , [flagCanAdminDog]: null + , [flagCanAdminUser]: null + , [flagCompany]: null + , [flagRole]: null + }; + jsonRow[attrIdUser] = row.getAttribute(attrIdUser); + // jsonRow[attrIdCompany] = tdCompany.getAttribute(attrIdCompany); + jsonRow[attrIdRole] = DOM.getElementAttributeValueCurrent(inputRole); + jsonRow[flagFirstname] = DOM.getElementAttributeValueCurrent(inputFirstname); + jsonRow[flagSurname] = DOM.getElementAttributeValueCurrent(inputSurname); + jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes); + jsonRow[flagActive] = buttonActive.classList.contains(flagDelete); + + console.log("jsonRow"); + console.log(jsonRow); + + return jsonRow; + } + + initialiseRowNew(tbody, row) { + + } + postInitialiseRowNewCallback(tbody) { + let newRows = tbody.querySelectorAll('tr.' + flagRowNew); + let newestRow = newRows[0]; + let clickableElementsSelector = [ + 'td.' + flagRole + ' div.' + flagRole + ].join(''); + newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => { + clickableElement.click(); + }); + } + + hookupTableMain() { + super.hookupTableMain(); + this.hookupFieldsRole(); + this.hookupFieldsFirstname(); + this.hookupFieldsSurname(); + this.hookupFieldsNotesTable(); + this.hookupFieldsActive(); + } + hookupFieldsRole() { + this.hookupTableCellDdlPreviews( + flagRole + , Utils.getListFromDict(filterRoles) // .sort((a, b) => a[flagName].localeCompare(b[flagName])) + ); + } + hookupFieldsFirstname() { + this.hookupChangeHandlerTableCells(flagFirstname); + } + hookupFieldsSurname() { + this.hookupChangeHandlerTableCells(flagSurname); + } + + leave() { + super.leave(); + } +} diff --git a/static/js/router.js b/static/js/router.js index 33a7192..2a2ba02 100644 --- a/static/js/router.js +++ b/static/js/router.js @@ -27,7 +27,8 @@ import PageRetentionSchedule from './pages/legal/retention_schedule.js'; // User // import PageUserLogin from './pages/user/login.js'; // import PageUserLogout from './pages/user/logout.js'; -// import PageUserAccount from './pages/user/account.js'; +import PageUser from './pages/user/user.js'; +import PageUsers from './pages/user/users.js'; import API from './api.js'; import DOM from './dom.js'; @@ -64,7 +65,8 @@ export default class Router { // User // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' }; // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' }; - // this.pages[hashPageUserAccount] = { name: 'PageUserAccount', module: PageUserAccount }; // pathModule: './pages/user/account.js' }; + this.pages[hashPageUserAccount] = { name: 'PageUser', module: PageUser }; + this.pages[hashPageUserAccounts] = { name: 'PageUsers', module: PageUsers }; // Routes this.routes = {}; // Core @@ -93,7 +95,8 @@ export default class Router { // User // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState); // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState); - // this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState); + this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState); + this.routes[hashPageUserAccounts] = (isPopState = false) => this.navigateToHash(hashPageUserAccounts, isPopState); this.initialize(); } loadPage(hashPage, isPopState = false) { diff --git a/templates/components/user/_preview_DDL_role.html b/templates/components/user/_preview_DDL_role.html new file mode 100644 index 0000000..de836d7 --- /dev/null +++ b/templates/components/user/_preview_DDL_role.html @@ -0,0 +1,5 @@ + +{% set value_previous = '0' if is_blank_row else role_preview.id_role %} +{% set text_previous = '' if is_blank_row else role_preview.name %} + +
{{ text_previous }}
diff --git a/templates/components/user/_row_user.html b/templates/components/user/_row_user.html new file mode 100644 index 0000000..bc8b360 --- /dev/null +++ b/templates/components/user/_row_user.html @@ -0,0 +1,53 @@ + +{% if is_blank_row %} + + + {{ model.user.company.name }} + + + {% include 'components/user/_preview_DDL_role.html' %} + + + + + + + + {% include 'components/dog/_td_notes.html' %} + {% set active = True %} + {% include 'components/dog/_td_active.html' %} + +{% else %} + + {% set company = user.company %} + + {{ company.name }} + + {% set role_preview = user.role %} + + {% include 'components/user/_preview_DDL_role.html' %} + + + + + + + + {% set notes = user.notes %} + {% include 'components/dog/_td_notes.html' %} + {% set active = user.active %} + {% include 'components/dog/_td_active.html' %} + +{% endif %} diff --git a/templates/layouts/_shared_dog_scripts.html b/templates/layouts/_shared_dog_scripts.html index 4233a7d..629beba 100644 --- a/templates/layouts/_shared_dog_scripts.html +++ b/templates/layouts/_shared_dog_scripts.html @@ -15,6 +15,7 @@ var attrIdCommandButtonLink = "{{ model.ATTR_ID_COMMAND_BUTTON_LINK }}"; var attrIdCommandCategory = "{{ model.ATTR_ID_COMMAND_CATEGORY }}"; var attrIdCommandModality = "{{ model.ATTR_ID_COMMAND_MODALITY }}"; + var attrIdCompany = "{{ model.ATTR_ID_COMPANY }}"; var attrIdCurrency = "{{ model.ATTR_ID_CURRENCY }}"; var attrIdDistraction = "{{ model.ATTR_ID_DISTRACTION }}"; var attrIdDistractionIntensityLevel = "{{ model.ATTR_ID_DISTRACTION_INTENSITY_LEVEL }}"; @@ -25,7 +26,10 @@ var attrIdLocation = "{{ model.ATTR_ID_LOCATION }}"; var attrIdObedienceLevel = "{{ model.ATTR_ID_OBEDIENCE_LEVEL }}"; var attrIdResponseQualityMetric = "{{ model.ATTR_ID_RESPONSE_QUALITY_METRIC }}"; + var attrIdRole = "{{ model.ATTR_ID_ROLE }}"; var attrIdWeather = "{{ model.ATTR_ID_WEATHER }}"; + var attrIdUser = "{{ model.ATTR_ID_USER }}"; + var attrIdUserAuth0 = "{{ model.ATTR_ID_USER_AUTH0 }}"; var flagAssessment = "{{ model.FLAG_ASSESSMENT }}"; var flagAssessmentCommandModalityLink = "{{ model.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK }}"; var flagAssessmentResponse = "{{ model.FLAG_ASSESSMENT_RESPONSE }}"; @@ -39,6 +43,7 @@ var flagCommandButtonLink = "{{ model.FLAG_COMMAND_BUTTON_LINK }}"; var flagCommandCategory = "{{ model.FLAG_COMMAND_CATEGORY }}"; var flagCommandModality = "{{ model.FLAG_COMMAND_MODALITY }}"; + var flagCompany = "{{ model.FLAG_COMPANY }}"; var flagCurrency = "{{ model.FLAG_CURRENCY }}"; var flagDistraction = "{{ model.FLAG_DISTRACTION }}"; var flagDistractionIntensityLevel = "{{ model.FLAG_DISTRACTION_INTENSITY_LEVEL }}"; @@ -50,6 +55,8 @@ var flagLocationParent = "{{ model.FLAG_LOCATION_PARENT }}"; var flagObedienceLevel = "{{ model.FLAG_OBEDIENCE_LEVEL }}"; var flagResponseQualityMetric = "{{ model.FLAG_RESPONSE_QUALITY_METRIC }}"; + var flagRole = "{{ model.FLAG_ROLE }}"; + var flagUser = "{{ model.FLAG_USER }}"; var flagWeather = "{{ model.FLAG_WEATHER }}"; {# var hashSaveDogAssessment = "{{ model.HASH_SAVE_DOG_ASSESSMENT }}"; #} var hashSaveDogAssessmentDistractionAndResponse = "{{ model.HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE }}"; @@ -61,4 +68,5 @@ var hashSaveDogCommandCategory = "{{ model.HASH_SAVE_DOG_COMMAND_CATEGORY }}"; var hashSaveDogDogCommandLink = "{{ model.HASH_SAVE_DOG_DOG_COMMAND_LINK }}"; var hashSaveDogLocation = "{{ model.HASH_SAVE_DOG_LOCATION }}"; + var hashSaveDogUser = "{{ model.HASH_SAVE_DOG_USER }}"; diff --git a/templates/layouts/_shared_scripts.html b/templates/layouts/_shared_scripts.html index a778ab8..7b47f4e 100644 --- a/templates/layouts/_shared_scripts.html +++ b/templates/layouts/_shared_scripts.html @@ -38,6 +38,7 @@ var flagCollapsible = "{{ model.FLAG_COLLAPSIBLE }}"; var flagColumn = "{{ model.FLAG_COLUMN }}"; var flagComment = "{{ model.FLAG_COMMENT }}"; + var flagCompany = "{{ model.FLAG_COMPANY }}"; var flagContainer = "{{ model.FLAG_CONTAINER }}"; var flagContainerInput = "{{ model.FLAG_CONTAINER_INPUT }}"; var flagCsrfToken = "{{ model.FLAG_CSRF_TOKEN }}"; @@ -57,6 +58,7 @@ var flagFailure = "{{ model.FLAG_FAILURE }}"; var flagFax = "{{ model.FLAG_FAX }}"; var flagFilter = "{{ model.FLAG_FILTER }}"; + var flagFirstname = "{{ model.FLAG_FIRSTNAME }}"; var flagForm = "{{ model.FLAG_FORM }}"; var flagFormFilters = "{{ model.FLAG_FORM_FILTERS }}"; var flagIcon = "{{ model.FLAG_ICON }}"; @@ -90,7 +92,7 @@ var flagNavDogHome = "{{ model.FLAG_NAV_DOG_HOME }}"; var flagNavDogLocations = "{{ model.FLAG_NAV_DOG_LOCATIONS }}"; var flagNavUserAccount = "{{ model.FLAG_NAV_USER_ACCOUNT }}"; - var flagNavUserAdmin = "{{ model.FLAG_NAV_USER_ADMIN }}"; + var flagNavUserAccounts = "{{ model.FLAG_NAV_USER_ACCOUNTS }}"; var flagNavUserLogin = "{{ model.FLAG_NAV_USER_LOGIN }}"; var flagNavUserLogout = "{{ model.FLAG_NAV_USER_LOGOUT }}"; var flagNotes = "{{ model.FLAG_NOTES }}"; @@ -111,6 +113,7 @@ var flagSubmit = "{{ model.FLAG_SUBMIT }}"; var flagSubmitted = "{{ model.FLAG_SUBMITTED }}"; var flagSuccess = "{{ model.FLAG_SUCCESS }}"; + var flagSurname = "{{ model.FLAG_SURNAME }}"; var flagTableMain = "{{ model.FLAG_TABLE_MAIN }}"; var flagTemporaryElement = "{{ model.FLAG_TEMPORARY_ELEMENT }}"; var flagUser = "{{ model.FLAG_USER }}"; @@ -142,7 +145,7 @@ var hashPageLicense = "{{ model.HASH_PAGE_LICENSE }}"; var hashPagePrivacyPolicy = "{{ model.HASH_PAGE_PRIVACY_POLICY }}"; var hashPageUserAccount = "{{ model.HASH_PAGE_USER_ACCOUNT }}"; - var hashPageUserAdmin = "{{ model.HASH_PAGE_USER_ADMIN }}"; + var hashPageUserAccounts = "{{ model.HASH_PAGE_USER_ACCOUNTS }}"; var hashPageUserLogin = "{{ model.HASH_PAGE_USER_LOGIN }}"; var hashPageUserLogout = "{{ model.HASH_PAGE_USER_LOGOUT }}"; var idButtonApplyFilters = "#{{ model.ID_BUTTON_APPLY_FILTERS }}"; diff --git a/templates/pages/dog/_home.html b/templates/pages/dog/_home.html index 54e0801..0ce814c 100644 --- a/templates/pages/dog/_home.html +++ b/templates/pages/dog/_home.html @@ -15,46 +15,52 @@ {% elif True or model.user.can_admin_dog %} {#
- + Dogs
#}
- + Command Categories
- + Commands
- + Dog Command Links
- + Locations
- + Button Icons
- + Command Button Links
- + Assessments
{#
- + Distractions
- + Assessment Command Modality Links
- + Assessment Responses
#}
- + Overdue Bills +
+ + {% endif %} diff --git a/templates/pages/user/_user.html b/templates/pages/user/_user.html index 56c90ac..34dc83d 100644 --- a/templates/pages/user/_user.html +++ b/templates/pages/user/_user.html @@ -1,9 +1,42 @@ {% extends 'layouts/layout_dog.html' %} {% block page_body %} - + {% set user = model.users[0] %} + {% set company = user.company %} + +
+ {{ model.form_filters.hidden_tag() }} +
+
+ +
+ {{ model.form_filters.id_company.label }} + {{ model.form_filters.id_company() }} + {% for error in model.form_filters.id_company.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.active_only.label }} + {{ model.form_filters.active_only() }} + {% for error in model.form_filters.active_only.errors %} +

{{ error }}

+ {% endfor %} + {% set class_name = model.FLAG_FILTER + ' ' + model.FLAG_ACTIVE_ONLY + ' ' + model.FLAG_CHECKBOX %} + {% include 'components/common/buttons/_icon_checkbox.html' %} +
+
+
+
+
@@ -24,11 +57,22 @@
+
+
+ +
+ {{ user.role.name }} +
+
+
-
- {{ user.company.name }} - {{ user.company.website }} +
+ {{ company.name }} +
+
+ {{ company.website }}
@@ -50,6 +94,7 @@
{% endblock %} diff --git a/templates/pages/user/_users.html b/templates/pages/user/_users.html new file mode 100644 index 0000000..a965492 --- /dev/null +++ b/templates/pages/user/_users.html @@ -0,0 +1,88 @@ +{% extends 'layouts/layout_dog.html' %} + +{% block page_body %} + + +
+ {{ model.form_filters.hidden_tag() }} +
+
+ +
+ {{ model.form_filters.id_company.label }} + {{ model.form_filters.id_company() }} + {% for error in model.form_filters.id_company.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.active_only.label }} + {{ model.form_filters.active_only() }} + {% for error in model.form_filters.active_only.errors %} +

{{ error }}

+ {% endfor %} + {% set class_name = model.FLAG_FILTER + ' ' + model.FLAG_ACTIVE_ONLY + ' ' + model.FLAG_CHECKBOX %} + {% include 'components/common/buttons/_icon_checkbox.html' %} +
+
+
+ {% set block_id = 'buttons_table_default' %} + {% include 'components/common/buttons/_buttons_save_cancel.html' %} +
+ + + + + + + + + + + + + + {% set is_blank_row = False %} + {% for user in model.users %} + {% include 'components/user/_row_user.html' %} + {% endfor %} + + {% set is_blank_row = True %} + {% include 'components/user/_row_user.html' %} + +
CompanyRoleFirst NameSurnameNotes + {% set class_name = model.FLAG_ACTIVE %} + {% set attribute_text = '' %} + {% include 'components/common/buttons/_icon_add.html' %} +
+ + {% include 'components/common/temporary/_overlay_confirm.html' %} + {% include 'components/common/temporary/_overlay_error.html' %} + +
+ + + {% set class_name = '' %} + {% include 'components/common/buttons/_icon_trash.html' %} + + {% set class_name = model.FLAG_ACTIVE %} + {% set attribute_text = '' %} + {% include 'components/common/buttons/_icon_add.html' %} +
+ + +{% endblock %} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index a703be9..d641a78 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -120,6 +120,11 @@ module.exports = { path.resolve(__dirname, 'static/css/sections/user.css'), path.resolve(__dirname, 'static/css/pages/user/user.css') ], + user_accounts: [ + path.resolve(__dirname, 'static/css/sections/user.css'), + path.resolve(__dirname, 'static/css/sections/dog.css'), + path.resolve(__dirname, 'static/css/pages/user/users.css') + ], }, output: { filename: 'js/[name].bundle.js',